MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


4 participantes

    [Resolvido]Dlookup sempre no primeiro registro

    Fabio Pradella
    Fabio Pradella
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 239
    Registrado : 08/02/2013

    [Resolvido]Dlookup sempre no primeiro registro Empty Dlookup sempre no primeiro registro

    Mensagem  Fabio Pradella 14/2/2013, 02:30

    Gente, o que eu fiz de errado para esta rotina retornar sempre o primeiro registro independente do nome que eu sugira na caixa de combinação?




    Private Sub NomeCliente_BeforeUpdate(Cancel As Integer)

    strFiltro = "NomeCliente"

    Me!Cliente = DLookup("cliente", "tabclientesconsulta", strFiltro)
    Me!Endereço = DLookup("endereço", "tabclientesconsulta", strFiltro)
    Me!Telefone = DLookup("Telefone", "tabclientesconsulta", strFiltro)
    Me!Contato = DLookup("contato", "tabclientesconsulta", strFiltro)

    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Alexandre Neves 14/2/2013, 07:20

    Bom dia, Fabio
    1 - Nomeie os controlos de forma normalizada (CxcNomeCliente, ...)
    2 - Colocou o código no acontecimento AntesDeActualizar
    3 - Não colocou critério de procura no filtro


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3883
    Registrado : 04/04/2010

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Avelino Sampaio 14/2/2013, 07:37

    Fabio,

    quem foi que te ensinou a preecher campos dessa maneira, utilizando a função Dlookup() ?????


    No aguardo



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Fabio Pradella
    Fabio Pradella
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 239
    Registrado : 08/02/2013

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Fabio Pradella 14/2/2013, 09:59

    Bom dia senhores,


    Alexandre, começarei agora a fazer as alterações,

    Avelino, na verdade sou muito leigo ainda em access, então mesmo quando peço ajuda aqui no fórum não deixo nunca de continuar pesquisando e tentando resolver sozinho, este exemplo eu peguei de um outro post aqui mesmo no fórum, passado a um colega pelo VieiraSoft, tentei adaptar.

    Peço aos senhores que mais do que dar um codigo pronto, sempre que possivel claro, indiquem aonde esta o erro para que assim eu aprenda mais fazendo do que so copiando.

    Farei as alterações e retorno assim que terminar.

    Obrigado por enquanto...
    Fabio Pradella
    Fabio Pradella
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 239
    Registrado : 08/02/2013

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Fabio Pradella 14/2/2013, 10:26

    Alexandre,


    passo um alterado,
    passo dois acredito que ja estava certo
    mas nao entendi bem o filtro...


    Private Sub CmbNomeCliente_BeforeUpdate(Cancel As Integer)

    strFiltro = "CmbNomeCliente = " & Me!CmbNomeCliente

    Me!TxtCliente = DLookup("cliente", "tabclientesconsulta", strFiltro)
    Me!TxtEndereço = DLookup("endereço", "tabclientesconsulta", strFiltro)
    Me!TxtTelefone = DLookup("Telefone", "tabclientesconsulta", strFiltro)
    Me!TxtContato = DLookup("contato", "tabclientesconsulta", strFiltro)

    End Sub
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3883
    Registrado : 04/04/2010

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Avelino Sampaio 14/2/2013, 10:45

    Fabio,

    Vc pode resgatar todos os campos de uma só vez. Desta forma contribui para vc não ter problemas com o desempenho do seu aplicativo.

    Experimente assim:

    Código:
    Dim seq As String, k
    seq = "[cliente] & '|' & [endereço] & '|' & [telefone] & '|' & [contato]"
    seq = Dlookup(seq, "NomeDaTabela", "cliente =""" & Me!CmbNomeCliente & """")
    k = Split(seq, "|")
    Me!txCliente = k(0)
    Me!txEndereço = k(1)
    Me!txTelefone = k(2)
    Me!txContato = k(3)

    Recomendo muito a leitura destes meus dois artigos:

    http://www.usandoaccess.com.br/dicas/dica32.asp?id=1#inicio

    e

    http://www.usandoaccess.com.br/tutoriais/tuto35.asp?id=1#inicio

    Sucesso!




    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Fabio Pradella
    Fabio Pradella
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 239
    Registrado : 08/02/2013

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Fabio Pradella 14/2/2013, 14:11

    Avelino,

    obrigado pelos links, vou estudar sim...

    Nossa, já li o primeiro link, show de bola a tua didatica, facil de entender ate para os mais leigos como eu, estou ate testando aqui a tua dica 9, parabéns pelo trabalho,

    adaptei o teu código, mas da uso de Null invalido...

    Então, lendo os links que me foram sugeridos, resolvi usar um processo novo que ali aprendi, em um formulário substitui a caixade textoClientes por uma caixadecombinaçãoClientes, onde carrego todos os dados do cliente e no evento antes de atualizar, selecionando um nome ele autocompleta alguns campos do formulário, mas o problema é que quando salvo o registro, na tabela, ao envés do nome do cliente ele salva o id do cliente no campo Cliente.

    No aguardo.... Obrigado
    Fabio Pradella
    Fabio Pradella
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 239
    Registrado : 08/02/2013

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Fabio Pradella 15/3/2013, 15:01

    Resolvido, obrigado.
    Fabio Pradella
    Fabio Pradella
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 239
    Registrado : 08/02/2013

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Fabio Pradella 23/3/2013, 16:18

    Peço gentilmente que alguém indique o erro da função dlookup neste exemplo anexo.


    Obrigado
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Cláudio Más 23/3/2013, 17:01

    seq = DLookup(seq, "tabelaclientes", "Nome= '" & Me!CboCliente.Column(1) & "'")
    Fabio Pradella
    Fabio Pradella
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 239
    Registrado : 08/02/2013

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Fabio Pradella 23/3/2013, 17:57

    Boa tarde Claudio,


    mais uma vez obrigado pela sua atenção, mas me explica por favor,

    seq = DLookup(seq, "tabelaclientes", "Nome= '" & Me!CboCliente.Column(1) & "'")

    Column(1), estou indicando em que coluna do controle cbo esta o filtro, mas voce tambem substituiu as " por ',
    ' significa todos os dados da coluna Nome? é isto?

    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Cláudio Más 23/3/2013, 20:17

    Boa tarde Fabio,

    Sim, Column(1) é a coluna do controle CboCliente cujo valor será utilizado para filtrar;

    Aspas simples são utilizadas para diferenciar das aspas duplas, quando são utilizadas dentro da mesma expressão.

    Conteúdo patrocinado


    [Resolvido]Dlookup sempre no primeiro registro Empty Re: [Resolvido]Dlookup sempre no primeiro registro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 9/5/2024, 00:58