DBúsq (función)

En las bases de datos de escritorio de Access, puede usar la función BuscarD para obtener el valor de un campo determinado de un conjunto de registros especificado (un dominio ). Use la función BuscarD en un módulo Visual Basic para Aplicaciones (VBA), un macro, una expresión de consulta o un control calculado en un formulario o informe.

Nota: Este artículo no se aplica a aplicaciones web de Access.

Puede usar la función BuscarD para mostrar el valor de un campo que no está en el origen de registros del formulario o informe. Por ejemplo, supongamos que tiene un formulario basado en una tabla Detalles del pedido. En el formulario se muestran los campos Id. de pedido, Id.producto, PrecioUnidad, Cantidad y Descuento. Sin embargo, el campo NombreDeUsuario se encuentra en otra tabla, la tabla Productos. Puede usar la función BuscarD en un control calculado para mostrar el ProductName en el mismo formulario.

Sintaxis

DLookup( expr, domain [ ,criteria] )

La sintaxis de la función BuscarD tiene estos argumentos:

argumento

Descripción

expresión

Obligatorio. Expresión que identifica el campo cuyo valor desea devolver. Puede ser una expresión de cadena un campo en una tabla o consulta, o puede ser una expresión que realiza un cálculo de datos en 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 ser integrada o definida por el usuario, pero no otro agregado de dominio o SQL función de agregado.

dominio

Obligatorio. 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 requiere un parámetro.

criterio

Opcional. Expresión de cadena que se usa para restringir el rango de datos en el que se realiza la función BuscarD. Por ejemplo, los criterios suelen ser equivalentes a la cláusula WHERE en una SQL expresión, sin la palabra WHERE. Si se omiten los criterios, la función BuscarD evalúaexpr en todo el dominio. Cualquier campo que se incluya en los criterios también debe ser un campo de dominio; en caso contrario, la función BuscarD devuelve un valor Null.

Observaciones

La función BuscarD devuelve un único valor de campo basado en la información especificada en los criterios. Aunque criterios es un argumento opcional, si no proporciona un valor para los criterios,la función BuscarD devuelve un valor aleatorio en el dominio.

Si ningún registro cumple los criterios o si el dominio no contiene registros, la función BuscarD devuelve un valor Null.

Si más de un campo cumple criterios,la función BuscarD devuelve la primera repetición. Debe especificar criterios que aseguren que el valor de campo devuelto por la función BuscarD es único. Es posible que desee usar un valor clave principal para los criterios, como [EmployeeID] en el ejemplo siguiente, para asegurarse de que la función BuscarD devuelve un valor único:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")

Tanto si usa la función BuscarD en una macro o módulo, una expresión de consulta o un control calculado, debe crear el argumento criterios cuidadosamente para asegurarse de que se evaluará correctamente.

Puede usar la función BuscarD 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 a en una consulta de actualización.

También puede usar la función BuscarD en una expresión de un control calculado en 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, supongamos que tiene un formulario Detalles del pedido basado en una tabla Detalles del pedido con un cuadro de texto llamado IdDe Producto que muestra el campo IdDeUso. Para buscar ProductName desde una tabla Productos en función del valor del cuadro de texto, puede crear otro cuadro de texto y establecer su propiedad ControlSource en la siguiente expresión:

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

Sugerencias

  • Aunque puede usar la función BuscarD para mostrar un valor de un campo en un 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 del dominio no se incluyen al usar esta función. Si desea que la función BuscarD se base en los valores cambiados, primero debe guardar los cambios haciendo clic en Guardar registro en Registros en la pestaña Datos, moviendo el foco a otro registro o usando el método Actualizar.

Ejemplo

Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione Referencia para desarrolladores en la lista desplegable junto a Buscar y escriba uno o más términos en el cuadro de búsqueda.

En el ejemplo siguiente se devuelve información de nombre del campo CompanyName del registro que cumple los criterios. El dominio es una tabla Remitentes. El argumento criterios restringe el conjunto resultante de registros a aquellos para los que ShipperID es igual a 1.

Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")

El siguiente ejemplo de la tabla Remitentes usa el control de formulario Id. de remitente para proporcionar criterios para la función BuscarD. Tenga en cuenta que la referencia al control no se incluye en las comillas que denotan las cadenas. Esto garantiza que cada vez que se llame a la función BuscarD, Access obtendrá 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)

¿Necesita más ayuda?

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider