En las bases de datos de escritorio de Access, puede usar la DLookup función para obtener el valor de un campo determinado de un conjunto de registros especificado (un dominio). Puede usar DLookup en un módulo de Visual Basic para Aplicaciones (VBA) una macro, una expresión de consulta o un control calculado en un formulario o informe.
Puede usar la DLookup función para mostrar el valor de un campo que no está en el origen de registros de su formulario o informe. Por ejemplo, supongamos que tiene un formulario basado en una tabla Detalles de pedido. El formulario muestra los OrderIDcampos , ProductID, UnitPrice, Quantityy .Discount Sin embargo, el ProductName campo se encuentra en otra tabla, la Products tabla. Puede usar la DLookup función en un control calculado para mostrarla ProductName en el mismo formulario.
Sintaxis
DLookup(expr, domain [, criteria])
La DLookup función tiene estos argumentos:
| argumento | Descripción |
|---|---|
expr |
Obligatorio. Expresión que identifica el campo cuyo valor desea devolver. Puede ser una expresión de cadena que identifica un campo en una tabla o consulta, o puede ser una expresión que realiza un cálculo de los datos de ese campo. En expr, puede incluir el nombre de un campo en una tabla, un control en un formulario, una constante o una función. Si expr incluye una función, puede estar integrada o definida por el usuario, pero no puede ser un agregado de dominio o SQL una función de agregado. |
domain |
Obligatorio. Una expresión de cadena que identifica el conjunto de registros que compone el dominio. Puede ser un nombre de tabla o un nombre de consulta para una consulta que no requiere un parámetro. |
criteria |
Opcional. Una expresión de cadena que se usa para restringir el rango de datos en el que se ejecuta la DLookup función. Por ejemplo, a menudo equivale a la WHERE cláusula en una SQL expresión, criteria sin la palabra WHERE. Si omite criteria, la DLookup función se expr evalúa en función de todo el dominio. Cualquier campo incluido en criteria también debe ser un campo en domain. De lo contrario, la función devuelve Null.DLookup |
Observaciones
La DLookup función devuelve un solo valor de campo basado en la información especificada en criteria. Aunque criteria es opcional, si no proporciona un valor para ella, la DLookup función devuelve un valor aleatorio en el dominio.
Si ningún registro satisface criteria, o si domain no contiene ningún registro, la función devuelve Null.DLookup
Si se cumple criteriamás de un campo, la DLookup función devuelve la primera aparición. Debe especificar criterios que garanticen que el valor del campo devuelto por DLookup es único. Es posible que desee usar un valor de clave principal para los criterios, como [EmployeeID] en el ejemplo siguiente, para asegurarse de que DLookup devuelve un valor único:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Tanto si usa la DLookup función en una macro o módulo, como en una expresión de consulta o en un control calculado, construya el criteria argumento con cuidado para que Access lo evalúe correctamente.
Puede usar la DLookup función para especificar criterios en la fila Criterios de una consulta, dentro de una expresión de campo calculado en una consulta o en la fila Actualizar en una consulta de actualización.
También puede usar la DLookup función en una expresión en un control calculado de un formulario o informe si el campo que necesita mostrar no está en el origen de registros en el que se basa el formulario o informe. Por ejemplo, imagine que tiene un formulario Detalles de pedido basado en una tabla Detalles de pedido con un cuadro de texto llamado ProductID que muestra el ProductID campo. Para buscar ProductName en una Products tabla basada en el valor del cuadro de texto, cree otro cuadro de texto y establezca su propiedad ControlSource en la siguiente expresión:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Recomendaciones
- Aunque puede usar la función DBúsq para mostrar un valor de un campo en una tabla externa, puede ser más eficaz crear una consulta que contenga los campos que necesita de ambas tablas y, después, basar el formulario o informe en esa consulta.
- También puede usar el Asistente para búsquedas para buscar valores en una tabla externa.
Nota
Los cambios no guardados en los registros no domain se incluyen cuando se usa esta función. Si desea DLookup usar los valores cambiados, primero guarde los cambios haciendo clic en Guardar registro en Registros en la pestaña Datos , moviendo el foco a otro registro o usando el Update método.
Ejemplo
Nota
Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, consulte la referencia de VBA de Access.
En el ejemplo siguiente se devuelve información de nombre del CompanyName campo del registro que satisface .criteria El dominio es una Shippers tabla. El criteria argumento restringe el conjunto resultante de registros a aquellos para los que ShipperID es 1igual a .
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
En el siguiente ejemplo de la Shippers tabla se usa el control ShipperID de formulario para proporcionar los criterios de la DLookup función. La referencia al control no se incluye en las comillas que denotan las cadenas. Esto garantiza que cada vez DLookup que se ejecute, Access obtenga el valor actual del control.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
En el ejemplo siguiente se usa una variable, intSearch, para obtener el valor.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)