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


    Fazer consulta utilizando in e pegando varios numeros do formulário

    avatar
    elerson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/11/2013

    Fazer consulta utilizando in e pegando varios numeros do formulário Empty Fazer consulta utilizando in e pegando varios numeros do formulário

    Mensagem  elerson em 17/7/2019, 15:30

    Bom dia pessoal, então estou precisando executar uma consulta que utiliza dados do formulário dentro de um in().
    Fato curioso é que quando eu coloco por exemplo in(1,2,3,4) ele funcionando, mas quando tento trazer esta informações do formulário não da certo.
    Eu quero mesmo trazer a informação da caixa de listagem, mas não consigo fazer dar certo.
    Vou mandar a select abaixo, vou deixar em negrito onde esta localizado o problema, lembrando que se eu trocar por 1,2,3 por exemplo a select funcionando, mas quando eu tento pegar do formulário, não funciona.

    SELECT consulta_d_nivel_controle.nivel0, consulta_d_nivel_controle.nivel0_1, consulta_d_nivel_controle.nivel0_05, consulta_d_nivel_controle.nivel1, consulta_d_nivel_controle.nivel1_1, consulta_d_nivel_controle.nivel2, consulta_d_nivel_controle.nivel3, consulta_d_nivel_controle.nivel4, consulta_d_nivel_controle.nivel5, public_controladoria_contas_contabeis.nmr_ano, 0 AS cdg_filial, IIf(consulta_d_nivel_controle.flb_sit="E",Sum(public_controladoria_contas_contabeis.val_debitos)*-1,Sum(public_controladoria_contas_contabeis.val_debitos)) AS debitos, IIf(consulta_d_nivel_controle.flb_sit="E",Sum(public_controladoria_contas_contabeis.val_creditos)*-1,Sum(public_controladoria_contas_contabeis.val_creditos)) AS creditos, IIf(consulta_d_nivel_controle.flb_sit="E",Sum(public_controladoria_contas_contabeis.val_creditos-public_controladoria_contas_contabeis.val_debitos)*-1,Sum(public_controladoria_contas_contabeis.val_creditos-public_controladoria_contas_contabeis.val_debitos)) AS saldo, consulta_d_nivel_controle.indice_n1, consulta_d_nivel_controle.indice_n1_1, consulta_d_nivel_controle.indice_n2, consulta_d_nivel_controle.indice_n3, consulta_d_nivel_controle.indice_n4, consulta_d_nivel_controle.indice_n5, consulta_d_nivel_controle.indice_n0_1, consulta_d_nivel_controle.indice_n0_05, consulta_d_nivel_controle.indice_n0, Sum(consulta_controladoria_1_venda_bruta.BRUTA) AS BRUTA
    FROM consulta_d_nivel_controle, public_controladoria_contas_contabeis, consulta_controladoria_1_venda_bruta
    WHERE
    (((public_controladoria_contas_contabeis.nmr_ano)>=Year(Formulários!filtro_controladoria!DE) And (public_controladoria_contas_contabeis.nmr_ano)<=Year(Formulários!filtro_controladoria!ATE)) And ((public_controladoria_contas_contabeis.nmr_mes)>=Month(Formulários!filtro_controladoria!DE) And (public_controladoria_contas_contabeis.nmr_mes)<=Month(Formulários!filtro_controladoria!ATE))

    And ((public_controladoria_contas_contabeis.cdg_filial) In (Formulários!filtro_controladoria!filiais))


    And ((public_controladoria_contas_contabeis.cdg_reduzido)=consulta_d_nivel_controle.conta))
    GROUP BY consulta_d_nivel_controle.nivel0, consulta_d_nivel_controle.nivel0_1, consulta_d_nivel_controle.nivel0_05, consulta_d_nivel_controle.nivel1, consulta_d_nivel_controle.nivel1_1, consulta_d_nivel_controle.nivel2, consulta_d_nivel_controle.nivel3, consulta_d_nivel_controle.nivel4, consulta_d_nivel_controle.nivel5, public_controladoria_contas_contabeis.nmr_ano, consulta_d_nivel_controle.indice_n1, consulta_d_nivel_controle.indice_n1_1, consulta_d_nivel_controle.indice_n2, consulta_d_nivel_controle.indice_n3, consulta_d_nivel_controle.indice_n4, consulta_d_nivel_controle.indice_n5, consulta_d_nivel_controle.indice_n0_1, consulta_d_nivel_controle.indice_n0_05, consulta_d_nivel_controle.indice_n0, consulta_controladoria_1_venda_bruta.BRUTA, consulta_d_nivel_controle.flb_sit;

    - Aguardo um retorno dos especialista ai, obrigado.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 819
    Registrado : 13/12/2016

    Fazer consulta utilizando in e pegando varios numeros do formulário Empty Re: Fazer consulta utilizando in e pegando varios numeros do formulário

    Mensagem  Alexandre Fim em 17/7/2019, 15:34

    Olá,

    Este "SELECT" está em uma consulta, correto?
    Qual o nome da consulta?


    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 819
    Registrado : 13/12/2016

    Fazer consulta utilizando in e pegando varios numeros do formulário Empty Re: Fazer consulta utilizando in e pegando varios numeros do formulário

    Mensagem  Alexandre Fim em 17/7/2019, 15:56

    Olá Elerson,

    Você pode executar a sua consulta através de um procedimento dentro do seu formulário.
    Segue código.

    Código:


    Private Sub ExecutaQuery()
    On Error GoTo trata_erro
    Dim sSQL                As String
    Dim vFiliais            As String
    Dim x                   As Integer
    Dim DB                  As DAO.Database
    Dim lstDados            As ListBox

        
        Set lstDados = SuaListbox 'substitua oelo nome da caixa de listagem das filiais
        
        With lstDados
            For x = 1 To .ListCount
                If x = 1 Then
                    vFiliais = .Column(0, x) & ","
                Else
                    vFiliais = vFiliais & "," & .Column(0, x)
                End If
            Next x
            
            vFiliais = Mid(vFiliais, 0, Len(vFiliais) - 1)
            
        End With

        Set DB = CurrentDB

        sSQL = "SELECT * FROM <SuaConsulta> " 'substitua <SuaConsulta> pelo nome da consulta desejada
        sSQL = sSQL & " WHERE public_controladoria_contas_contabeis.nmr_ano >= Year(Me.DE) "
        sSQL = sSQL & " AND   public_controladoria_contas_contabeis.nmr_ano <= Year(Me.ATE) "
        sSQL = sSQL & " AND   public_controladoria_contas_contabeis.nmr_mes >= Month(Me.DE) "
        sSQL = sSQL & " AND   public_controladoria_contas_contabeis.nmr_mes <= Month(Me.ATE) "
        sSQL = sSQL & " AND   public_controladoria_contas_contabeis.cdg_filial In (" & vFiliais & ")"
        DB.Execute sSQL
        
        Exit Sub

    trata_erro:

        MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
        Exit Sub


    OBS: Remova os critérios da consulta, pois os valores são informados através dos campos do seu formulário.


    Espero ter ajudado.


    Boa sorte!!!


    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)
    avatar
    elerson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/11/2013

    Fazer consulta utilizando in e pegando varios numeros do formulário Empty Alexandre

    Mensagem  elerson em 17/7/2019, 19:11

    Olá,

    Este "SELECT" está em uma consulta, correto?
    Qual o nome da consulta?


    O NOME DA CONSULTA É "consulta_controladoria_2_multiplas_filiais"
    avatar
    elerson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/11/2013

    Fazer consulta utilizando in e pegando varios numeros do formulário Empty Procedimento no formulário

    Mensagem  elerson em 17/7/2019, 19:14

    Você pode executar a sua consulta através de um procedimento dentro do seu formulário.


    Alexandre eu executo um relatório com esta consulta. Eu nunca trabalhei da maneira que vc esta me orientando vou conseguir montar um relatório da mesma maneira?

    avatar
    elerson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/11/2013

    Fazer consulta utilizando in e pegando varios numeros do formulário Empty Explicando melhor como funciona meu sistema

    Mensagem  elerson em 17/7/2019, 19:17

    Eu tenho um formulário de filtro, onde eu coloco os filtro do relatório, datas e filiais.

    Neste formulário eu tenho um botão que gera o relatório.

    Este relatório pega os dados da consulta, que mandei aqui e estou com problemas.

    Agora minha dúvida é, seria possível eu gerar o relatório utilizando esta solução do Alexandre???
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 819
    Registrado : 13/12/2016

    Fazer consulta utilizando in e pegando varios numeros do formulário Empty Re: Fazer consulta utilizando in e pegando varios numeros do formulário

    Mensagem  Alexandre Fim em 17/7/2019, 20:36

    Olá,

    Por gentileza, poste aqui seu bd (somente as partes envolvidas) para análise, para propor um solução.

    Grato.

    Att,

    Alexandre





    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)

    Conteúdo patrocinado

    Fazer consulta utilizando in e pegando varios numeros do formulário Empty Re: Fazer consulta utilizando in e pegando varios numeros do formulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 15/9/2019, 23:57