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]Filtrando uma consulta através do VBA

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 10/9/2022, 13:27

    Bom dia / Boa tarde / Boa noite!!!

    Prezados, preciso de uma ajuda.

    Uso a seguinte rotina para filtragem em uma consulta, segue abaixo:

    Dim C As String, x As String
    x = Me.pesquisa.Text
    C = " where referencia like '*" & x & "*' or descricao like '*" & x & "*'"
    Me.LstPeca.RowSource = " SELECT Idproduto, Representada, Referencia, Descricao, unidade, Categoria, PrVenda, ValorComissao FROM QryBuscaProdutoPedido " & C & "ORDER BY descricao ASC;"
    End Sub

    Porém, contudo, todavia......preciso incluir um campo a mais de filtragem que é o seguinte:
    Like [Forms]![FrmPedido]![Representada]))
    Na seguinte linha....
    C = " where referencia like '*" & x & "*' or descricao like '*" & x & "*'"

    Ou seja...

    Gostaria abrir a consulta para a pesquisa de referência e ou descrição apenas com os produtos cadastrados na referida representada.
    Coloquei o critério na consulta, mas o VBA se sobrepõe a mesma.

    Desde já, meu muito obrigado.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 12/9/2022, 11:59

    Up......


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 13/9/2022, 10:20

    UP


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 14/9/2022, 18:09

    UP>................


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Alexandre Fim 14/9/2022, 18:32

    Olá Silvio,

    Verifique na instrução o ORDER BY.

    " SELECT Idproduto, Representada, Referencia, Descricao, unidade, Categoria, PrVenda, ValorComissao FROM QryBuscaProdutoPedido " & C & "ORDER BY descricao ASC;"

    Coloque um espaço:
    " SELECT Idproduto, Representada, Referencia, Descricao, unidade, Categoria, PrVenda, ValorComissao FROM QryBuscaProdutoPedido " & C & " ORDER BY descricao ASC;"

    OU ENTÃO (Copie e cole o código):

    Código:

        Dim C As String, x As String
        Dim sSQL As String
        
        x = Me.pesquisa.Text
        
        C = " where referencia like '*" & x & "*' or descricao like '*" & x & "*'"
        
        sSQL = "SELECT Idproduto, Representada, Referencia, Descricao, unidade, Categoria, PrVenda, ValorComissao "
        sSQL = sSQL & " FROM QryBuscaProdutoPedido " & C & ""
        sSQL = sSQL & " ORDER BY descricao ASC;"
        
        Me.LstPeca.RowSource = sSQL


    Coloque um breakpoint no inicio da sub, execute a tela e faça um debug linha-a-linha nesta rotina e, antes do dbug entrar na linha " Me.LstPeca.RowSource = sSQL", veja o resultado da variável "sSQL" na Janela Imediata.

    Em seguida, copie o resultado da variável e abra uma nova consulta no Modo SQL, e cole o resultado. Na sequencia, execute a consulta pra saber se está funcionando e se traz algum resultado.



    Acredito que seja isso!

    Att,

    Alexandre Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Filtrando uma consulta através do VBA Setinf11
    Sistemas e Tecnologia Ltda
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 14/9/2022, 20:59

    Alexandre, boa tarde.

    Obrigado por me ajudar.

    Mas.........................
    Porém, contudo, todavia......preciso incluir um campo a mais de filtragem que é o seguinte:
    Like [Forms]![FrmPedido]![Representada]))
    Na seguinte linha....
    C = " where referencia like '*" & x & "*' or descricao like '*" & x & "*'"

    A filtragem está perfeita ( tanto a busca pela referência ou pela descrição do produto ), mas preciso que seja colocado como condição a Representada
    Algo meio que parecido com isso:

    C = " where referencia like '*" & x & "*' or descricao like '*" & x & "*'" and Representada Like [Forms]![FrmPedido]![Representada]))


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Alexandre Fim 14/9/2022, 21:13

    Silvio, tente isso:

    Código:

    C = " WHERE referencia LIKE '*" & x & "*' OR descricao LIKE '*" & x & "*' Or Representada LIKE '*" & [Forms]![FrmPedido]![Representada] & "*'"

    Estou pratindo do pressuposto que Representada seja texto.

    Espero ter ajudado.

    Att,

    Alexandre Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Filtrando uma consulta através do VBA Setinf11
    Sistemas e Tecnologia Ltda
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 14/9/2022, 22:04

    Alexandre....não deu o resultado esperado.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 15/9/2022, 14:34

    Bom dia a todos.

    Batendo cabeça aqui para acertar essa rotina...

    Private Sub Pesquisa_Change()

    Dim C As String, x As String
    x = Me.pesquisa.Text
    C = " WHERE referencia LIKE '*" & x & "*' OR descricao LIKE '*" & x & "*' "
    Me.LstPeca.RowSource = " SELECT IdProduto, Representada, Referencia, Descricao, Unidade, Categoria, PrVenda, ValorComissao FROM QryBuscaProdutoPedido WHERE Representada Like [Forms]![FrmPedido]![Representada] & C & "

    End Sub

    Onde....Representada é texto.   Referencia....é texto.     descricao....é texto

    Se eu tirar WHERE Representada Like [Forms]![FrmPedido]![Representada] & C & " Funfa...mas preciso que seja filtrado também pela representada.

    Se alguém puder me ajudar....agradeço.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Alexandre Fim 15/9/2022, 15:48

    Olá Silvio,

    Tente isso:

    C = " WHERE referencia LIKE '*" & x & "*' OR descricao LIKE '*" & x & "*' AND Representada LIKE '*" & [Forms]![FrmPedido]![Representada] & "*'"

    Att,

    Alexandre Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Filtrando uma consulta através do VBA Setinf11
    Sistemas e Tecnologia Ltda
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 15/9/2022, 18:07

    alexandre escreveu:Tente isso:

    C = " WHERE referencia LIKE '*" & x & "*' OR descricao LIKE '*" & x & "*' AND Representada LIKE '*" & [Forms]![FrmPedido]![Representada] & "*'"

    Alexandre, boa tarde.....já tentei também.

    Veja a minha última mensagem, creio que vou mudar de estratégia.   Se o VBA " monta " a consulta...pensou eu então que terei que colocar o parâmetro de filtragem nessa montagem.

    Não sei se a sintaxe está correta, conforme abaixo:

    Me.LstPeca.RowSource = " SELECT IdProduto, Representada, Referencia, Descricao, Unidade, Categoria, PrVenda, ValorComissao FROM QryBuscaProdutoPedido WHERE Representada Like [Forms]![FrmPedido]![Representada] & C & "

    O que você pensa/acha disso ???


    Última edição por Silvio em 15/9/2022, 18:24, editado 1 vez(es) (Motivo da edição : acréscimo de mensagem)


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Alexandre Fim 15/9/2022, 19:07

    Silvio,
    O que pode fazer é deixar a pesquisa mais dinâmica.
    Manda um print do seu form de pesquisa, ou uma cópia do bd, somente partes envolvidas no problema, para análise e solução.

    VAleu

    FIM



    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Filtrando uma consulta através do VBA Setinf11
    Sistemas e Tecnologia Ltda
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2205
    Registrado : 23/01/2018

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  crysostomo 15/9/2022, 21:54

    Boa noite Silvio.
    Vê se esse pequeno exemplo te ajudar, aqui o sub vai sendo filtrado com referencia dos outros campos.
    https://www.maximoaccess.com/t41256-resolvidofiltrar-subformulario-pelo-formulario


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 16/9/2022, 12:17

    Bom dia / Boa tarde / Boa noite.

    Alexandre, crysostomo...estou " subindo " as entidades referente ao problema.

    Siga esses passos para chegar no problema.

    1- abra o frmpedido.
    2- coloque a data, a representada (escolha uma das quatro).
    3- no sub formulário, clicar em busca, vai abrir um outro formulário de busca com uma LstBox e uma caixa de texto de pesquisa.
    4- na caixa de texto, pesquisa, digito o código do produto ou a sua descrição.    Isso tem que estar " linkado " na representada que aparece nesse formulário.  TicToc tem 4 produtos, use como referência de busca.
    5- é esse o problema que estou enfrentado...filtrar por produto e ou descrição...mas filtrando também pela representada.

    Qualquer dúvida...é só dar um grito por aqui.

    Desde já, meus agradecimentos a vocês !!!
    Anexos
    [Resolvido]Filtrando uma consulta através do VBA Attachmentforum.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (182 Kb) Baixado 3 vez(es)


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Alexandre Fim 16/9/2022, 15:00

    Olá Silvio,

    De modo geral, fiz alguns ajustes no sistema. Ficou assim:
    [Resolvido]Filtrando uma consulta através do VBA Vendas14

    OBS: É necessário realizar "Normalização" no banco de dados, pois existem redundância de dados.
    - O sistema está gravando campo texto (Ex: Representada) na tabela de Pedidos, onde deveria grvar o ID da Representada.
    - O campo Referencia do produto possui espaços em branco, e para realizar rotinas de pesquisa é necessário usar o operador "LIKE", e nem sempre trazer o resultado desejado.

    Segue versão atualizada com os devidos ajustes.

    Espero ter ajudado

    Boa sorte

    Att,

    Alexandre Fim
    Anexos
    [Resolvido]Filtrando uma consulta através do VBA Attachmentforum_v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (134 Kb) Baixado 8 vez(es)


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Filtrando uma consulta através do VBA Setinf11
    Sistemas e Tecnologia Ltda
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 16/9/2022, 15:07

    Alexandre...desde já meu obrigado.


    - O sistema está gravando campo texto (Ex: Representada) na tabela de Pedidos, onde deveria grvar o ID da Representada.
    tem que ficar desse modo, pois uso esse campo para ver as comissões por representada.

    - O campo Referencia do produto possui espaços em branco, e para realizar rotinas de pesquisa é necessário usar o operador "LIKE", e nem sempre trazer o resultado desejado.
    eu importei os dados de outro sistema, não foi nada digitado.


    Estou na rua em outro cliente, chegando no escritório, vou abaixar e analisar.

    Desde já meus sinceros agradecimentos a ti.

    Abraços.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtrando uma consulta através do VBA Empty Re: [Resolvido]Filtrando uma consulta através do VBA

    Mensagem  Silvio 22/9/2022, 20:09

    resolvido


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."

    crysostomo gosta desta mensagem


      Data/hora atual: 6/10/2022, 08:36