espero te sirvan estos datos para corregir tu problema amigo.
Algunos de los errores que nos da Windows se deben a que algún fichero con extensión .Dll u .OCX no está debidamente registrado.
Sobre todo esto suele suceder con lo que se refiere al acceso a datos (RDO350.DLL por ejemplo) y con los controles ActiveX (son los ficheros con la extensión .ocx).
En este caso a veces puede funcionar registrar estos ficheros manualmente utilizando Regsvr32.
El uso es
Regsvr32 [/u] [/s] <nombre del fichero>
Por ejemplo:
REGSVR32 c:\windows\system\Dao350.dll
Los parámetros opcionales [/u] [/s] significan lo siguiente:
[/u] - lo utilizamos cuando queremos "desregistrar" una DLL (o un .ocx en vez de registrarlo).
[/s] - modo "silencioso" - no despliega los mensajes durante la operación