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

    [Resolvido]Ajuda com consulta e atualização de sub formulário (SQL/VBA)

    Compartilhe

    Zeno
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 27/04/2016

    [Resolvido]Ajuda com consulta e atualização de sub formulário (SQL/VBA)

    Mensagem  Zeno em Sex 15 Jul 2016, 15:23

    Olá a todos do fórum.

    Estou aprendendo a utilizar consultas com o auxilio de VBA, eu consegui montar uma consulta entre datas com sucesso, porém, agora me deparo com um problema.
    O filtro da minha consulta foi escrito tanto na consulta(tbl_cons), como em duas funçôes(PesquisaEN e PesquisaSA), que são executadas ao apertar o botão, para tornar um programa mais bonito para mim decidir criar um subformulário capaz de me mostrar os valores filtrados da consulta(sub_cons) só que ele não está atualizando corretamente, usando a função " DoCmd.OpenQuery "tbl_cons" " eu vejo que os valores filtrados na consulta estão corretos, porém os valores no subformulário ficam errados.

    Eu procurei na internet alguma ajuda ou dica, porém sem sucesso.

    Como posso atualizar o meu subformulário corretamente?

    PS.:Eu criei duas funções pois uma vai procurar as datas na coluna entrada e a outra na coluna saída. Com o auxilio do VBA aprendi a usar a mesma consulta para consultar valores em colunas diferente.
    Estou anexando meu programa pois posso não ter sido muito claro .

    Agradeço desde já.

    Zeno

    study
    Anexos
    Datas.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (260 Kb) Baixado 3 vez(es)
    avatar
    philipp.moreira
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 250
    Registrado : 05/02/2016

    Re: [Resolvido]Ajuda com consulta e atualização de sub formulário (SQL/VBA)

    Mensagem  philipp.moreira em Sex 15 Jul 2016, 17:39

    Zeno, boa tarde!

    Minha opnião e visão são que a consulta [tbl_cons] criada por você já referencia diretamente os campos do formulário [frm_data], sendo assim, basta que em ambas as funções ([PesquisaEN] e [PesquisaSA]) você apenas reference o campo que deve ser considerado como critério [Entrada/Saida] e alterar script da consulta, como você já esta fazendo. Alias como o objetivo das duas não tem como retorno de nenhum valor ao invés de funções poderia recriar como um Módulo/Sub.

    Segue abaixo, veja se atende sua necessidade e bons estudos. Precisando estamos ai . . .

    Código:

    Option Compare Database
    Function PesquisaEN() As Variant
       
        ' VARIAVEIS
        Dim db As DAO.Database
        Dim qdf As DAO.QueryDef
        Dim strSQL As String
       
        ' INICIALIZANDO VARIAVEIS
        Set db = CurrentDb
        Set qdf = db.QueryDefs("tbl_cons")
       
        ' DEFININDO A CONSULTA
        strSQL = "SELECT Dados.* " & _
                "FROM Dados " & _
                "WHERE Dados.Entrada BETWEEN Forms!frm_data.Texto0.Value AND Forms!frm_data.Texto2.Value ;"
       
        ' ALTERANDO SCRIPT DA CONSULTA [TBL_CONS]
        qdf.SQL = strSQL
       
        ' ENCERRANDO VARIAVEIS
        Set qdf = Nothing
        Set db = Nothing
        strSQL = ""
       
    End Function

    Function PesquisaSA() As Variant

        ' VARIAVEIS
        Dim db As DAO.Database
        Dim qdf As DAO.QueryDef
        Dim strSQL As String
       
        ' INICIALIZANDO VARIAVEIS
        Set db = CurrentDb
        Set qdf = db.QueryDefs("tbl_cons")
       
        ' DEFININDO A CONSULTA
        strSQL = "SELECT Dados.* " & _
                "FROM Dados " & _
                "WHERE Dados.Saida BETWEEN Forms!frm_data.Texto0.Value AND Forms!frm_data.Texto2.Value ;"

        ' ALTERANDO SCRIPT DA CONSULTA [TBL_CONS]
        qdf.SQL = strSQL
       
        ' ENCERRANDO VARIAVEIS
        Set qdf = Nothing
        Set db = Nothing
        strSQL = ""
       
    End Function

    Private Sub Comando4_Click()

        ' VERIFICANDO QUAL CAMPO USUÁRIO ESCOLHEU COMO CRITÉRIO
        Select Case Quadro9
            'CAMPO DE ENTRADA
            Case 1
                Call PesquisaEN
           
            'CAMPO DE SAÍDA
            Case 2
                Call PesquisaSA
               
        End Select
       
        ' EXECUTANDO ATUALIZAÇÃO DO SUBFORMULÁRIO
        Me.sub_cons.Requery
       
    End Sub

    Zeno
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 27/04/2016

    Re: [Resolvido]Ajuda com consulta e atualização de sub formulário (SQL/VBA)

    Mensagem  Zeno em Seg 18 Jul 2016, 17:27

    Olá philipp.moreira.

    Respondendo a pergunta, eu não utilizei o Módulo pois não tenho pratica com ele e estou treinando trabalhar com funções no access.
    A minha dúvida ainda persiste, eu descobri que o subformulário está realizando sempre a última consulta antes de fechar no passado (se a função era para pesquisar na entrada ou na saída) porem, está informação ainda não ajudou tanto.

    Zeno
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 27/04/2016

    Re: [Resolvido]Ajuda com consulta e atualização de sub formulário (SQL/VBA)

    Mensagem  Zeno em Seg 18 Jul 2016, 18:50

    Olá Pessoal.

    Consegui resolver meu problema, não foi da forma que gostaria mas consigo olhar os registros corretos agora.

    Oque fiz foi, excluir o subformulário e a cada pesquisa abrir o formulário vinculado a minha consulta, com a aparência de uma folha de dados. Assis os registros exibidos são sempre os referentes a minha consulta atual, independente do campo onde estou pesquisando.

    Valeu pela ajuda, e se souberem de outra forma de fazer por favor me informem.

    Zeno

    study

      Data/hora atual: Ter 26 Set 2017, 15:34