Problema vinculación formularios, al ejecutar un botón no abre macro y da error de comunicación con servidor OLE en Access 2013

Estoy haciendo una base de datos en Access 2013 x86 (Windows 7 x64) con un formulario principal que contiene una variable [nº paciente] que es autonumerativa. [nº paciente] es el vínculo con otros formularios, sin embargo, al abrir los formularios relacionados no aparece el  [nº paciente] del formulario principal, sino que empieza a numerar de 0.

En un intento de relacionar los formularios he estado probando macros, guiándome por cursos de internet, que crean una variable temporal para vincular así los formularios, pero al pulsar el botón que lleva a otros formularios de eventos me dice que hay un error de comunicación entre Access y el servidor OLE -quede constancia que ninguna variable de mi base es un objeto OLE, que ni siquiera sé para qué sirven-.

He buscado por Internet y ese error lo atribuyen al antivirus Norton (que nunca he tenido instalado en mi ordenador) o a no tener registrado el servidor OLE. Así que lo registré y aún así, nada de nada.

Muchas gracias por adelantado,

Dione

Respuesta
1

Igual me meto en un charco, pero el hecho de que estén relacionadas dos tablas, en la ventana Relaciones no quiere decir que por el mero hecho de abrir un formulario desde otro ya te vaya a coger el valor del formulario Principal.

O bien puedes hacer desde el formulario Principal

Docmd.openform"el otro formulario",,,"npaciente='" & me.npaciente &"'"

O bien, si lo abres "a la brava", en el evento Al activar registro del segundo formulario poner

If isnull([npaciente]) then

npaciente=forms!principal!npaciente

end if

Por cierto, muy sugerente el nombre del formulario

También puedes poner en el evento Al cargar del segundo formulario

form.recordsource="select * from tablaorigendelsegundo where npaciente=forms!principal!npaciente"

Así, si teniendo el formulario Principal abierto abres el otro, su origen de registros serán aquellos de la tabla o consulta origen del segundo donde npaciente sea igual al npaciente del formulario principal.

Sí, cierto es lo que dices que la relación de tablas no define la relación de formularios.

La opción de Docmd.openform la había probado, no la brava del null, pero de nuevo no funcionan ninguna de las dos por el dichoso error de comunicación con OLE...

De todas formas muchas gracias por tu ayuda

PD: Veo que has descubierto que la base de datos es para un consultorio un tanto especial.

¿Has mirado en el editor de código la referencias que tienes activadas?

Es cierto que yo tengo el 16 pero es lo mismo, y de verdad, me extraña mucho lo que dices del servidor OLE y del Norton. Yo tengo activados el Windows Defender, el Avast y el Ccleaner y no tengo ningún problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas