DBúsq (función)

Puede usar la función DBúsq para obtener el valor de un campo en un conjunto especificado de registros (un dominio). Use la función DBúsq en un módulo de Visual Basic para Aplicaciones (VBA), en una macro, en una expresión de consulta o en un control calculado.

Puede usar la función DBúsq para mostrar el valor de un campo que no se encuentra en el origen de registros en que está basado el formulario o informe. Por ejemplo, suponga que tiene un formulario basado en una tabla 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 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

expr

Requerido. Expresión que identifica el campo cuyo valor desea devolver. Puede ser una expresión de cadena que identifique un campo de una tabla o de una consulta, o puede ser una expresión que realice un cálculo sobre los datos de ese campo. En expr, puede incluir el nombre de un campo de una tabla, un control de un formulario, una constante o una función. Si expr incluye una función, ésta puede estar integrada o puede ser definida por el usuario, pero no puede ser otra función de agregado de dominio ni una función de agregado de SQL.

dominio

Requerido. 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 de una consulta que no requiera un parámetro.

criterios

Opcional. Expresión de cadena utilizada para restringir el intervalo de los datos en los 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 WHERE. 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; de lo contrario, la función DBúsq devuelve el valor Null.


Comentarios

La función DBúsq devuelve un único campo basado en 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 el dominio no contiene registros, la función DBúsq devuelve el valor 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 van a asegurar que el valor de campo devuelto por la función DBúsq es único. Quizá desee utilizar un valor de clave principalpara los criterios, como [EmployeeID] en el siguiente ejemplo, para asegurarse de que la función DBúsq devuelve un valor único:

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

Independientemente de si usa la función DBúsq en una macro, módulo, expresión de consulta o 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 de una consulta o en la fila Actualizar a de una consulta de actualización.

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

=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 una tabla externa, puede resultar más eficaz crear una consulta que contenga los campos que necesite de ambas tablas, y después basar el formulario o informe en esa consulta.

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

Nota   Los cambios no guardados efectuados en registros de dominio no se incluirán cuando utilice estas funciones. Si desea que la función DBúsq se base en los valores cambiados, primero debe guardar los cambios al hacer clic en Guardar registro en el menú Registros en la ficha Datos, mover la selección a otro registro o utilizar el método Update.

Ejemplo

Nota   Los ejemplos que vienen a continuación demuestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener información acerca de cómo trabajar con VBA, seleccione Referencia del programador en la lista desplegable situada junto a Buscar y escriba uno o más términos en el cuadro de búsquedas.

En el siguiente ejemplo se devuelve información sobre el campo CompanyName (Nombre de compañía) del registro que cumple con los criterios. El dominio es la tabla Shippers (Compañías de envíos). El argumento criterios restringe el conjunto de registros resultante a aquéllos para los que ShipperID (Id. de compañía de envíos) es igual a 1.

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

En el ejemplo siguiente de la tabla Shippers (Compañías de envíos) se utiliza el control de formulario ShipperID (Id. de compañía de envíos) con el fin de proporcionar criterios para la función DBúsq. Observe que la referencia al control no está incluida en los signos de comillas tipográficas que denotan las cadenas. De esta forma se garantiza que cada vez que se llame a la función DBúsq, Microsoft Office Access 2007 obtendrá el valor actual del control.

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

En el siguiente ejemplo 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)

Se aplica a: Access 2013, Access 2007, Access 2010



¿Le ha sido útil esta información?

No

¿Cómo podemos mejorarlo?

255 caracteres restantes

Para proteger su privacidad, no incluya información de contacto en sus comentarios. Revisar política de privacidad.

¡Gracias por sus comentarios!

Recursos de soporte técnico

Cambiar idioma