locked
Consulta com vários ComboBox RRS feed

  • Pergunta

  • Caro Moderador:

    Bom dia, seguinte, já lí várias respostas, mas como sou ignorante em linguagem VBA, tenho que fazer uma consulta que tenha como base tipos e cor de vestuários, como tipo de camisa, cor da camisa, tipo de calça e cor de calça, etc, dando um total de 10 pesquisas as quais fiz a opção em combobox. Já fiz a consulta com os critérios baseados na combobox, fiz o  formulário com as combobox com as opções de vestuário e já coloquei o botão "PESQUISAR". PERGUNTO: como eu faço para que ele abra o formulário com base nestas combobox, sabendo que das várias pesquisas, as vezes, só vai ter um desses campos preenchidos?

    Desde já agradeço a sua atenção.

    Abraços

    Rodiney

    quinta-feira, 2 de junho de 2011 13:12

Todas as Respostas

  • Olá Rodiney,

    uma das limitações que vejo ao construir formulários de pesquisa sem usar VBA é justamente na hora de passar critérios opcionais (do tipo "se deixar em branco, traga todos").

    Algumas pessoas, para contornar esta limitação, usam na consulta um critério de texto assim:

    LIKE [Forms]![NomeDoForm]![NomeDaCombo] & "*"

    Eu não gosto deste tipo de solução porque ela acaba trazendo registros indesejados: se a combo for numérica, o filtro "11" acaba trazendo também o "110", por exemplo. Se a combo for texto, o "Azul" vai trazer também o "Azul-marinho".

    Se não pretende usar VBA, uma alternativa que eu recomendo é você usar o "Filtro por formulário" nativo do Access, pois ele permite pesquisar por qualquer campo, trabalha com as combos que você definir e funciona normalmente com critérios opcionais, filtrando só aquilo que você preencher como critério.

     

     

     


    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br - Access FAQ: www.accessfaq.com.br
    sexta-feira, 3 de junho de 2011 20:46
    Moderador
  • Luiz Cláudio, obrigado pela resposta. Vou seguir o seu conselho e tentar resolver esse probleminha, se não conseguir volto a te perguntar, caso vc queira me dar uma dica de como fazer em VBA, fique a vontade, pois eu descubro, pois se eu tiver uma base eu consigo substituir para o meu abiente.

    Desde já agradeço, um grande abraço.

     

    Rodiney

    sexta-feira, 3 de junho de 2011 21:17
  • Uma forma de aplicar o critério do tipo "se deixar em branco, traga todos" sem usar Like ... "*" é através da função Nz().

    Por exemplo, se o nome do campo na consulta é Campo com origem na tabela Tabela, o critério seria o seguinte:

    Nz([Forms]![NomeDoForm]![NomeDaCombo]; [Tabela].[Campo])


    • Editado Cláudio Más sábado, 4 de junho de 2011 05:09 correção
    sábado, 4 de junho de 2011 05:08
  • Bela sugestão, Cláudio. 

    Funciona bem e não precisa de código. 


    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br - Access FAQ: www.accessfaq.com.br
    domingo, 5 de junho de 2011 20:21
    Moderador
  • Obrigado, pela dica!"

    Ainda estou boiando e lendo muito, para aprender como  faço para o botão pesquisar abrir o formulário com as pesquisas, mas estou tentando.... Darei resposta!!!

    Abraços

     

    Rodiney

     

    segunda-feira, 6 de junho de 2011 20:43
  • Você pode criar uma macro com a ação "Abrir formulário", e definir esta macro no evento "Ao Clicar" do botão. 
    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br - Access FAQ: www.accessfaq.com.br
    terça-feira, 7 de junho de 2011 02:13
    Moderador