Application.
DLookup Método
Acceso referencia para el desarrollador
Usted puede utilizar la función DBúsq para obtener el valor de un campo particular de un conjunto de
registros especificado (un dominio).
Sintaxis
expresión. DBúsq (expr, dominio, criterios)
expresión de una variable que representa un objeto de la aplicación.
Parámetros
Obligatorio / Tipo de
Nombre Facultativo datos Descripción
Expr Requerido String Una expresión que identifica el campo cuyo valor desea regresar. Puede ser una
expresión de cadena que identifica un campo de una tabla o consulta, o puede ser una
expresión que realiza un cálculo de los datos en ese campo. En expr, puede incluir el
nombre de un campo de una tabla, un control en un formulario, una constante o una
función. Si expr incluye una función, que puede ser integrada o definida por el usuario,
pero sin otro agregado de dominio o función de agregado de SQL.
Dominio Requerido String Una expresión de cadena que identifica el conjunto de registros que constituye el
dominio. Puede ser un nombre de tabla o un nombre de consulta para una consulta
que no requieren un parámetro.
Criterios Opcional Variante Una expresión de cadena opcional que se utiliza para restringir el rango de datos en
los que se ejecuta la función DBúsq. Por ejemplo, los criterios es a menudo
equivalente a la cláusula WHERE en una expresión SQL, sin la palabra WHERE. Si se
omite criterios, la función DBúsq evalúa expr para todo el dominio. Cualquier campo
que se incluye en los criterios debe ser también un campo de dominio, de lo contrario,
la función DBúsq devuelve un Null.
Valor de retorno:
Variante
Comentarios
Usted puede utilizar la función DBúsq para mostrar el valor de un campo que no está en el origen de
registros para el formulario o informe. Por ejemplo, suponga que tiene un formulario basado en una
tabla Detalles de pedido. El formulario muestra el OrderID, ProductID, UnitPrice, Cantidad, y los campos
de descuento. Sin embargo, el campo ProductName está en otra tabla, la tabla Productos. Usted podría
utilizar la función DBúsq en un control calculado para mostrar el ProductName en la misma forma.
La función DBúsq devuelve un valor de campo único, basado en la información especificada en los
criterios. Aunque los criterios es un argumento opcional, si no se proporciona un valor para los criterios,
la función DBúsq devuelve un valor aleatorio en el dominio.
Si ningún registro cumple los criterios o si el dominio no contiene ningún registro, la función DBúsq
devuelve un Null.
Si más de un campo cumple con los criterios, la función DBúsq devuelve la primera aparición. Usted
debe especificar los criterios que garanticen que el valor del campo devuelto por la función DBúsq es
único. Es posible que desee utilizar un valor de clave principal para su selección, como [EmployeeID] en
el ejemplo siguiente, para garantizar que la función DBúsq devuelve un valor único:
Visual Basic para Aplicaciones
Dim varX As Variant varX = DLookup("[LastName]", "Employees",
"[EmployeeID] = 1")
Tanto si usa la función DBúsq en una macro o módulo, una expresión de consulta, o un control
calculado, debe crear el argumento criterios con cuidado para garantizar que se evaluará correctamente.
Usted puede utilizar la función DBúsq para especificar los criterios en la fila Criterios de una consulta,
dentro de una expresión de campo calculado en una consulta, o en la fila Actualizar de una consulta de
actualización.
También puede utilizar la función DBúsq en una expresión en un control calculado en un formulario o
un informe si el campo que usted necesita para mostrar no está en el origen de registros en que se basa
el formulario o informe. Por ejemplo, supongamos que tenemos una forma de Detalles de pedidos
basado en una tabla Detalles de Orden con un cuadro de texto llamado ProductID que muestra el campo
ProductID. Para buscar ProductName de una tabla de productos basados en el valor en el cuadro de
texto, puede crear otro cuadro de texto y establezca su propiedad ControlSource en la expresión
siguiente:
Visual Basic para Aplicaciones
=DLookup("[ProductName]", "Products", "[ProductID] =" _ & Forms!
[Order Details]!ProductID)
Consejos
Aunque puede utilizar la función DBúsq para mostrar un valor de un campo de una tabla
externa, puede ser más eficiente para crear una consulta que contiene los campos que usted
necesita de ambas tablas y basar el formulario o el informe de esa consulta.
También puede utilizar el Asistente para búsquedas para buscar valores en una tabla externa.
Ejemplo
El siguiente ejemplo devuelve la información de nombre del campo CompanyName de los criterios de
registro satisfactorio. El dominio es una tabla Transportistas. El argumento criterios restringe el
conjunto resultante de los registros a aquellos para los que ShipperID igual a 1.
Visual Basic para Aplicaciones
Dim varX As Variant varX = DLookup( "[CompanyName]", "Shippers",
"[ShipperID] = 1" )
El siguiente ejemplo de la tabla Transportistas utiliza el control de la forma ShipperID de establecer
criterios para la función DBúsq. Tenga en cuenta que la referencia al control no está incluido en las
comillas que indican las cuerdas. Esto asegura que cada vez que la función DBúsq se llama, Microsoft
Access obtendrá el valor actual del control.
Visual Basic para Aplicaciones
Dim varX As Variant varX = DLookup( "[CompanyName]", "Shippers",
"[ShipperID] = " _ & Forms!Shippers!ShipperID )
El siguiente ejemplo utiliza una variable, intSearch para obtener el valor.
Visual Basic para Aplicaciones
Dim intSearch As Integer Dim varX As Variant intSearch = 1 varX =
DLookup( "[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch
)