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.

10 comentarios en «Buscar un campo de un registro con DLookup»

  1. Buscar un campo de un registro con DLookUp

    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

    Responder
  2. Comillas

    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.

    Responder
  3. Buscar

    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

    Responder
  4. access

    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»
    [email protected]

    Responder
  5. Buscar un campo de un registro con DLookup

    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

    Responder
  6. Código con error

    Buenos dias
    estoy intentando ejecutar este código, no me genera error pero tampoco lo ejecuta.
    Private Sub Codigo_AfterUpdate()
    descripcion = DLookup(«[Descripcion]», «[Desplegable]», «Codigo=» & «Codigo»)
    End Sub
    sera que me pueden colaborar
    gracias

    Responder
  7. Creo que tu sintaxis no es correcta.

    Creo que tu sintaxis no es correcta, prueba así:
    DLookup(«Descripcion», «Desplegable», «Codigo= » & Me.Codigo)

    Responder
  8. Gracias

    me tire toda la tarde intentanod la función hasta que encontre (DLookup(«DireccionCliente», «NumeradoresSeries», «TxtSerie = ‘» & Me.NombreCliente & «‘»)
    )
    La condicion me llevaba de cabeza por el tema que es texto

    Responder
  9. no se actualiza

    tengo este dlookup pero no se actuliza
    Description = DLookup(«Description», «[tbPart_number]», «Part_number=» & » Part_number»)
    todos los datos son texto

    Responder

Deja un comentario