Buscar un campo de un registro con DLookup

buscar con dlookupCon la función DLookup podemos buscar un campo de un registro determinado en una tabla específica en Microsoft Access.

Con la función DLookup podemos buscar un campo de un registro determinado en una tabla específica en Microsoft Access, con ésta función nos ahorramos usar engorrosos recordset y de una forma sencilla y eficaz podemos buscar registros.

Su uso en VBA es el siguiente:
DLookup("Nombre_Campo", "Nombre_Tabla", "Citerio_de_búsqueda")

Ejemplos
Buscar un campo numérico de un registro usando como criterio el dato de un cuadro de texto de un formulario, en éste caso buscamos el codigo de un cliente que coincida con el código de un cuadro de texto puesto en un formulario:

DLookup("CodigoCliente", "TablaClientes", "CodigoCliente = " & Me.CodigoCliente)

Buscar un campo de texto de un registro usando como criterio el dato de un cuadro de texto de un formulario, en éste caso buscamos la dirección de un cliente a partir del nombre del cliente que tenemos en un formulario:

DLookup("DireccionCliente", "NumeradoresSeries", "TxtSerie = '" & Me.NombreCliente & "'")

Observar que las comillas varían dependiendo de si buscamos un campo numérico o de texto.
Si el resultado son mas de un registro, se mostrará el primero que coincida con el criterio, de igual manera si no usamos ningún criterio, nos mostrará el primer campo de la tabla seleccionada.

Dejamos los comentarios abiertos por si hay alguna duda.

Categorías: 

Comentarios

Hola. En la expresión (para buscar campos numericos):

DLookup("CodigoCliente", "TablaClientes", ""CodigoCliente = " & Me.CodigoCliente)

Delante del segundo CodigoCliente ¿hay dos comillas dobles?: ""CodigoCliente
A mi así me da error. Y con una sola comilla doble no.

Y confirmar también que en la expresión (para buscar campos de texto), es después del signo = comilla simple, comilla doble & Me.NombreCliente & comilla doble, comilla simple y comilla doble.

gracias

Si, tienes razón, había puesto unas comillas de más en la búsqueda de números. En la búsqueda de texto estaba bien, lo que pasaba era que en el tipo de texto empleado en el post no se apreciaba bien, lo he rectificado para que se aprecien bien las comillas.
Ya está todo rectificado y muchas gracias por el comentario.

El criterio de búsqueda es opcional

Hola amigo
No se si me puedas ayudar con esto:

Tengo 4 campos CODIGO, DESCRIPCION, ENTRADAS Y SALIDAS en un formulario de access 2003

DESCRIPCION CODIGO
Taza Aries 0102
Taza leo 0103
Taza Tauro 0107

La idea es que cuando yo capture, por ejemplo 0107 automaticamente
busque la descripcion
Ejemplo:

CODIGO DESCRIPCION
0107 "Taza Tauro"

solitarysk8_7.0@hotmail.com

Si lo que quieres es introducir el código en una caja de texto de un formulario y que te de la descripción en otra caja de texto, puedes usar DLookup como se describe en éste artículo, en el evento "despues de actualizar" del código pones:

Me.Descripción = DLookup("DESCRIPCION", "NombreTabla", "CODIGO = " & Me.CODIGO

Hola, quiesiera saber si me pueden ayudar, tengo los siguientes campos en una tabla llamada Empleados, Idempleado, Nombre, Fecha_egreso, Activo (boolean)

hice una busqueda del idempleado con dos criterios, si o si uno es el nombre y el otro puede ser o el campo Activo (que debe ser True) o el campo fecha_egreso que este vacio, esto quiere decir que esta activo. el problema es que no me funciona con ambos criterios juntos:

consuemplid = DLookup("Idempleado", "empleados", _
"Nombre ='" & Me.Nombre & "'" And activo)

consuemplid = DLookup("Idempleado", "empleados", _
"[fecha_egreso] = #" & Fechh & "#" And "Nombre ='" & Me.Nombre & "'")

me podrán ayudar por favor.
Gracias