MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    Função DLookup explicação

    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7305
    Registrado : 11/05/2010

    Função DLookup explicação Empty Função DLookup explicação

    Mensagem  vieirasoft em 22/1/2011, 10:53

    Allen Brown

    Obtendo um valor de uma tabela: DLookup ()

    Cedo ou tarde você vai precisar para recuperar um valor armazenado em uma tabela. Se você faz regularmente escrever facturas às empresas, você terá uma tabela Empresa que contém todos os detalhes da companhia, incluindo um campo CompanyID, bem como um quadro do contrato que armazena apenas CompanyID a olhar para os detalhes. Às vezes você pode basear seu formulário ou relatório em uma consulta que contém todas as tabelas adicionais. Outras vezes, DLookup () vai ser um salva-vidas.

    DLookup () espera que você dê a ele três coisas dentro dos colchetes. Pense neles como:

    Procure o campo _____, _____ da tabela, onde o registro é _____Each destes deve ir entre aspas, separados por vírgulas.

    Você também deve usar colchetes em volta da mesa ou nomes de campo se os nomes contenham caracteres estranhos (espaços, #, etc) ou começar com um número.

    Este é provavelmente o mais fácil de seguir com alguns exemplos:

    1.Você tem um CompanyID como 874, e deseja imprimir o nome da empresa em um relatório;
    2.Você tem como Categoria "C", ea necessidade de mostrar o que significa esta categoria.
    3.Você tem StudentID como "JoneFr", ea necessidade do aluno? Nome completo de um formulário.
    Exemplo 1:
    Procure o campo CompanyName da tabela Empresa, onde CompanyID = 874. Isto traduz-se:

    = DLookup ("CompanyName", "Company", "CompanyID = 874") Você não quer Company 874 impressos para cada registro! Use um e comercial (&) para concatenar o valor atual no campo CompanyID de seu relatório para a empresa "=" critérios:

    = DLookup ("CompanyName", "Company", "CompanyID =" & [CompanyID]) Se o CompanyID é nula (como poderia ser em um novo registro), o terceiro agumenent será incompleta, por isso todo o rendimento expressão # Error . Para evitar que o uso Nz () para fornecer um valor para quando o campo é nulo:

    DLookup = (CompanyName "," Companhia "," CompanyID = "& Nz ([CompanyID], 0)) Exemplo 2:
    O exemplo acima é correto se CompanyID é um número. Mas se o campo é texto, o Access espera aspas em torno dele. Em nosso segundo exemplo, vemos o campo NomeDaCategoria na tabela Cat, onde Categoria = 'C'. Isso significa que o DLookup torna-se:

    = DLookup ("CategoryName", "Gato", "Categoria = 'C'") aspas simples dentro das aspas é uma maneira de fazer citações entre aspas. Mas, novamente, nós não queremos Categoy C 'para todos os registros: temos o valor atual do nosso campo Categoria remendado na citação. Para fazer isso, fechamos a citação após a primeira citação, adicione o conteúdo da categoria, e depois adicionar a citação à direita única. Isto torna-se:

    DLookup = (CategoryName "," Gato "," Categoria = '"&] [Categoria &"' ") Exemplo 3:
    Em nosso terceiro exemplo, temos o nome completo de uma tabela de Student. Mas a tabela aluno tem o nome de divisão em campos Nome e sobrenome, por isso teremos de nos referir a ambos e adicionar um espaço entre elas. Para mostrar esta informação na sua forma, adicionar uma caixa de texto com ControlSource:

    = DLookup ("[nome] &" "& [Sobrenome]", "Estudante", "StudentID = '" & [StudentID] & "'") citações entre aspas
    Agora você sabe como a fornecer as 3 partes para DLookup (), você está usando aspas aspas. O caractere apóstrofo não se o texto contém um apóstrofo, então é melhor usar o caractere de aspas duplas. Mas você deve dobrar-se o carácter de aspas duplas quando se cita dentro.

    Veja as marcas de cotação entre aspas para obter mais detalhes.
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10590
    Registrado : 04/11/2009

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  JPaulo em 5/2/2013, 16:50

    Complementando aqui para não se perder a noção da utilização da função DLookup;


    Para valores numericos: (sem aspas)

    DLookup("Campo" , "Tabela" , "CampoFiltro = 123")

    Para Texto: (aspas simples)

    DLookup("Campo" , "Tabela" , "CampoFiltro= 'abcd'")

    Para datas: (cardinal)

    DLookup("Campo" , "Tabela" , "CampoFiltro= #01-08-2012#")



    Referencia a um Controle:

    Para valores numericos: (sem aspas)

    DLookup("Campo", "Tabela", "CampoFiltro = " & forms!NomeDoFormulario!NomeDoCampo)

    Para Texto: (aspas simples)

    DLookup("Campo", "Tabela", "CampoFiltro = '" & forms!NomeDoFormulario!NomeDoCampo & "'")

    Para datas:

    DLookup("Campo", "Tabela", "CampoFiltro = #" & forms!NomeDoFormulario!NomeDoCampo & "#")



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Função DLookup explicação Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Função DLookup explicação Folder_announce_new 102 Códigos VBA Gratuitos...
    Função DLookup explicação Folder_announce_new Instruções SQL como utilizar...
    Jungli
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 659
    Registrado : 07/05/2010

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  Jungli em 5/2/2013, 17:31


    Com o Dlookup pode-se extrair valores de varias formas.

    Exemplos:

    * concatenar campos

    Dlookup("[campo1] & [campo2],"nomeDatabela")

    * valores já calculados

    Dlookup("[campo1] + [campo2],"nomeDatabela")

    Dlookup("(([campo1] + [campo2])/100),"nomeDatabela")

    Em relação ao desempenho, concatenando vários campos num único Dlookup, veja como fica um código alternativo (do mestre Avelino)

    Dim seq As String, k
    seq = "[campo1] & '|' & [campo2] & '|' & [campo3] & '|' & [campo4] & '|' & [campo5]"
    seq = Dlookup(seq, "NomeDaTabela", Filtro)
    k = Split(seq, "|")
    Me!campoA = k(0)
    Me!campoB = k(1)
    Me!CampoC = k(2)
    Me!CampoD = k(3)
    Me!CampoE = k(4)

    Conclusão:

    Com isso reduzimos de 5 para apenas 1 viagem a tabela. (DESEMPENHO).

    Fonte:
    Enciclopédia Avelino Sampaio
    avatar
    vantunes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 16/12/2015

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  vantunes em 26/10/2016, 17:06

    ando as voltas com uma função dlookup

    nao entendo o que esta mal no codigo seguinte

    Código:
    COD_EDIF = DLookup("[COD_EDIF1]", "AUX", "[COD_FREG1]= '" & Me.COD_FREG & "'" And "[N_ORDEM1] = '" & Me.N_ORDEM & "'")

    a tabela AUX tem os registos de texto COD_EDIF1, COD_FREG1, N_ORDEM1. Para cada par N_ORDEM1 e COD_FREG1 ha um Valor COD_EDIF1 correspondente

    quero ao clicar num botao coloque o campo COD_EDIF do formulário com o valor correspondente do par N_ORDEM e COD_FREG do Formulário.

    alguma dica?
    avatar
    Dorival J
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 69
    Registrado : 02/05/2016

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  Dorival J em 30/10/2016, 12:13


    A função Dlookup só funciona com base nas tabelas?

    Não funciona com base em formulários, consultas ou relatórios?
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3633
    Registrado : 29/06/2012

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  Noobezinho em 30/10/2016, 14:45

    Dorival

    DLookup()
    DSoma()

    Funções que começam com "D" que por sua vez quer dizer Dynaset (tabela), sim, retornam resultados da tabela.

    [ ]'s
    Cláudio Más
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1276
    Registrado : 21/01/2012

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  Cláudio Más em 3/11/2016, 21:10

    vantunes, tente assim:

    Código:
    COD_EDIF = DLookup("[COD_EDIF1]", "AUX", "[COD_FREG1]= '" & Me!COD_FREG & "' And [N_ORDEM1] = '" & Me!N_ORDEM & "'")
    avatar
    maluco_sergio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 37
    Registrado : 09/11/2016

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  maluco_sergio em 10/12/2016, 11:17


    Bom dia.

    Será que posso usar o Dlookup para fazer o seguinte?

    - procurar o último registo na tabela "Correspondencia_Historico" em que o campo "ID" do "frmCorrespondenciaEntradaEditar" e igual a "ID_Correspondencia" da tabela.
    Então copiar o valor do campo "Destinatario_Correspondencia" da tabela "Correspondencia_Historico" e colar no campo "Responsável_Entrada" do "frmCorrespondenciaEntradaEditar".

    Será possível?

    Obrigado.

    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10590
    Registrado : 04/11/2009

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  JPaulo em 16/12/2016, 14:06

    Se quer o ultimo registo, não é o Dlookup, será o DLast com a mesma estrutura do Dlookup.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Função DLookup explicação Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Função DLookup explicação Folder_announce_new 102 Códigos VBA Gratuitos...
    Função DLookup explicação Folder_announce_new Instruções SQL como utilizar...
    good guy
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1271
    Registrado : 05/02/2010

    Função DLookup explicação Empty Função Dlookup explicação

    Mensagem  good guy em 20/12/2016, 15:20

    Olá feras,

    Minha contribuição:

    Você pode usar a função DLookup (na IDE do Access ficará assim mesmo) para especificar critérios na linha critérios de uma consulta(na consulta ficará como DPesquisa, separando com ";" no lugar da "," , o campo da tabela e do critério de pesquisa), dentro de uma expressão de campo calculado em uma consulta ou na linha Atualizar para um atualizar consulta.

    Possível:
    =DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)   '

    Melhor:
    Dim sID As Long
    sID = Forms![Order Details]!ProductID

    txtCampoX =DLookup("[ProductName]", "Products", "[ProductID] =" & sID)

    Outra coisa, elimine a possibilidade de surgir uma mensagem de erro na depuração de seu código e tornar seu código vulnerável a modificações indesejadas com:

    On Error Resume Next (No início do código) <===  
    Dim sID As Long
    sID = Forms![Order Details]!ProductID

    txtCampoX =DLookup("[ProductName]", "Products", "[ProductID] =" & sID)

    E a função Nz para possibilitar trabalhar o código mesmo com campos nulos e evitar a abertura do código para modificações indesejadas.

    txtCampoX =Nz(DLookup("[ProductName]", "Products", "[ProductID] =" & sID))


    Última edição por good guy em 1/8/2018, 22:25, editado 2 vez(es)
    avatar
    fazerbem
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 381
    Registrado : 05/03/2017

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  fazerbem em 1/8/2018, 17:58

    Isso me serviu bem !
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1011
    Registrado : 23/01/2018

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  crysostomo em 16/8/2019, 18:46

    Boa tarde amigos, fazendo outro sistema com o DLookup, encontrei o erro,com certeza vai dar em outros que fiz.
    se o usuario colocar uma apas, (Eduardo') o access abre o vba.

    E se o usuário quser colocar a senha string mais número também da erro.
    Como tratar esse erro?


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 984
    Registrado : 22/11/2016

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  IvanJr. em 16/8/2019, 21:44

    Veja, crysostomo
    docs.microsoft.com/pt-br/office/vba/access/concepts/criteria-expressions/include-quotation-marks-in-string-expressions

    Em resumo, no lugar de aspas simples coloque aspas duplas duas vezes


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1011
    Registrado : 23/01/2018

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  crysostomo em 19/8/2019, 17:34

    Obrigado Ivan.
    Vou estudar isso


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.

    Conteúdo patrocinado

    Função DLookup explicação Empty Re: Função DLookup explicação

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/10/2019, 03:09