DBúsq (función)

Importante:  Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

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

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

Puede usar la función DBúsq para mostrar el valor de un campo que no está en el origen de registros del formulario o informe. Por ejemplo, suponga que tiene un formulario basado en una tabla de detalles de pedido. El formulario muestra los campos IdPedido, IdProducto, PrecioUnidad, cantidad y descuento. Sin embargo, el campo NombreProducto está en otra tabla, la tabla de productos. Puede utilizar la función DBúsq en un control calculado para mostrar el NombreProducto en el mismo formulario.

Sintaxis

DBúsq ( expr, dominio [criterios] )

La sintaxis de la función DBúsq tiene los siguientes argumentos:

argumento

Descripción

expresión

Requerido. Una expresión que identifica el campo cuyo valor se desea devolver. Puede ser un expresión de cadena identifica un campo de una tabla o consulta, o puede ser una expresión que realiza un cálculo con los datos de ese campo. En expr, puede incluir el nombre de un campo en una tabla, un control de un formulario, una constante o una función. Si expr incluye una función, puede ser agregado de dominio integrado o definidas por el usuario, pero no o función de agregado de SQL.

dominio

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

criterios

Opcional. Expresión de cadena que se utiliza para restringir el intervalo de datos en el que se ejecuta la función DBúsq . Por ejemplo, criterios con frecuencia es equivalente a la cláusula WHERE en una expresión SQL, sin la palabra donde. Si se omite criterios , la función DBúsq evalúa expr para todo el dominio. Cualquier campo que se incluya en criterios debe ser también un campo de dominio; en caso contrario, la función DBúsq devuelve un nulo.

Observaciones

La función DBúsq devuelve un valor único campo según la información especificada en criterios. Aunque criterios es un argumento opcional, si no se proporciona un valor para criterios, la función DBúsq devuelve un valor aleatorio en el dominio.

Si ningún registro cumple los criterios o si dominio no contiene registros, la función DBúsq devuelve Null.

Si más de un campo cumple los criterios, la función DBúsq devuelve la primera aparición. Debe especificar los criterios que se asegurarán de que el valor de campo devuelto por la función DBúsq es único. Desea usar un valor de clave principal para los criterios, como [EmployeeID] en el ejemplo siguiente, para asegurarse de que la función DBúsq devuelve un valor único:

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

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.

Puede usar la función DBúsq para especificar criterios en la fila criterios de una consulta, en una expresión de campo calculado en una consulta o en la fila Actualizar a de una consulta de actualización.

También puede usar la función DBúsq en una expresión en un control calculado en un formulario o informe si el campo que debe mostrar no está en el origen de registros del formulario o informe. Por ejemplo, suponga que tiene un formulario de detalles de pedido basado en una tabla de detalles de pedido con un cuadro de texto denominado IdProducto que muestra el campo IdProducto. Para buscar NombreProducto en una tabla de productos en función del valor en el cuadro de texto, puede crear otro cuadro de texto y establezca su propiedad ControlSource en la siguiente expresión:

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

Sugerencias

  • Aunque puede utilizar la función DBúsq para mostrar un valor de un campo en un tabla externa, puede resultar más eficaz crear una consulta que contenga los campos que necesite de ambas tablas y basar el formulario o informe en esa consulta.

  • También puede usar al Asistente para búsquedas para buscar valores en una tabla externa.

Nota: Los cambios no guardados en registros de dominio no se incluyen al usar esta función. Si desea que la función DBúsq se base en los valores modificados, primero debe guardar los cambios haciendo clic en Guardar registro en registros en la ficha datos , mover el enfoque a otro registro o utilizando el método de actualización .

Ejemplo

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

En el ejemplo siguiente se devuelve información del nombre del campo nombredelaempresa del registro que cumple los criterios. El dominio es una tabla Transportistas. El argumento criterios restringe el conjunto de registros resultante a los que IDCompañíaEnvíos es igual a 1.

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

El ejemplo siguiente de la tabla Transportistas utiliza el control de formulario ShipperID para proporcionar criterios de la función DBúsq . Tenga en cuenta que la referencia al control no se incluye en las comillas que denotan las cadenas. Así se garantiza que cada vez que se llama a la función DBúsq , Access obtendrá el valor actual del control.

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

El ejemplo siguiente utiliza una variable, intSearch, para obtener el valor.

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

Nota: Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

¿Le ha sido útil esta información?

De acuerdo. ¿Algún comentario más?

¿Cómo podemos mejorarlo?

¡Gracias por sus comentarios!

×