DBúsq (función)

Nota:  Nos gustaría proporcionarle el contenido de ayuda actual lo más rápido posible en su idioma. Esta página se ha traducido mediante un sistema automático y es posible que contenga imprecisiones o errores gramaticales. Nuestro objetivo es que este contenido sea útil para usted. ¿Puede informarnos sobre si la información le ha sido útil al final de la página? Aquí tiene el artículo en inglés para que pueda consultarlo fácilmente.

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 (una dominio ) 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

Obligatorio. 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

Obligatorio. 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)
Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×