MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

2 participantes

    [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta

    avatar
    luclaurindo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 11/12/2020

    [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta Empty [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta

    Mensagem  luclaurindo 30/12/2020, 01:34

    Fala pessoal blz?

    Espero que possam me ajudar.
    Eu tenho um banco de dados, que em todo o sistema eu utilizo uma variável publica (strFilter) que armazena a query de uma consulta SQL. De acordo com o formulário que o usuário esteja utilizando e o filtro que ele estiver aplicando na sua navegação, a query SQL vai modificando e concatenando, caso ele aplique mais de 1 filtro de uma vez.

    Porem, preciso exportar um formulário contínuo para o Excell contendo formatação, desta forma optei por exportar a partir de uma Consulta do Access.

    Eu consigo passar apenas uma variáveis GLOBAL através de Função para a consulta elaborando uma consulta com UM critério.

    Mas preciso que a Consulta do ACCESS receba essa query já pronta, já que a query strFilter pode ter vários critérios

    Como posso usar essa query SQL como critério na CONSULTA?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta Empty Re: [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta

    Mensagem  Alexandre Neves 30/12/2020, 12:31

    Boa tarde, Boas Festas e bem-vindo ao fórum
    Forneça elementos para trabalhar e concretize a situação


    .................................................................................
    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
    avatar
    luclaurindo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 11/12/2020

    [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta Empty Segue os dados

    Mensagem  luclaurindo 30/12/2020, 13:55

    No Módulo:

    Option Compare Database
    'Variavel para armazenar a String do Filtro
    Global strFilter As String

    Public Function GlobalString() As String
    'função recebe valor da variável pública idUsuario
    GlobalString = strFilter
    End Function

    No Formulário:

    ' If para verificar se o SubFiltro RESPONSÁVEL está preenchido
    If IsNull(Filtroresp) Or Filtroresp = "" Then
    ' If para verificar se o campo está como TODOS e converte em EmPTy
    If PuResp = "TODOS" Then
    PuResp = ""
    VoltarFiltro.SetFocus
    Filtroresp.Visible = False
    Else
    PuResp = ""
    Filtroresp.Visible = False
    End If
    Else
    PuResp = Filtroresp
    VoltarFiltro.SetFocus
    Filtroresp.Visible = True
    'Verifica se ja existe critério para a query
    If strFilter <> "" Then
    strFilter = strFilter & " and [CenTrabRespons] LIKE '*" & [PuResp] & "*'"
    strFilter = strFilter & " and [Aprovado] LIKE '*" & [PuAprov] & "*'"
    strFilter = strFilter & " and [PT] NOT LIKE '*" & [PuSemPT] & "*'"
    Else
    strFilter = "[CenTrabRespons] LIKE '*" & [PuResp] & "*'"
    strFilter = strFilter & " and [Aprovado] LIKE '*" & [PuAprov] & "*'"
    strFilter = strFilter & " and [PT] NOT LIKE '*" & [PuSemPT] & "*'"
    End If
    End If

    'Se query estiver vazia, exibir todas as ordens
    If strFilter = "" Then
    strFilter = "[Ordem] LIKE '*" & [PuOrdem] & "*'"
    strFilter = strFilter & " and [Aprovado] LIKE '*" & [PuAprov] & "*'"
    strFilter = strFilter & " and [PT] NOT LIKE '*" & [PuSemPT] & "*'"
    End If

    'Filtro(SubFiltro) utilizado no campo em cima da Lista da Programação
    Me.Filter = strFilter
    'Ordena a Lista da Programação
    Me.OrderBy = "CenTrabRespons ASC" & "," & "Ordem ASC" & "," & "Oper ASC" & "," & "SubOper DESC"
    Me.OrderByOn = True
    Me.FilterOn = True
    Me.Requery

    No Botão:

    Private Sub Comando134_Click()
    Call ExportaExcell
    End Sub

    Na Consulta

    SELECT *
    FROM PROGRAMAÇÃO
    WHERE GlobalString();
    avatar
    luclaurindo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 11/12/2020

    [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta Empty Re: [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta

    Mensagem  luclaurindo 30/12/2020, 15:43

    Segue em anexo o banco de dados.

    A Consulta que tem que buscar a query sql é a consulta: programação consulta

    Obrigado pela atenção.
    Boas Festas a todos e obrigado pelo aceite ao grupo.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta Empty Re: [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta

    Mensagem  Alexandre Neves 30/12/2020, 17:00

    O anexo não veio


    .................................................................................
    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
    avatar
    luclaurindo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 11/12/2020

    [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta Empty Re: [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta

    Mensagem  luclaurindo 4/1/2021, 15:13

    Bom dia, feliz ano novo a todos.

    Eu estava com dificuldade em passar uma variável contendo uma string SQL(strFilter) para uma consulta do access.

    Porem, eu achei a seguinte solução. Utilizei essa função: CurrentDb.QueryDefs("numero da consulta").SQL

    A Consulta chamada "PROGRAMAÇÃO Consulta", tem a seguinte query:
    SELECT PROGRAMAÇÃO.Ordem, PROGRAMAÇÃO.Aprovado, PROGRAMAÇÃO.PT, *
    FROM PROGRAMAÇÃO
    WHERE (((PROGRAMAÇÃO.Ordem)>"0") AND ((PROGRAMAÇÃO.Aprovado)="Sim") AND ((PROGRAMAÇÃO.PT)<>"Sem PT"));

    então, ela é modificada para: SELECT * FROM PROGRAMAÇÃO WHERE " & strFilter
    utilizando o seguinte comando dentro do formulário mesmo:

    'Altera a Query dentro da Consulta, diretamente do formulário
    CurrentDb.QueryDefs(15).SQL = "SELECT * FROM PROGRAMAÇÃO WHERE " & strFilter

    Desta forma, coloco esse tópico como resolvido.

    Att
    avatar
    luclaurindo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 11/12/2020

    [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta Empty Re: [Resolvido]Passar uma variável contendo string SQL (Where) para um consulta

    Mensagem  luclaurindo 4/1/2021, 15:14

    Resolvido!

      Data/hora atual: 18/9/2021, 18:15