Método Application. DLookup (Access)Application.DLookup method (Access)

Puede usar la función DLookup para obtener el valor de un campo particular de un conjunto de registros especificado (un dominio).You can use the DLookup function to get the value of a particular field from a specified set of records (a domain).

SintaxisSyntax

expresión. DBúsq (Expr, dominio, criterios)expression.DLookup (Expr, Domain, Criteria)

expresión Variable que representa un objeto Application.expression A variable that represents an Application object.

ParámetrosParameters

NombreName Obligatorio/opcionalRequired/Optional Tipo de datosData type DescripciónDescription
ExprExpr ObligatorioRequired StringString Una expresión que identifica el campo cuyo valor se quiere devolver.An expression that identifies the field whose value you want to return. Puede ser una expresión de cadena que identifica un campo de una tabla o consulta, o una expresión que realiza un cálculo con los datos de ese campo.It can be a string expression identifying a field in a table or query, or it can be an expression that performs a calculation on data in that field. En expr, puede incluir el nombre de un campo en una tabla, un control de un formulario, una constante o una función.In expr, you can include the name of a field in a table, a control on a form, a constant, or a function. Si expr incluye una función, puede ser integrada o definida por el usuario, pero no puede ser ninguna otra función de agregado de dominio o de agregado de SQL.If expr includes a function, it can be either built-in or user-defined, but not another domain aggregate or SQL aggregate function.
DomainDomain ObligatorioRequired StringString Una expresión de cadena que identifica el conjunto de registros que constituyen el dominio.A string expression identifying the set of records that constitutes the domain. Puede ser un nombre de tabla o de consulta para una consulta que no requiere ningún parámetro.It can be a table name or a query name for a query that does not require a parameter.
CriteriaCriteria OptionalOptional VariantVariant Una expresión de cadena opcional que se utiliza para restringir el intervalo de datos en el que se ejecuta la función DLookup .An optional string expression used to restrict the range of data on which the DLookup function is performed. Por ejemplo, criteria suele ser equivalente a la cláusula WHERE en una expresión SQL, sin la palabra WHERE.For example, criteria is often equivalent to the WHERE clause in an SQL expression, without the word WHERE. Si se omite criteria , la función DLookup evalúa expr para todo el dominio.If criteria is omitted, the DLookup function evaluates expr against the entire domain. Cualquier campo que se incluya en criteria también debe ser un campo de dominio; de lo contrario, la función DLookup devuelve un valor null.Any field that is included in criteria must also be a field in domain; otherwise, the DLookup function returns a Null.

Valor devueltoReturn value

VariantVariant

ObservacionesRemarks

Puede usar la función DLookup para mostrar el valor de un campo que no se encuentra en el origen de registros de un formulario o informe.You can use the DLookup function to display the value of a field that isn't in the record source for your form or report. Por ejemplo, supongamos que tiene un formulario basado en una tabla Order Details.For example, suppose you have a form based on an Order Details table. El formulario muestra los campos IdPedido, IdProducto, PrecioUnidad, cantidady descuento .The form displays the OrderID, ProductID, UnitPrice, Quantity, and Discount fields. Sin embargo, el campo NombreProducto está en otra tabla, la tabla productos.However, the ProductName field is in another table, the Products table. Puede usar la función DLookup en un control calculado para mostrar el NombreProducto en el mismo formulario.You could use the DLookup function in a calculated control to display the ProductName on the same form.

La función DLookup devuelve un solo valor de campo basándose en la información especificada en criteria.The DLookup function returns a single field value based on the information specified in criteria. Aunque criteria es un argumento opcional, si no se proporciona un valor para criteria, la función DLookup devuelve un valor aleatorio en el dominio.Although criteria is an optional argument, if you don't supply a value for criteria, the DLookup function returns a random value in the domain.

Si ningún registro cumple los _criterios especificados por Criteria_o si Domain no contiene registros, la función DLookup devuelve un valor null.If no record satisfies criteria, or if domain contains no records, the DLookup function returns a Null.

Si hay más de un campo que cumple los criterios, la función DLookup devuelve la primera aparición.If more than one field meets criteria, the DLookup function returns the first occurrence. Deberá especificar criterios que aseguren que el valor de campo devuelto en la función DLookup sea único.You should specify criteria that will ensure that the field value returned by the DLookup function is unique. Quizá quiera usar una clave principal para los criterios, como [EmployeeID] en el ejemplo siguiente, para asegurarse de que la función DLookup devuelve un valor único:You may want to use a primary key value for your criteria, such as [EmployeeID] in the following example, to ensure that the DLookup function returns a unique value:

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

Independientemente de si usa la función DLookup en una macro, un módulo, una expresión de consulta o un control calculado, debe crear el argumento criteria con cuidado para garantizar que se evaluará correctamente.Whether you use the DLookup function in a macro or module, a query expression, or a calculated control, you must construct the criteria argument carefully to ensure that it will be evaluated correctly.

Puede usar la función DLookup 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.You can use the DLookup function to specify criteria in the Criteria row of a query, within a calculated field expression in a query, or in the Update To row in an update query.

También puede usar la función DLookup en una expresión de un control calculado ubicado en un formulario o informe si el campo que necesita mostrar no está en el origen de registros del formulario o informe.You can also use the DLookup function in an expression in a calculated control on a form or report if the field that you need to display isn't in the record source on which your form or report is based. 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 .For example, suppose you have an Order Details form based on an Order Details table with a text box called ProductID that displays the ProductID field. 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 siguiente expresión:To look up ProductName from a Products table based on the value in the text box, you could create another text box and set its ControlSource property to the following expression:

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

Sugerencia

  • Aunque puede usar la función DLookup para mostrar un valor de un campo de una 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.Although you can use the DLookup function to display a value from a field in a foreign table, it may be more efficient to create a query that contains the fields that you need from both tables and then to base your form or report on that query.
  • También puede utilizar el Asistente para búsquedas para buscar valores en una tabla externa.You can also use the Lookup Wizard to find values in a foreign table.

EjemploExample

En el siguiente ejemplo se devuelve la información de nombre del campo CompanyName del registro que satisface los criterios.The following example returns name information from the CompanyName field of the record satisfying criteria. El dominio es una tabla de transportistas.The domain is a Shippers table. El argumento criteria restringe el conjunto de registros resultante a aquéllos para los que ShipperID es igual a 1.The criteria argument restricts the resulting set of records to those for which ShipperID equals 1.

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

En el ejemplo siguiente de la tabla Shippers se usa el control de formulario ShipperID con el fin de proporcionar criterios para la función DBúsq (DLookup).The next example from the Shippers table uses the form control ShipperID to provide criteria for the DLookup function. Observe que la referencia al control no está incluida en los signos de comillas tipográficas que denotan las cadenas.Note that the reference to the control isn't included in the quotation marks that denote the strings. De esta forma se garantiza que cada vez que se llame a la función DBúsq, Microsoft Access obtendrá el valor actual del control.This ensures that each time the DLookup function is called, Microsoft Access will obtain the current value from the control.

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

El siguiente ejemplo usa una variable, intSearch, para obtener el valor.The next example uses a variable, intSearch, to get the value.

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

Los ejemplos siguientes muestran cómo usar varios tipos de criterios con la función DLookup.The following examples show how to use various types of criteria with the DLookup function.

    ' ***************************
    ' Typical Use
    ' Numerical values. Replace "number" with the number to use.
    variable = DLookup("[FieldName]", "TableName", "[Criteria] = number")

    ' Strings.
    ' Numerical values. Replace "string" with the string to use.
    variable = DLookup("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' Dates. Replace "date" with the string to use.
    variable = DLookup("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' Referring to a control on a form
    ' Numerical values
    variable = DLookup("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' Strings
    variable = DLookup("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' Dates
    variable = DLookup("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' Combinations
    ' Multiple types of criteria
    variable = DLookup("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' Use two fields from a single record.
    variable = DLookup("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' Expressions
    variable = DLookup("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' Control Structures
    variable = DLookup("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.