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]Capturar valor de parâmetro de consulta no formulário

    Compartilhe
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Sab 26 Set 2015, 18:25

    Olá colegas,

    A minha dúvida é esta mesmo do tópico. Tenho tentado este código na abertura do formulário, mas não tenho conseguido com meus testes:

    Código:

    Private Sub Form_Open(Cancel As Integer)
    On Error Resume Next

    Dim strCriteria As String
    Dim qryDef As QueryDefs

    Set qryDef = CurrentDb.OpenRecordset("SELECT * FROM cnsProcCom")

    strCriteria = "Como " * " & [Digite um termo: ] & " * ""
    MsgBox strCriteria
    DoCmd.OpenQuery qryDef, , strCriteria
    Me.txtTermo = strCriteria
    End Sub


    Última edição por good guy em Seg 05 Out 2015, 20:21, editado 2 vez(es)
    avatar
    Leandro
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 12/11/2009

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  Leandro em Qua 30 Set 2015, 14:27

    Bom dia Good Guy,
    Uma variável Global não resolveria?


    .................................................................................
    n







    ALGUMAS SOLUÇÕES E IDEIAS EM ACCESS

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Qua 30 Set 2015, 15:57

    Olá Leandro,

    Não funcionou. Estou tentando com Debug.Print.
    avatar
    Leandro
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 12/11/2009

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  Leandro em Qua 30 Set 2015, 17:13

    Será? Smile

    strCriteria = InputBox("Digite um termo:")


    .................................................................................
    n







    ALGUMAS SOLUÇÕES E IDEIAS EM ACCESS

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Qua 30 Set 2015, 17:35

    Olá a todos,
    Um pitaco, temporariamente tire "on error resume next"
    Na consulta Sql em strCriteria = "Como...
    Altere "como" por " Like"
    Abraço
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Qua 30 Set 2015, 19:12

    Olá Leandro,

    Funciona na abertura para capturar o termo, mas não faz o filtro se não tiver o critério anterior. O que acontece é que o usuário terá que digitar duas vezes o termo procurado para funcionar bem.


    Olá Teixeira,

    A mudança para Like no código, infelizmente não alterou em nada.
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Qua 30 Set 2015, 23:29

    Olá pessoal,

    Agradeço a ajuda do Leandro e decidi que vou ficar com esta dica. O código ficou assim, porém mantendo a consulta com critério de busca padrão, ou seja:
    "*" & [Digite o termo desejado:] & "*"

    Código:

    Public Sub Form_Open(Cancel As Integer)
    On Error Resume Next

    Dim strCriteria As String
    Dim qryDef As QueryDefs

    Set qryDef = CurrentDb.OpenRecordset("SELECT * FROM cnsProcCom")

    strCriteria = InputBox("Confirme o termo:", "Manual de Procedimentos Comerciais")
    Debug.Print strCriteria

    DoCmd.OpenQuery qryDef, , strCriteria
    Me.txtTermo = strCriteria

    End Sub
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Qui 01 Out 2015, 00:14

    Olá Eduardo, obrigado pelo retorno.
    Uma tentativa
    Código:
    Dim strCriteria As String
    Dim qryDef As QueryDefs

    strCriteria = InputBox("Confirme o termo:", "Manual de Procedimentos Comerciais")

    strCriteria = "WHERE (nomedoCampo) Like '*' & strCriteria  &  '*'"

    Set qryDef = CurrentDb.OpenRecordset("SELECT * FROM cnsProcCom" & strCriteria)

    Debug.Print strCriteria

    DoCmd.OpenQuery qryDef, , strCriteria
    Me.txtTermo = strCriteria
    Abraço
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Qui 01 Out 2015, 15:29

    Me parece uma boa dica Teixeira. Vou tentar, obrigado.

    Olá Teixeira,

    Infelizmente amigo não funcionou. Trabalho com dois formulários, no primeiro através de um botão aciono a abertura de um segundo formulário cuja fonte de controle é uma consulta. Veja bem tentei com duas opções: 1) Com o critério de minha consulta igual a (Como "*" & [Digite um termo: ] & "*")
    2) Sem critério.

    Em ambas as opções, aciono a abertura do segundo formulário com o seguinte código. Veja bem este é apenas um trecho do meu código do primeiro formulário. Está bem chatinho para descobrir um meio de resolver a questão. Estou trabalhando com diversos caminhos em minha mente. Vamos ver quem chega primeiro(rsrsrs):

    Código:

    Dim n As Long
    Dim nTermo As String

    DoCmd.OpenForm "Pesquisa"
    nTermo = Forms!Pesquisa!txtTermo
    Debug.Print nTermo
    n = Me.txtValor              'No campo txtValor surge o resultado do número de registros com este termo
    Me.lblResultado.Caption = "Cerca de " & n & " tópicos encontrados com o termo " & nTermo & "."


    No segundo formulário temos aquele código para o evento Form_Open. Só espero que ajude e seja útil para todos.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Qui 01 Out 2015, 16:33

    Olá, segundo compreendi o 2. formulário pretende só com os registos em que tenha o termo digitado.
    Não seria uma solução alterar a origem de dados via vba ja com a instrução sql a filtrar o termo?
    Fica mais esta dica se for o caso.
    Abraço
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Sex 02 Out 2015, 19:22

    Olá Teixeira e Leandro,


    Fiz assim:

    1) Critério da consulta

    Como "*" & [Forms]![Pesquisa]![txtTermo] & "*"


    2) Código do formulário Pesquisa no evento Form_Open:

    Código:

    Public Sub Form_Open(Cancel As Integer)
    On Error Resume Next
    Dim strCriteria As String
    Dim qryDef As QueryDefs

    Set qryDef = CurrentDb.OpenRecordset("SELECT * FROM cnsProcCom")

    strCriteria = InputBox("Digite o termo:", "Manual de Procedimentos Comerciais")
    Debug.Print strCriteria
    Me.txtTermo = strCriteria
    DoCmd.OpenQuery qryDef, , strCriteria


    End Sub

    O filtro funciona na consulta cnsProcCom mas no 2º formulário onde esta mesma consulta é a fonte do controle não exibe o resultado. Alguém me ajuda? Já vi as propriedades do formulário, coloquei Sim para aceitar filtro e nada !!!
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3844
    Registrado : 20/04/2011

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  Silvio em Sex 02 Out 2015, 19:29

    Me adentrando e aventurando e com a permissão dos senhores...

    Por que não usar no segundo formulário uma listbox com uma caixa de texto de pesquisa ?

    Não ficaria mais simples a utilização do mesmo pelo usuário e mais simples a programação ?

    Isso é apenas uma ideia !

    Abraços à todos.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Sex 02 Out 2015, 20:59

    Olá a todos,
    Eduardo o 2º formulário já está aberto? Não falta o requery
    Se poder colocar base de dados com os forms em questão, talvez seja mais facil para ajudar.
    Abraço
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Sex 02 Out 2015, 21:38

    Olá Silvio,

    Não se trata de uma simples pesquisa porque há outros parâmetros envolvidos no aplicativo. Trata-se de algo mais complexo onde esse resultado do filtro vai gerar uma estatística. Há muitas funções e sub-rotinas envolvidas.

    Teixeira, vou testar sua dica e caso não dê certo, vou ver se dá para resumir o código do formulário principal. Por ora como está com duas perguntas funciona bem para o que eu desejo, mas gostaria que ficasse apenas uma pergunta, cujo resultado atendesse bem para o que eu quero. Se eu pudesse capturar o valor do parâmetro da consulta gerado pelo seu critério e jogar na caixa de texto do 2.º formulário cujo nome é Pesquisa, beleza.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Sex 02 Out 2015, 21:52

    Olá a todos.
    Estou curioso, claro que não gostamos de ter coisas "destas" nos nossos projectos.

    A questão é ainda não consegui compreender o que está a fazer o 2º formulário, nem qual a origem dos dados.
    Na minha opinião, se a abertura do "2º formulario" for sempre dependente do mesmo, até poderá incluir na origem dos dados uma instrução sql, colocando no campo do "termo" a condição "=CampoTermo"

    Outra solução, se o "2º formulário" for aberto após a InputBox, podemos utilizar OpenArgs para passar o nº do termo.
    No pior dos cenários, podemos ter uma variável global.

    Estamos acompanhar amigo.
    Abraço
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Sex 02 Out 2015, 22:14

    Olá Teixeira,

    Segue o link:

    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Sex 02 Out 2015, 22:24

    Olá Eduardo, não atino com o 4share, não dropbox, mega ou outro mais fácil?

    Eu aconselho um destes, todos de borla:

    Copy 15Gb (*)
    Meocloud 16gb (*)

    Os mais conhecidos:
    Dropbox 2Gb (*)
    OneDrive 15Gb (**)
    Google Drive 15Gb

    Nota:
    Nos assinalados (*), coloquei link de refral para ganharmos (eu e você) espaço extra.
    Nos assinalados (**), coloquei link de refral apenas eu ganho espaço extra.

    Abraço


    Última edição por ahteixeira em Qua 11 Nov 2015, 16:57, editado 3 vez(es)
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Sex 02 Out 2015, 22:38

    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Sex 02 Out 2015, 23:05

    Olá Eduardo, já consegui baixar.
    Vou ter que desligar, no entanto fiz um alteração, teste e deixe retorno.
    PesquisaEspecial.rar
    Abraço
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Sab 03 Out 2015, 12:44

    Olá Eduardo, hoje já tive oportunidade de ver melhor o seu exemplo.
    Não sei se é o que pretende, mas utilizei o seguinte código para efectuar a pesquisa:
    Código:
    Private Sub cmdIncluir_Click()
    Dim DB As DAO.Database, RS As DAO.Recordset
    Dim strSQL As String
        
        If Len(Me.txtPesquisa & "") > 0 Then
            Set DB = CurrentDb
            
            strSQL = "SELECT ProcedimentosComerciais.Nome FROM ProcedimentosComerciais WHERE " _
                   & "ProcedimentosComerciais.Nome Like '*" & Me.txtPesquisa & "*';"
                
            Set RS = DB.OpenRecordset(strSQL)
                
                If RS.RecordCount <> 0 Then
                    RS.MoveLast
                End If
            
            Me.lblResultado = "Foi encontrado " & RS.RecordCount & " tópico(s) com o termo " & Me.txtPesquisa & "."
            
            RS.Close
            DB.Close
            Set RS = Nothing
            Set DB = Nothing
        Else
            Me.lblResultado = ""
        End If

    End Sub

    Veja se ajuda, segue o meu ficheiro de teste PesquisaEspecial_rev.rar

    Abraço
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    Capturar valor de parâmetro de consulta no formulário

    Mensagem  good guy em Seg 05 Out 2015, 19:00

    Olá Teixeira,

    Show de bola !!! Ficou legal, e já serve como um bom exemplo para quem se interessar, mas quanto ao meu caso, só pude aproveitar somente algumas dicas porque o testei com outras linhas de código que fazem algumas coisas especiais para mim e não deu certo. Mas consegui resolver a contento com base no critério na consulta, mas também tive essa ideia conforme a mensagem nº 11, com a diferença é que estava fazendo com a referência ao formulário errado, no seu está certo e isso ajudou bastante. Porém o que valeu como dica importante de seu exemplo foi eu colocar uma caixa de texto como referência de pesquisa e então ficou jóia. Tanto o seu exemplo quanto com a manutenção do meu código original estão funcionando agora. Foi muito bom trocarmos ideias e chegarmos a um fim proveitoso.

    No formulário de pesquisa:

    Código:

    Public Sub Form_Open(Cancel As Integer)
    On Error Resume Next

    Dim strCriteria As String
    Dim qryDef As QueryDefs

    Set qryDef = CurrentDb.OpenRecordset("SELECT * FROM cnsProcCom")

    strCriteria = "Como " * " & [Forms]!BarradeProgressoIII![txtPesquisa] & " * ""
    Debug.Print strCriteria

    DoCmd.OpenQuery qryDef, , strCriteria

    Me.Requery


    End Sub

    No critério da consulta cnsProcCom para o campo Nome:

    = "Como " * " & [Forms]!BarradeProgressoIII![txtPesquisa] & " * ""


    E o código do formulário principal:

    Código:

    Public Sub cmdIncluir()
    On Error Resume Next
    Dim n As Long

    DoCmd.OpenForm "Pesquisa"

    n = Forms!Pesquisa!txtTotal

    Me.lblResultado.Caption = "Cerca de " & n & " registro(s) encontrado(s) com o termo " & Me.txtPesquisa & "."


    End Sub
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5043
    Registrado : 15/03/2013

    Re: [Resolvido]Capturar valor de parâmetro de consulta no formulário

    Mensagem  ahteixeira em Ter 06 Out 2015, 08:36

    Olá Eduardo, obrigado pelo retorno.
    Claro que é sempre bom trocar ideias, isso é ser MaximoAccess Wink
    Abraço a todos

      Data/hora atual: Qua 25 Abr 2018, 19:28