quinta-feira, 25 de outubro de 2012

Access :: Múltiplos resultados com 1 só Dlookup


 Sempre que usar um Dlookup uma viagem será feita a tabela correspondente. Logo, usar vários dlookups - principalmente em sistemas em rede - faz com que o rendimento do sistema diminua.

Uma solução ótima para tal é usar apenas 1 dlookup e com este, retornar vários resultados. Veja:


Forma Incorreta
me!campoA = Dlookup("campo1","NomeDaTabela",filtro)
me!campoB = Dlookup("campo2","NomeDaTabela",filtro)
me!campoC = Dlookup("campo3","NomeDaTabela",filtro)
me!campoD = Dlookup("campo4","NomeDaTabela",filtro)
me!campoE = Dlookup("campo5","NomeDaTabela",filtro)
Forma Correta
Dim seq As String, k
filtro = "''"
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)
Fonte deste artigo: http://www.usandoaccess.com.br/dicas/dica32.asp?id=1#inicio

2 comentários:

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
  2. E se o filtro também tiver a condição de haver mais de um critério conforme for mudando os campos que obtém o resultado?
    Entraria um split também no filtro? Como seria?

    ResponderExcluir