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


    Abrir consulta com filtro via Form/VBA

    diegojacob
    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 06/07/2011

    Abrir consulta com filtro via Form/VBA Empty Abrir consulta com filtro via Form/VBA

    Mensagem  diegojacob em 31/10/2012, 11:10

    Eu possuo um formulário que faz filtros para gerar relatórios, só que gostaria de usar o mesmo para abrir consultas também, mas não estou conseguindo achar a sintaxe correta, o código é:

    Private Sub GerarRelatorio_Click()
    Dim stDocName As String

    Filtro1 = "nz([Disciplina]) like '" & Me.FiltroDisciplina & "*'"
    Filtro2 = "[Project] like '" & Me.FiltroProject & "*'"


    FiltroFinal = Filtro1 & E & Filtro2
    stDocName = FiltroTipoRelatorio.Column(3)
    '(Tenho uma tabela onde cadastro os nomes de meus relatórios e consultas)

    DoCmd.OpenReport stDocName, acPreview, , FiltroFinal, acWindowNormalm
    '(Este funciona perfeitamente, mas abre apenas relatórios)'

    Estou tentando usar os mesmos filtros, mas no final, pedir para abrir uma consulta ao invés do relatório.

    Tentei
    DoCmd.OpenQuery stDocName, acViewNormal, , FiltroFinal, acWindowNormalm
    mas não funcionou, gostaria de contar com a ajuda do Forum.
    Obrigado.
    Diego
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Abrir consulta com filtro via Form/VBA Empty Re: Abrir consulta com filtro via Form/VBA

    Mensagem  Alexandre Neves em 31/10/2012, 17:09

    Boa tarde, diego
    A sintaxe do openquery é diferente e não aceita o filtro. Coloque Docmd.openquery e prima F1


    .................................................................................
    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
    diegojacob
    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 06/07/2011

    Abrir consulta com filtro via Form/VBA Empty Re: Abrir consulta com filtro via Form/VBA

    Mensagem  diegojacob em 31/10/2012, 18:35

    Boa tarde alexandre,
    infelizmente não posso fazer isso, pois no meu formulário de filtro eu também possuo uma lista de opções que tamém faz parte do filtro, e nela eu posso selecionar mais de um tipo/filtro em um mesmo campo.

    Mas a minha dúvida era com relação a abrir a consulta mesmo.

    Mas acho que posso substituir o abrir uma consulta por um formulário, dessa forma, eu posso usar os valores para visualização, cópia e etc., certo?

    Obrigado pela ajuda.

    Att.
    Diego


    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

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

    Abrir consulta com filtro via Form/VBA Empty Re: Abrir consulta com filtro via Form/VBA

    Mensagem  Avelino Sampaio em 31/10/2012, 19:59

    Olá, Diego!

    Aproveitei para me exercitar, usando o querydef para alterar a clausula WHERE da consulta e assim receber a filtragem que desejar.

    tente adaptar a sua necessidade

    Código:
    Dim qry As DAO.QueryDef
    Dim filtro As String
    Dim k As Integer
    Set qry = CurrentDb.QueryDefs("qryTeste")
    filtro = "Operadora =""vivo"""
    qry.SQL = Replace(qry.SQL, ";", "")
    k = IIf(InStr(qry.SQL, "WHERE") = 0, Len(qry.SQL), InStr(qry.SQL, "WHERE") - 1)
    qry.SQL = Mid(qry.SQL, 1, k) & "WHERE " & filtro & ";"
    DoCmd.OpenQuery "qryTeste"

    Sucesso!
    avatar
    machaves
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 28/01/2015

    Abrir consulta com filtro via Form/VBA Empty Abir consulta com filtros via VBA

    Mensagem  machaves em 26/10/2016, 21:32

    Avelino, boa tarde.

    Sua instrução é fantástica. Tentei adptar seu exemplo para abrir uma consulta com dois filtros, mas não consegui. Seria possível executar com dois filtros?

    Att.

    Mauro

    Conteúdo patrocinado

    Abrir consulta com filtro via Form/VBA Empty Re: Abrir consulta com filtro via Form/VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 18/6/2019, 14:46