Buscar información en tablas usando DLookUp en Access

dlookup-access

Escrito por Administrador

28 de octubre de 2021

En ocasiones, necesitamos buscar información en las tablas de nuestro proyecto, bien sea para realizar un cálculo, comprobar si un dato ya existe o simplemente para cargarlo en un campo de un formulario. Hoy vamos a aprender a utilizar el comando DLookUp de VBA en Access, que nos ayudará en esta tarea.

A continuación, os muestro la sintaxis del mismo,

DLookUp (Expr, Domain, Criteria)

  • Expr: Campo que queremos buscar.
  • Domain: Tabla en la que queremos buscar.
  • Criteria: Criterio de búsqueda.

Voy a poner dos ejemplos para que aprendais a manejar bien este comando.

El primero de ellos, buscará la descripción de un producto en una tabla a partir de su código. Y, a continuación, lo introducirá dentro de un campo del formulario.

Imaginemos que tenemos una tabla llamada "Productos" con los campos "Codigo" y "Descripcion".

Lo que vamos a hacer es usar el comando DLookUp para recuperar la descripción correspondiente al código seleccionado en el campo "Código" de nuestro formulario, e introducirla en otro campo llamado "Elemento".

Para ello, en la pestaña Eventos de la Hoja de Propiedades del campo "Código", seleccionamos Después de actualizar y escribimos el siguiente código,

Form!Elemento = DLookup("Descripcion", "Productos", "Codigo=form!codigo")

Ahora, al seleccionar un código en el desplegable del campo "Código", automáticamente se escribirá su descripción en el campo "Elemento".

En el segundo ejemplo quiero enseñarte cómo comprobar si un dato que estamos introduciendo en un formulario, existe ya en la tabla.

Supongamos que tenemos una tabla llamada "Datos" y que contiene, entre otros, el campo "DNI".

Queremos que nuestro formulario nos avise cuando introduzcamos en el campo "Carnet" un DNI que ya exista en la tabla.

Para ello, en la pestaña Eventos de la Hoja de Propiedades del campo "Carnet", seleccionamos Después de actualizar y escribimos el siguiente código,

existedni = DLookup("[DNI]", "[Datos]", "[DNI]=Form!Carnet")

If Not IsNull(existedni) Then

MsgBox "Ya existe el DNI introducido"

Else

End If

De esta manera, si en la tabla "Datos" y en el campo "Carnet" existe el dato que hemos introducido en el campo "DNI" del formulario, se guardará en la variable existedni.

Ahora, solo nos quedaría comprobar si dicha variable está vacía o no, para saber si había algún DNI coincidente. Para ello, usamos un condicional, que en caso afirmativo nos mostrará un mensaje de aviso.

Aquí os dejo un enlace donde explico la función msgbox en VBA.

Espero que con estos dos sencillos ejemplos hayas aprendido a utilizar el comando DLookUp de Access para buscar información en tablas. Las aplicaciones que tiene son muchas como has visto.

Hasta la próxima.

Descarga el archivo del ejemplo

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto