Em bancos de dados da área de trabalho do Access, você pode usar a função DLookup para obter o valor de um campo específico de um conjunto especificado de registros (um domínio ). Use a função DLookup em um módulo Visual Basic for Applications (VBA), um macro, uma expressão de consulta ou um controle calculado em um formulário ou relatório.

Observação: Este artigo não é válido para os aplicativos Web do Access.

Você pode usar a função DLookup para exibir o valor de um campo que não está na fonte de registro do seu formulário ou relatório. Por exemplo, suponha que você tenha um formulário com base em uma tabela Detalhes do Pedido. O formulário exibe os campos OrderID, ProductID, UnitPrice, Quantity e Discount. No entanto, o campo ProductName está em outra tabela, a tabela Produtos. Você pode usar a função DLookup em um controle calculado para exibir ProductName no mesmo formulário.

Sintaxe

DLookup( expr, domain [ ,criteria] )

A sintaxe da função DLookup tem estes argumentos:

Argumento

Descrição

expr

Obrigatório. Uma expressão que identifica o campo cujo valor você deseja retornar. Pode ser uma expressão de cadeia de caracteres identificar um campo em uma tabela ou consulta, ou pode ser uma expressão que executa um cálculo sobre dados nesse campo. Em expr, você pode incluir o nome de um campo em uma tabela, um controle em um formulário, uma constante ou uma função. Se expr incluir uma função, ela poderá ser interna ou definida pelo usuário, mas não outra função agregada de domínio ou SQL agregada.

domínio

Obrigatório. Uma expressão de cadeia de caracteres que identifica o conjunto de registros que constitui o domínio. Pode ser um nome de tabela ou um nome de consulta para uma consulta que não exige um parâmetro.

critérios

Opcional. Uma expressão de cadeia de caracteres usada para restringir o intervalo de dados no qual a função DLookup é executada. Por exemplo, os critérios geralmente são equivalentes à cláusula WHERE em uma expressão SQL, sem a palavra WHERE. Se critérios for omitido, a função DLookup avaliará expr em relação a todo o domínio. Qualquer campo incluído em critérios também deve ser um campo no domínio; caso contrário, a função DLookup retorna um Null.

Comentários

A função DLookup retorna um único valor de campo com base nas informações especificadas em criteria. Embora critérios seja um argumento opcional, se você não fornecer um valor para critérios,a função DLookup retornará um valor aleatório no domínio.

Se nenhum registro satisfaça critérios ou se o domínio não contiver registros, a função DLookup retornará null .

Se mais de um campo atender aos critérios,a função DLookup retornará a primeira ocorrência. Você deve especificar critérios que garantirão que o valor do campo retornado pela função DLookup seja exclusivo. Talvez você queira usar um valor chave primária para seus critérios, como [EmployeeID] exemplo a seguir, para garantir que a função DLookup retorne um valor exclusivo:

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

Se você usar a função DLookup em uma macro ou módulo, uma expressão de consulta ou um controle calculado, você deve construir o argumento criteria cuidadosamente para garantir que ele será avaliado corretamente.

Você pode usar a função DLookup para especificar critérios na linha Criteria de uma consulta, em uma expressão de campo calculada em uma consulta ou na linha Atualizar para em um atualizar consulta.

Você também pode usar a função DLookup em uma expressão em um controle calculado em um formulário ou relatório se o campo que você precisa exibir não estiver na fonte de registro na qual seu formulário ou relatório está baseado. Por exemplo, suponha que você tenha um formulário Detalhes do Pedido com base em uma tabela Detalhes do Pedido com uma caixa de texto chamada ProductID que exibe o campo ProductID. Para procurar ProductName de uma tabela Products com base no valor na caixa de texto, você pode criar outra caixa de texto e definir sua propriedade ControlSource para a seguinte expressão:

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

Dicas

  • Embora você possa usar a função DLookup para exibir um valor de um campo em um tabela estrangeira, pode ser mais eficiente criar uma consulta que contenha os campos necessários de ambas as tabelas e, em seguida, basear seu formulário ou relatório nessa consulta.

  • Você também pode usar o Assistente de Procurar para encontrar valores em uma tabela estrangeira.

Observação: As alterações não savadas nos registros no domínio não são incluídas quando você usa essa função. Se você quiser que a função DLookup se basee nos valores alterados, primeiro salve as alterações clicando em Salvar Registro em Registros na guia Dados, movendo o foco para outro registro ou usando o método Update.

Exemplo

Observação: Exemplos a seguir demonstram o uso dessa função em um módulo Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na listada ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.

O exemplo a seguir retorna informações de nome do campo CompanyName dos critérios satisfatórios do registro. O domínio é uma tabela Shippers. O argumento criteria restringe o conjunto de registros resultante àqueles para os quais ShipperID é igual a 1.

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

O próximo exemplo da tabela Shippers usa o controle de formulário ShipperID para fornecer critérios para a função DLookup. Observe que a referência ao controle não está incluída nas aspas que denotam as cadeias de caracteres. Isso garante que sempre que a função DLookup for chamada, o Access obterá o valor atual do controle.

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

O próximo exemplo usa uma variável, intSearch, para obter o valor.

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

Precisa de mais ajuda?

Expanda suas habilidades

Explore o treinamento >

Obtenha novos recursos primeiro

Ingressar no Microsoft Insider >

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?

Obrigado pelos seus comentários!

×