Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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 de pedidos. En el formulario se muestran los campos IdDePedido, IdProducto, PrecioUnidad, Cantidad y Descuento. Sin embargo, el campo ProductName se encuentra en otra tabla, la tabla Productos. Puede usar la función DBúsq en un control calculado para mostrar productname en el mismo formulario.

Sintaxis

DBúsq( expresión, dominio [, criterios] )

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 un expresión de cadena identificar un campo en una tabla o consulta, o puede ser una expresión que realiza un cálculo en los datos de ese campo. En expresión, puede incluir el nombre de un campo en una tabla, un control de un formulario, una constante o una función. Si expresión incluye una función, puede ser integrada o definida por el usuario, pero no otra función de agregado de dominio o 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 para una consulta que no requiere un parámetro.

criterio

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

Comentarios

La función DBúsq devuelve un valor de campo único 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 los criterios, la función BuscarD devuelve la primera aparición. Debe especificar criterios que garantizarán que el valor de campo devuelto por la función DBúsq sea único. Es posible que desee usar un valor de 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 VariantvarX = DLookup("[LastName]", "Employees", _    "[EmployeeID] = 1")

Si usa la función BuscarD en una macro o módulo, una expresión de consulta o un control calculado, debe construir 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, 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 BuscarD en una expresión en un control calculado de un formulario o informe si el campo que necesita mostrar no está en el origen del registro en el que se basa el formulario o informe. Por ejemplo, supongamos 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 ProductName en una tabla Products 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)

Recomendaciones

  • Aunque puede usar la función BuscarD 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, a continuación, 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 quiere 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 Update .

Ejemplo

Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, vea Referencia de VBA de Access.

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

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

En el ejemplo siguiente de la tabla Transportistas se usa el control de formulario IdDeEnvío 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 VariantvarX = DLookup("[CompanyName]", "Shippers", _    "[ShipperID] = " & Forms!Shippers!ShipperID)

En el ejemplo siguiente se usa una variable, intSearch, para obtener el valor.

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

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.