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


3 participantes

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    avatar
    Convidado
    Convidado


    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Critério em consulta com Variavel Global (Public)

    Mensagem  Convidado 17/7/2013, 01:29

    Boa Noite !

    Qual a Sintaxe de uma variável global como critério em uma consulta do tipo String ?
    Ex.

    Select * from TblClientes where Nome = '"& VariavelGLobal &"' ?
    Select * from TblClientes where Nome = "& VariavelGLobal &" ?
    Select * from TblClientes where Nome = & VariavelGLobal & ?
    Select * from TblClientes where Nome = VariavelGLobal ?

    Tentei de todas as formas acima.

    No click de um botão de um form passo o valor de uma listbox.column(1) para a variável global e pretendo abrir um relatório com essa consulta que estou criando.

    Saudações !
    Julio Lustosa
    Julio Lustosa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 203
    Registrado : 23/02/2011

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Re: [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    Mensagem  Julio Lustosa 17/7/2013, 02:21

    Rafael, boa noite!

    Se entendi bem o que deseja, creio que seja essa:

    Select * from TblClientes where Nome='" & VariavelGLobal & "'"

    Abraços.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Re: [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    Mensagem  JPaulo 17/7/2013, 13:28

    Normalmente envia-se as Variáveis Globais para uma função, mais ou menos isto:

    Function UtilizaVariavelGLobal() As String
       UtilizaVariavelGLobal = VariavelGLobal
    End Function

    Depois utiliza-se no select desta forma:

    SELECT * FROM TblClientes WHERE Nome = UtilizaVariavelGLobal();


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidado
    Convidado


    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Re: [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    Mensagem  Convidado 17/7/2013, 16:53

    Boa Tarde !

    Não sei se estou fazendo certo, até porque nunca usei Relatório antes.

    Em um formulário tenho um listbox que usuário navega nela e quando ele decidi imprimir o que vou chamar de "Detalhe" (Relatório), ele clicar em um botão para abrir o relatório.

    Só que o relatorio que vai abrir tera varios SubRelatorios cada um proveniente de uma consulta diferente mas todas as consultas deste relatorio tem como paramentro os itens da linha da listBox selecionada no formulario.

    Ex.
    Com a listbox selecionado ao clicar no botao para abrir o relatorio primeiro armazeno as variaveis que preciso usar como critério nas consulta


    Private Sub Btn_GerarRelatorio_Click()
       Call UtilizaVariavelGLobal
    End Sub

    Function UtilizaVariavelGLobal() As String
      Ativo_Selecionado = LisBx_Equip.Column(2)
       Modelo = LisBx_Equip.Column(15)
       Numero_OS = LisBx_Equip.Column(4)
       Tipo_Serv = LisBx_Equip.Column(3)
       Sigla = LisBx_Equip.Column(16)
       Dt_Inicio = LisBx_Equip.Column(6)
    End Function


    Essas variáveis globais serão usadas como critério nas consulta que irei abrir a partir de um click do botão em um formulário.

    Nunca trabalhei com relatório não sei como é feito os filtro mas se alguém tiver uma ideia pra me passar ficarei muito grato !

    Obrigado !
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Re: [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    Mensagem  JPaulo 17/7/2013, 17:53

    Rafael, meu amigo;

    O uso das variaveis globais, são sempre dentro de um modulo à parte, da seguinte forma:
    Atenção: Altere as variaveis de acordo com o formato correto de cada uma, se é String, se é Data, se é numerico.

    Option Compare Database

    Global Ativo_Selecionado As String
    Global Modelo As String
    Global Numero_OS As String
    Global Tipo_Serv As String
    Global Sigla As String
    Global Dt_Inicio As String

    Public Function CarregaVariaveisGLobais()
    'carrega as variaveis
      Ativo_Selecionado = Forms!SeuFormulario.LisBx_Equip.Column(2)
      Modelo = Forms!SeuFormulario.LisBx_Equip.Column(15)
      Numero_OS = Forms!SeuFormulario.LisBx_Equip.Column(4)
      Tipo_Serv = Forms!SeuFormulario.LisBx_Equip.Column(3)
      Sigla = Forms!SeuFormulario.LisBx_Equip.Column(16)
      Dt_Inicio = Forms!SeuFormulario.LisBx_Equip.Column(6)
    End Function


    Public Function UtilizaVariavelGlobal(ParametroGlobal)
    'utiliza as variaveis no criterio dos campos na consulta
    'Exemplo: UtilizaVariavelGlobal('Modelo')
    Select Case ParametroGlobal
       Case "Ativo_Selecionado"
                  UtilizaVariavelGlobal = Ativo_Selecionado
       Case "Modelo"
                  UtilizaVariavelGlobal = Modelo
       Case "Numero_OS"
                  UtilizaVariavelGlobal = Numero_OS
       Case "Tipo_Serv"
                  UtilizaVariavelGlobal = Tipo_Serv
       Case "Sigla"
                  UtilizaVariavelGlobal = Sigla
       Case "Dt_Inicio"
           UtilizaVariavelGlobal = Ativo_Selecionado
    End Select
    End Function


    No pressionar do seu botão no formulario, carrega as variaveis:

    Private Sub Btn_GerarRelatorio_Click()
    'chama a função de carregar as variaveis
      Call CarregaVariaveisGLobais
    End Sub


    No criterio do campo na sua consulta, você define qual variavel utiliza:

    UtilizaVariavelGlobal('Modelo')


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidado
    Convidado


    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Re: [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    Mensagem  Convidado 17/7/2013, 20:06

    Excelente !

    Muito Obrigado JPaulo.


    Resolvido !
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Re: [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    Mensagem  JPaulo 18/7/2013, 09:50

    Obrigado pelo retorno o forum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Folder_announce_new Instruções SQL como utilizar...
    avatar
    coelho84
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 08/03/2013

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Lentidão da consulta ao resgatar o parâmetro da variavel atravês de função!

    Mensagem  coelho84 31/10/2018, 22:21

    Desculpe reviver o tópico kkk

    Vamos lá, eu utilizo algo muito semelhante e funciona.

    Porém notei que uma consulta simples estava demorando muito para carregar o formulário que utiliza a consulta, então nos testes notei o seguinte...

    Quando já informo um parâmetro ele carrega o formulário instantaneamente, já quando o parâmetro vem da variável Global pela função ele está demorando um tempo considerável, o que pode ser?

    Fiz outro teste e ao invés de de informar o parâmetro, inclui o critério para abrir a caixa de dialogo solicitando o critério e ao informar e clicar em OK o resultado também é instantâneo!

    Estou com o Access 2013, puxando os dados de um banco de dados Oracle por ODBC, cheguei até a pensar que era esse o motivo da demora, mas nestes testes sem usar a função com a variável o resultado é instantâneo!

    Se alguém puder dar uma luz ou encontrar outra forma de resgatar este parâmetro sem que seja através de um form, pois com form aberto também testei e é instantâneo.

    Obrigado.
    avatar
    coelho84
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 08/03/2013

    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Re: [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    Mensagem  coelho84 31/10/2018, 23:26

    Opa, fiquei intrigado com isso e fui fazendo diversos testes kkkk
    E consegui resolver...

    No meu caso essa demora foi ocasionada, somente porque não havia mencionado o formato do tipo de dados na função...

    Era assim:

    Código:
    Global VPop As Integer

    Public Function FNCop()

    FNCop = VPop

    End Function

    Desta forma acima, chegou a demorar 7 segundos. Shocked

    Foi só fazer isso...

    Código:
    Global VPop As Integer

    Public Function FNCop() As Integer

    FNCop = VPop

    End Function

    Já desta forma é instantâneo... Laughing

    Agora, se alguém puder me explicar o porque isso acontece?

    Serei grato!

    Em todo caso, obrigado pela atenção!

    Conteúdo patrocinado


    [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public) Empty Re: [Resolvido]Critério em consulta com Variavel Global em Relatórios (Public)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 23:49