Metodo docmd.Findrecord para access

Tengo una base de datos con un formulario "fConductores" asociado a la tabla "tConductores" como recordset. Dentro del formulario hay un control TabControl con varias páginas configuradas como ocultas, que se van haciendo visibles en función de la que selecciono mediante botones en el mismo formulario.

En la tabpage(0) tengo un control listbox "lbxConductores" con un rowsource basado en una consulta con todos los registros de la tabla "tConductores". El valor de la conlumna dependiente del listbox "lbxConductores" es el campo [DNItitular] (que también existe en el recordset del formulario "fConductores").

En la tabpage(2) tengo varios controles (textbox) que presentan los campos del registro activo del formulario FConductores.

Lo que intento es que cuando hago dobleclick en el listbox "lbxConductores" la tabpage se presenten el registro seleccionado en el el listbox "lbxConductores".

Para esto he escrito el siguiente código:

Private Sub lbxConductores_DblClick(Cancel As Integer)

DoCmd.FindRecord Me.lbxConductores, , True, , True, , True

Me.TabCtl112.Pages.Item(2).Visible = True
Me.TabCtl112.Pages.Item(2).SetFocus

end sub

No da error, pero en lugar de ir al registro donde el valor del ListBox (el campo DNItitular) coincide con el campo DNItitular del recordset del formulario, y abrir la Tabpage(2) en ese registro, lo que hace es que pase al registro siguiente, (si está en el 1 pasa al 2, si esta en el 2 al salta al 3...)

¿Qué estoy haciendo mal?

1 Respuesta

Respuesta
1

Para iniciar el proceso de búsqueda el enfoque debe estar situado en el campo que quieres buscar.

Intenta situar el enfoque en el campo de búsqueda antes del docmd. Findrecord.

Es decir, si el campo donde tienes el DNI se llama [txtDNI] haz

...

Private Sub...

me.txtDNI.setfocus

Docmd.findrecord...

Etc.

...

Para que te funcione el campo del DNI debe estar visible.

A ver si así te sale.

¡Gracias!

Funciona a la perfección, era justo lo que estaba pasando (un truco más para la trucoteca de access jajaja). Muchísimas gracias, un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas