Access – Filtros sequenciais – Versão 2

Trata-se de uma função que permite a filtragem sequencial, em qualquer ordem, dos registros de um formulário para campos dos seguintes tipos :

Texto; Data/Hora; Sim/Não; Autonumeração; Byte; Inteiro; Inteiro Longo; Simples; Duplo; Decimal

Você pode criar quantas combinações de filtros quiser. As caixas de combinação dos filtros ainda não usados apresentam apenas os dados compatíveis com a filtragem anterior.

Para usar, você deve importar a função para o seu banco de dados, criar ou adaptar caixas de combinação para uso como filtro segundo determinadas regras e anexar a elas um procedimento de evento “Ao Atualizar” que faz a chamada da função. No exemplo essas etapas são descritas em detalhes (botão Como Usar).

O código está comentado.

Veja os termos de uso na página Sobre

Antes de baixar, veja este exemplo que é muito mais versátil

Atualização 0.3 (15/3/2012) 

Nesta versão foi incluída a possibilidade de se ter filtros classificados em ordem decrescente.

Nas versões anteriores independente da classificação inicial do filtro, após a primeira filtragem ou a remoção do filtro, todas as caixas de combinação dos filtros eram classificadas em ordem crescente.

Se usou a versão anterior (V2 0.2) em seus programas, basta substituir o módulo FiltrosSequenciaisV2 pela versão deste exemplo.

Para usar, siga as instruções mostradas ao clicar o botão “Como usar” do exemplo.

.

Orientações

Quando a Origem do registro do seu formulário tem uma associação do tipo 1 para muitos, caso exista um registro do lado 1 sem um dado associado no lado muitos ,  o que vai ocorrer é que o registro com esse dado não vai aparecer no formulário . Para que isso não ocorra, você deve alterar o tipo de associação como mostrado abaixo.

Atenção : Esta instrução de montagem não está incorporada no exemplo !

A origem do registro do seu formulário tem que ser uma instrução SQL (Select ….) . Se você usar o nome da tabela como origem do registro vai dar erro ! 

28/9/2012

.

Pergunta interessante colocada nos comentários :
Como imprimir os resultados da filtragem do formulário em um relatório ?

Resposta : No seu formulário que tem os filtros, coloque um botão para abrir o seu relatório.

Na janela propriedades do relatório, na aba Dados, troque a opção Filtro ativado de Não para Sim.

No evento AoAbrir do relatório, coloque a seguinte instrução:

Me.Filter = varFiAc

Alternativamente você pode deixar a opção Filtro ativado como Não e colocar no procedimento Ao Abrir do relatório a instrução:

Me.FilterOn = True
Me.Filter = varFiAc

Obs: Só para garantir, certifique-se que a origem dos registros do seu relatório é a mesma da origem dos registros do seu formulário !

Histórico das versões 

Por favor, antes de tentar modificar a função ou postar um comentário, clique aqui.

Sobre accessporexemplo
São Paulo - Brasil

41 Responses to Access – Filtros sequenciais – Versão 2

  1. Nivaldo disse:

    olá amigo, muito bom esse tópico, eu tenho uma duvida, eu uso em um de meus sistemas o filtro sequenciais 1, onde é limitado, não posso usar em minha tabela campos tipo Numero, agora com essa versão 2.0 ficou muito bom, más minha duvida é a seguinte, na versão 1 que uso o resultado dos filtos são mostrados em um Sub-Form, nessa versão eu quebrei a cabela e nao consegui fazer o mesmo. Se puderem me ajudar fico agradecido.

    • Nivaldo

      Dei uma mexida no exemplo Filtros sequenciais para subformulários e a primeira vista parece ser possível usar um número como filtro.
      O que eu fiz foi a conversão em string dos campos a serem filtrados para efeito de construção das SQL’s.
      Como foi feitos as pressas, teste , teste, teste e teste mais uma vez antes de incorporar ao seu projeto.
      No futuro pretendo aplicar a mesma metodologia da versão 2 dos Filtros sequenciais em um formulário com sub-formulário e então colocar como exemplo no blog.

      Te mando o arquivo mexido por email.

      Abraço

      Paulão

  2. Nivaldo disse:

    outra duvida, no exemplo com sub-form eu coloquei um hiperlink no campo numeração de cada cliente, assim quando clicava no numero se abria outra tela com todos os dados do cliente escolhido, pois na tela de filtro apenas aparece os dados resumidamente.
    tentei importar mas nao deu certo, será que é possivel nessa nova versão?

  3. Manoel disse:

    Parabéns ao autor, pois é muito bom o Filtros Sequenciais V2.02, era justamente o que estava precisando. Uso o Access 2003 com Windows 7 64 bits. Fiz o download. Marquei as Referencias, copiei o Módulo e segui as demais orientações, no entanto, ao clicar em qualquer um dos controles da combobox para filtrar aparece a mensagem: Erro em tempo de execução ‘3012’: O objeto ‘ConsultaTemp’ já existe”. Ao Depurar mostra em destaque a linha: Set qdfNewClic = dbs.CreateQueryDef(“ConsultaTemp”, varClicSQL) ‘Cria a consulta temporária da ccFiltro clicada.
    Alguém poderia me ajudar a resolver essa bronca ? Obrigado pela atenção. Um abraço.

  4. Manoel disse:

    Ao clicar nas consultas vi que tinha uma com o nome ‘ConsultaTemp’ então imagino que o código cria essa consulta temporária para depois exclui-la. Então exclui e tentei novamente, só que dessa vez deu outra mensagem: “Erro em tempo de execução ’13’: Tipos incompatíveis’. Ao depurar mostra em destaque a linha: Set fldQueryDefClic = dbs.QueryDefs(“ConsultaTemp”).Fields(0) ‘Definição do campo :Fields(0)
    Que é a linha seguinte ao 1º erro citado na mensagem anterior, então como resolver isso?

    PS: A origem do Formuário é baseado apenas em 1 única Tabela. Usei até agora apenas 1 campo tipo Texto, 1 campo tipo Inteiro simples, 1 Campo Número simples e 1 campo com Valor monetário.

  5. Manoel

    A “ConsultaTemp” é realmente uma consulta temporária para obter o nome do campo da tabela que é

    origem dos registros do filtro que foi acionado. Ela é criada na função FiltrosSequenciaisV2 e excluída

    nessa mesma função ou quando você Usar o botão Remover filtros.

    Quando numa primeira tentativa de testar a ação dos filtros ocorre algum erro e a execução do código é

    interrompida pelo usuário, a “ConsultaTemp” não é excluída e gera o erro que você descreve.

    Se foi isso que aconteceu, você lembra o que estava fazendo nessa primeira tentativa ?

    O que você fez para corrigir o erro está correto : Excluir manualmente a consulta.

    O erro seguinte (13) é fruto de alguma incompatibilidade de tipo de dado no momento da criação da

    consulta temporária.

    Para eu poder tentar saber o que está acontecendo, faz o seguinte:

    1) No editor de códigos, faz uma interrupção no código da função FiltrosSequenciaisV2 na linha :

    “Debug.Print ” >> ” & varClicSQL”
    2) Abre a Janela Imediata
    3) Volta para o formulário e executa uma filtragem
    4) Quando a execução do código parar na sua interrupção, pressione F8
    5) Copie o resultado mostrado na Janela Imediata

    Inclua esse item na sua resposta a este comentário.

    Outra pergunta, o exemplo baixado no blog funcionou corretamente quando você testou ?
    Se deu algum problema, então o erro pode ser devido às Referências.

    Aguardo sua resposta

    Paulo

  6. Manoel disse:

    Paulo, boa noite

    Fiz como você orientou e após fazer novo teste apareceram as seguintes linhas na Janela Imediata:
    ###### FUNCTION ###########################################################
    ———————————————–
    varFiaAc INICIAL :
    varGroup INICIAL :
    ———————————————–

    >>> COLETA DE DADOS DO FILTRO SELECIONADO >>> INÍCIO #

    RowSource original do filtro clicada (varClicSQL) [ 216 ]>>

    >> SELECT T05_Empreendimentos.Empreendimento FROM T05_Empreendimentos GROUP BY T05_Empreendimentos.Empreendimento HAVING (((T05_Empreendimentos.Empreendimento) Is Not Null)) ORDER BY T05_Empreendimentos.Empreendimento;

    O exemplo baixado do blog funcionou perfeitamente.
    Quanto às Referências tenho as seguintes marcadas na ordem abaixo:
    Visual Basic For Applications
    Microsoft Access 11.0 Object Library
    OLE Automation
    Microsoft ActiveX Data Objects 2.1 Library
    Microsoft DAO 3.6 Object Library
    Microsoft XML, 4.0
    Microsoft CDO for Windows 2000 Library
    Microsoft Internet Controls
    Microsoft Visual Basic for Applicatios Extensibility 5.3
    * esta última foi marcada a partir da sua orientação no BD baixado, antes de testar o sistema, ou seja, antes do erro.

    Agradeço a atenção dada, muito obrigado mesmo.
    Um abraço.

  7. Manoel disse:

    Esqueci: mais um detalhe, estou usando apenas 1 Tabela para os filtros sequenciais.

    Então, fico aguardando sua resposta.

    Obrigado.

  8. Manoel

    O erro 13 em geral ocorre quando se tenta comparar tipos de dados diferentes.
    No entanto, após verificar o seu banco de dados, constatei que o problema estava na ordem das referências.

    A ordem correta é a seguinte:

    Visual Basic For Applications
    Microsoft Access 11.0 Object Library
    -> Microsoft DAO 3.6 Object Library
    OLE Automation
    -> Microsoft Visual Basic for Applicatios Extensibility 5.3
    Microsoft ActiveX Data Objects 2.1 Library
    Microsoft XML, 4.0
    Microsoft CDO for Windows 2000 Library
    Microsoft Internet Controls

    As referências que foram mudadas de lugar estão assinaladas com : ->

    Abraço

    Paulo

  9. Rui Sérgio disse:

    Bom dia
    Parabens pelo artigo, está excelente.
    Eu utilizo os filtros predefinidos no access 2007 nos formularios continuos.
    Como a origem dos dados dos formularios continuos é via ADO com ligação ao sql server os filtros do tipo termina com, contem, começa com , não funcionam presumo que seja pelo facto de o access assumir por defeito o * e a linguagem ado utiliza o %.
    Tem como criar um menu de filtro personalizado semelhante ao do access que seja acionado com o botão direito do rato e que funcione com ado?
    Um Abraço Rui

    • Rui

      A regra para criação da origem da linha das caixas de combinação usadas como filtro é rígida . Tem que ser exatamente igual a que está explicada no exemplo.
      A razão é que a SQL que é criada para cada filtro após cada filtragem é uma repetição padronizada da SQL que é a origem da linha no início.
      Isso significa que você não pode modificá-la usando ( * ) . Acredito que o problema está na tentativa de mudança da regra da origem da linha e não na utilização do ADO. Para ter certeza da origem do problema, crie uma cópia do seu programa, adapte os filtros para a regra do exemplo e veja se funciona.
      Quanto ao acionamento com o botão direito do rato, ele seria acionado quando você clicasse aonde ?

      Abraço

      Paulo

      • Rui Sérgio disse:

        Ola Paulo
        Obrigado pela resposta.
        A minha ideia seria ao cliclar no botão direito abrir um ecra semelhante ao dos filtros do access e clicar na opção pretendida(Igual a , termina com, começa com) no caso de igual a preencher a caixa de listagem, assumindo o filtro na coluna aonde se encontre o rato.
        Os filtros predefenidos pelo acces não funcionam nos meus formularios continuos que a origem dos dados é feita com código utilizando ADO. O DAO no comnado LIKE utiliza-se * no ADO utiliza-se %, presumo que o erro venha daí.
        Será que é possivel o que eu pretendo?
        Um Abraço
        Rui

      • Rui

        Os filtros do exemplo só funcionam para o critério ” = ” ao valor do filtro. Você não pode acrescentar nenhum critério diferente na consulta que é origem da linha dos filtros. Se fizer isso, eles não vão funcionar mesmo.

        Acredito que esta seja a razão do problema e não o uso de ADO x DAO.

        Respondendo à sua pergunta : se consegui interpretar corretamente o que você pretende, eu diria que é possível mas a função do exemplo vai ser de pouca ajuda.

        Para ajudar em parte na solução do problema, no link abaixo você vai encontrar o código que permite abrir um formulário com o clique direito do mouse sem que seja aberto ao mesmo tempo o Menu de contexto.

        Esse formulário seria o que você chamou de “um ecra semelhante ao dos filtros do access” .
        Nesse formulário você vai ter que construir os filtros com os critérios que você deseja.

        Código : https://accessporexemplo.wordpress.com/comentarios-filtros-sequenciais-v2-rui/

      • Rui Sergio disse:

        Obrigado pela colaboração, testei o codigo e deu erro, acha que é possivel ao abrir o formulario para os filtros detete o nome do campo onde se encontre o rato evitando de colocar codigo em todos os campos?
        Um abraço
        Rui

      • Rui

        Criei um exemplo com o código do post anterior.

        Teste e veja se funciona

        http://www.drivehq.com/file/df.aspx/publish/robilotta/PublicFolder/MouseDireito.zip

      • Rui Sérgio disse:

        Bom dia Paulo
        Obrigado pela colaboração, o exemplo esta um espetaculo, é o que eu pretendo, só faltam dois pormenores, é o seguinte:
        Ao abrir o Form3 dá para a posição do canto superior esquerdo do formulario ser a posição do rato?
        Dá para criar um modulo para não necessitar de colocar código em todos os campos para abrir o form3 (tipo menu de atalho)?
        Desculpa se estou a abusar da tua colaboração.
        Um Abraço
        Rui

      • Rui

        Para posicionar o formulário onde você quer, use como referência o exemplo:

        https://accessporexemplo.wordpress.com/2011/09/21/calendario-posicionado/

        Quanto à questão de usar uma função geral para disparar o evento , não sei se é possível.

        Se for, deve ser alguma coisa meio complicada, provavelmente usando API e certamente vai custar muito mais tempo para ser desenvolvida e testada do que você colocar os procedimentos em cada campo.

        Abraço

        Paulo

      • Rui Sérgio disse:

        Obrigado por toda a ajuda Paulo.
        Vou tentar construir o meu filtro personalizado, quando estiver pronto mando para você.
        Um Abraço
        Rui

      • Rui

        Dei uma procurada na internet sobre menu de contexto e encontrei o seguinte:

        http://support.microsoft.com/kb/210093/pt

        http://support.microsoft.com/kb/210093/en-us?fr=1

        O 1º site é a tradução do 2º

        Se você juntar as informações acima com o exemplo que eu criei:

        http://www.drivehq.com/file/df.aspx/publish/robilotta/PublicFolder/MouseDireito.zip

        é capaz de dar jogo !

        Pesquisando mais um pouco, encontrei :

        – Right-Click Microsoft Access Menus (no link abaixo)

        http://www.vb123.com/toolshed/05_map/ch07_rightclickmenu.htm

        Esse é o jeito de criar um menu de contexto sem reinventar a roda !

        Abraço

        Paulo

      • Rui Sergio disse:

        Bom dia Paulo
        Obrigado pelas dicas, estou a construir via vba, já está quase pronto, mandame seu mail e eu mando para você dar uma olhada.
        Um abraço
        Rui

  10. Rui

    Dei uma olhada no seu banco de dados e tive dificuldade entender o que você fez.

    Na abertura do formulário é feita a conexão com a tabela.

    No módulo, você criou um menu de atalho com a função CriarMenuADO, mas não consegui achar onde é feita a chamada dessa função.

    Há muitos anos atrás tentei criar menus de atalho via VBA. Achei meio chato e complicado e por isso larguei mão. Eu raramente uso as barras de ferramentas e os menus de atalho do Access. Quando resolvo usar, prefiro criar os menus via Ferramentas -> Personalizar e depois vincular o menu ao campo via Propriedades-> Barra de menu de atalho.

    Como nunca precisei criar nada usando o ADO, meu conhecimento sobre ele é : sei que existe e para que serve. E só !

    Por tudo isso, acho que cheguei no limite da ajuda que posso dar a você.

    No entanto, por tudo que você escreveu, me parece que você está tentando fazer muita coisa ao mesmo tempo. Na minha opinião, você deveria focar a sua atenção no seu problema principal que, pelo que percebi, é criar os filtros que você precisa. Depois que você tiver sucesso nisso, passe para a etapa de criar os menus de atalho.

    Cada um é cada um, mas fica a sugestão.

    Abraço

    Paulo

    • Rui Sérgio disse:

      Olá Paulo
      A função CriarMenuADO é chamada ao clicar com o rato no campo que se pretende filtrar, ao clicar com o botão do lado direito abre o menu de atalho com filtro ADO.
      Se reparar o formulário tem duas colunas, a primeira funciona com o filtro predefinido do access e a segunda com o filtro ADO.
      Se experimentar o filtro “contém” na primeira coluna não funciona, na segunda já funciona.
      Utilizo ADO porque a base de dados é em SQL Server e está num servidor na WEB, tornando-se o acesso bastante rápido (as vezes até parace local).
      Gosto de utilizar os filtros predefinidos do access 2007 porque são bastantes completos, e tenho necessidade de filtrar qualquer campo e com condições diferentes (Termina com, Começa com, contém, igual a, etc…) para pesquisas de dados.
      Valeu toda a ajuda Paulo, se precisar alguma coisa em que eu possa ajudar diga.
      Um Abraço
      Rui

  11. Geraldo Magela Machado Costa disse:

    Olá pessoal, meu nome é Geraldo Magela,

    Gostaria de saber se é possível imprimir o resultado do filtro sequencial em um relatório específico.

    Grato.

    • No seu formulário que tem os filtros, coloque um botão para abrir o seu relatório.

      No evento AoAbrir do relatório, coloque a seguinte instrução:

      Me.Filter = varFiAc

      e pronto !

      Obs: Só para garantir, certifique-se que a origem dos registros do seu relatório é a mesma da origem dos registros do seu formulário !

      Abraço

      Paulo

      • Geraldo Magela Machado Costa disse:

        Paulo, bom dia,

        Primeiramente, agradeço sua atenção.
        Fiz o procedimento que você orientou. Porém o relatório abre mas sem o filtro, ou seja, lista todos os registros da tabela.
        Será que falta algo mais??

        Grato,

        Geraldo Magela

      • Geraldo

        Faltou passar uma informação:
        Na janela propriedades do relatório na aba Dados, troque a opção Filtro ativado de Não para Sim.

        Alternativamente você pode deixar a opção Filtro ativado como Não e colocar no procedimento Ao Abrir do relatório a instrução:

        Me.FilterOn = True
        Me.Filter = varFiAc

        Manda um retorno dizendo se funcionou para que quem leia os comentários saiba se funcionou ou não !

        Abraço

        Paulo

  12. Geraldo Magela Machado Costa disse:

    Paulo

    Bom dia.
    Eu já havia colocado a opção Filtrar ao Carregar como Sim, mas não deu certo.
    Então segui a sua segunda alternativa colocando os comamdos no procedimento Ao Abrir do relatório e deu certinho, está funcionando, OK.
    Muito obrigado pelas orientações.

    Segue mais uma questão:

    Coloquei este mesmo relatório abrindo com Pop-Up = Sim, tem como dentro da janela Pop-Up do relatório eu colocar um botão para imprimir o mesmo??

    Desde já agradeço a atenção dispençada.

    Geraldo Magela

    • Geraldo

      Que eu me lembre não tem jeito de colocar esse botão que você quer na janela do relatório.

      O que você pode fazer é criar um formulário pequenininho com 2 botões : Imprimir e Cancelar.
      Defina a propriedade dele como PopUp.
      No procedimento de evento para Imprimir, escreva as instruções para imprimir o relatório (e se você quiser que depois de dado esse comando, a janela volte para o seu formulário com os filtros, escreva as instruções para fechar o relatório e o formulário com os botões)
      No procedimento de evento para Cancelar, escreva as instruções para fechar o relatório e esse formulário.

      No botão do formulário com os filtros que diz para imprimir, acrescente ao procedimento existente as instruções para abertura do formulário que você criou ( na linha seguinte à instrução para visualização do relatório).

      O que vai acontecer é que a visualização do relatório será aberta e por cima dela o seu formulário com o comando de impressão.

      Salve esse formulário numa posição que não atrapalhe a visualização do relatório e assim você soluciona o seu problema !

      Abraço

      Paulo

      • Geraldo Magela Machado Costa disse:

        Ola Paulo,

        Aqui estou eu novamente pedindo mais uma ajuda, se for possível.

        Preciso criar um banco de dados para controle de pagamento de faturas diversas e que faça dedução automática do valor pago, no saldo em caixa.
        Ao lançar os dados da fatura em um formulário, o valor da mesma seja deduzido na tabela de saldo.
        Não sei se fui bem claro. Mas será que tem jeito?

        Abraço,

        Geraldo Magela

  13. Geraldo

    Estou a disposição para responder questões relacionadas aos exemplos do blog.
    Para questões fora deste âmbito, sugiro que você consulte os vários foruns existentes na internet.
    O forum MaximoAccess é bom e o pessoal que responde às questões é competente e solícito.

    Em todo caso, acho que os exemplos dos links abaixo podem ajudar:

    http://www.rogersaccesslibrary.com/forum/topic346.html
    http://www.rogersaccesslibrary.com/forum/topic279.html

    Abraço

    Paulo

  14. Quico disse:

    Olá,

    Primeiro dar a vocês parabéns pelo esforço em ajudar outras pessoas, não é nada fácil em se tratando de access.

    Baixei o exemplo desta função. Seu exemplo funcionou perfeitamente em meu access (2007)

    Tento agora fazer seu uso, copiei módulo, fiz a cx combo, fiz a consulta ….

    Quando, tento abrir o meu formulário de filtro, vem a seguinte menságem de erro:

    Erro em tempo de execução ‘3129’
    Instrução SQL inválida. ‘DELETE’,’INSERT’,”PROCEDURE’,’SELECT’ ou ‘UPDATE’ esperado

    A linha de código é esta e ocorre no evento Ao abrir do formulário.

    Set qdfNewClic = dbs.CreateQueryDef(“FiltrosRowSource”, varFiltroRS_SQL)

    Não entendo naaaaada de access, mas como seu exemplo funcionou perfeitamente, imagino que não seja as configurações do meu access.
    Provavelmente eu mesmo que errei em algum lugar. (rss)

    Poderia me ajudar?

    Obrigado mesmo pela boa vontade.

    • Quico

      Na função existem duas consultas criadas e excluídas em tempo de execução (ou seja, são criadas e excluídas durante o processamento do código).

      1) “FiltrosRowSource” : usada para definição da origem do registro dos filtros

      2) “ConsultaTemp” : usada para capturar as características do campo que está sendo filtrado

      Quando ocorre algum erro na construção do formulário que faça com que o código da função seja interrompido, pode ocorrer dessas consultas terem sido criadas mas não excluídas no final.

      Embora o erro que você esteja relatando não seja típico para esta situação, verifique se na lista de consultas do seu banco de dados aparecem essas consultas. Se existirem, delete antes de abrir o seu formulário.

      O que me parece mais provável é que a Origem do registro do seu formulário esteja definido com o NOME DA TABELA e não com uma instrução SQL tipo : SELECT … blá, blá, blá .

      Se isso for verdade, substitua o nome da tabela pela correspondente instrução SQL.

      Como você diz que não entende naaaaaaaaaaaada de Access , vamos lá:

      Na janela Propriedades do formulário, procure pela linha Origem do registro.
      Clique nessa linha.
      No canto direito da linha vai aparecer uma caixinha com 3 pontinhos.
      Clique nela.
      Vai aparecer a janela do construtor de consultas.
      Adicione a tabela que estava na origem do registro no construtor de consulta.
      Adicione campo por campo nas colunas do construtor (NÃO use o *).
      Feche e salve.

      Agora, na Origem do registro deve aparecer : SELECT … blá, blá, blá .

      Salve o formulário e veja se agora funciona .

      Se funcionar, por favor, manda um retorno pois essa pode ser uma falha grave nas instruções de uso da função.

      Foi sem querer, querendo …. (rss)

      Se não funcionar, dá retorno também prá gente tentar resolver

      Abraço

      “Seu Madruga”

      • Como é comum, quando o navegante não tem a “boa vontade” de dar um retorno, é porque o problema dele foi resolvido.

        Para constar, o problema relatado acima é devido ao uso do nome da tabela ao invés da instrução SQL na origem do registro.

        Paulo

  15. Fabio disse:

    Paulo, Boa Noite, muito bom seu exemplo de filtros, era exatamente o que estava procurando. Mas no meu aqui não deu certo e aconteceu o mesmo erro

    Erro em tempo de execução ‘3129’
    Instrução SQL inválida. ‘DELETE’,’INSERT’,”PROCEDURE’,’SELECT’ ou ‘UPDATE’ esperado

    A linha de código é esta e ocorre no evento Ao abrir do formulário.

    Set qdfNewClic = dbs.CreateQueryDef(“FiltrosRowSource”, varFiltroRS_SQL)

    fiz exatamente como explicado na questão de usar a SQL na origem da linha, a origem ficou com o Select… se puder me ajudar..agradeço Meu access é o 2007 e também fiz as referencias no editor do VBA..

  16. Fabio disse:

    consegui. foi erro meu aqui, é na origem do formulário que tem que ter o Select… eu estava olhando a origem da caixa de combinação.

  17. RMelo disse:

    Amigo,
    Parabéns pela iniciativa! Seu formulário é um espetáculo. Muito útil mesmo. E feito com muito capricho.

    Gostaria de deixar uma sugestão para quem faz “upgrade” de versão. Criar um novo banco (.accdb) e importar todos os objetos. Nem precisei mexer nas Referências; compilei e funcionou perfeitamente (Access 2007 – 64 bits).

    Grande abraço

    RMelo

  18. Cesar Brizio disse:

    Parabéns pelo trabalho. Me ajudou imensamente

  19. Cesar Brizio disse:

    Amigos, e se eu quiser filtrar por data, só que por agrupamento de datas (Ex: Este mês, este ano, último trimestre, etc) como eu faria? Abraços

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: