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]Buscar dados via VBA com filtro

    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 15/9/2016, 03:16

    Boa noite!

    Bd em Access 2010.

    Estou buscando dados de uma tabela para outra da seguinte forma:

    rs("Codigo") = rst("Codigo")

    Porém está buscando todos os Códigos do registro.
    Gostaria que buscasse apenas os códigos que forem pré-definidos.
    Exemplo: Quero que busque apenas os registros que contém os códigos 100 ou 200.


    Como Faço isso?

    Desde já agradeço!

    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 15/9/2016, 11:40

    Trm q nos dar mais detalhes de como esta fazendo amigo, se nao e impossivel lhe ajudar...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    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]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Julio Lustosa 15/9/2016, 12:34

    Bom dia!

    Seria interessante você passar cópia do código que está usando e uma cópia da tabela.

    Não esqueça de explicar bem como o seu código deveria funcionar.

    Aguardamos.
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 15/9/2016, 12:59

    FabioPaes, bom dia!

    O bd possui um formulário chamado DevolucaoRemessa.
    Esse formulário possui o campo txtNUMERONF, que quando digitado o número da NF, busca todas as suas informações para este formulário.
    Porém, de acordo com o código do produto (campo "Codigo" da tabela de origem) alguns produtos não serão devolvidos. Isso é uma regra. Sempre os produtos com os códigos 100 ou 200, não serão devolvidos.

    Parte do comando que está no campo txtNUMERONF no evento Após Atualizar:

    Private Sub txtNUMERONF_AfterUpdate()


    Set dbs = CurrentDb
    strSQL = "SELECT * FROM tbl_VendasItens WHERE NUMEROPEDIDO = " & "'" & txtNUMEROSAIDA & "'"
    strSQL = strSQL & " AND CODIGO <> null"
    Set rst = dbs.OpenRecordset(strSQL)

    Do While Not rst.EOF
    Set DB = CurrentDb()
    Set rs = DB.OpenRecordset("zzz_tbl_ProdutosReferenciados")

    rs.AddNew

    rs("Codigo") = rst("Codigo")

    rs.Update


    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 15/9/2016, 13:15

    Posta esse exemplo aqui amigo por favor. Posta so as partes envolvidas pra facilitar o entendimento...

    Mas, nao tem aspas de mais nao ali na condição?

    Teste:

    Set dbs = CurrentDb
    strSQL = "SELECT * FROM tbl_VendasItens WHERE NUMEROPEDIDO = " & txtNUMEROSAIDA & ""
    strSQL = strSQL & " AND CODIGO <> null"
    Set rst = dbs.OpenRecordset(strSQL)

    Do While Not rst.EOF
    Set DB = CurrentDb()
    Set rs = DB.OpenRecordset("zzz_tbl_ProdutosReferenciados")

    rs.AddNew

    rs("Codigo") = rst("Codigo")

    rs.Update


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 15/9/2016, 16:16

    FabioPaes,

    Fiz algumas análises da questão e antes de continuarmos, faço duas correções em minha fala.

    1- o campo a ser filtrado será o campo "CFOP" e não o campo "Codigo" referente ao produto.

    Assim,

    2 - Onde lê-se: " Sempre os produtos com os códigos 100 ou 200, não serão devolvidos."


    Leia-se: "Apenas os CFOPs 5902 ou 5903 serão devolvidos."


    Fiz alguns testes, mas todos acusaram erros. O último teste foi:

    Set dbs = CurrentDb
    strSQL = "SELECT * FROM tbl_VendasItens WHERE NUMEROPEDIDO = " & "'" & txtNUMEROSAIDA & "'"
    strSQL = strSQL & " AND CODIGO <> null"
    strSQL = strSQL & " AND zzz_tbl_ProdutosReferenciados.CFOP = 5902 or 5903"
    Set rst = dbs.OpenRecordset(strSQL)

    Acusou o erro: Erro em tempo de execução '3061': Parâmetros insuficientes. Eram esperados 1.

    Sei que o xis da questão está apenas nessa linha: strSQL = strSQL & " AND zzz_tbl_ProdutosReferenciados.CFOP = 5902 or 5903", pois no mais, tudo está funcionando.



    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 15/9/2016, 16:51

    strSQL = "SELECT * FROM tbl_VendasItens WHERE NUMEROPEDIDO = " & "'" & txtNUMEROSAIDA & "'" <== Veja a mensagem anterio, corrija aqui pois acredito que tem & e """ de mais....


    strSQL = strSQL & " AND zzz_tbl_ProdutosReferenciados.CFOP = 5902 or 5903" <== Corija para:


    strSQL = strSQL & " AND zzz_tbl_ProdutosReferenciados.CFOP = 5902 OR zzz_tbl_ProdutosReferenciados.CFOP = 5903"



    Veja se Resolve!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 15/9/2016, 22:13

    FabioPaes,

    Fiz diversos testes com diversas combinações, infelizmente não funcionaram.

    Justificando sua fala:

    "strSQL = "SELECT * FROM tbl_VendasItens WHERE NUMEROPEDIDO = " & "'" & txtNUMEROSAIDA & "'" <== Veja a mensagem anterio, corrija aqui pois acredito que tem & e """ de mais...."


    Fiz o teste conforme sua sugestão, mas o resultado foi o mesmo.
    strSQL = "SELECT * FROM tbl_VendasItens WHERE NUMEROPEDIDO = " & txtNUMEROSAIDA & ""

    Outro ponto é em relação as tabelas de origem e destino. Acabei fazendo uma citação errada induzindo você ao erro, e peço desculpas por isso. Explico:
    A tabela de origem é a tbl_VendasItens, onde strSQL = "SELECT * FROM tbl_VendasItens...

    Assim onde citei: strSQL = strSQL & " AND zzz_tbl_ProdutosReferenciados.CFOP = 5902 or 5903" ... acredito que deveria ser tbl_VendasItens ...
    Ou simplesmente não precisaria do nome da tabela, pois ela já foi chamada no "SELECT * FROM tbl_VendasItens.

    A tabela de destino é a zzz_tbl_ProdutosReferenciados.

    Testei com:

    strSQL = strSQL & " AND tbl_VendasItens.CFOP = 5902 Or tbl_VendasItens.CFOP = 5903"  (Erro 3464: tipo de dados incompatível na expressão de critério)

    Depois com:

    strSQL = strSQL & " AND tbl_VendasItens.CFOP = 5902 Or tbl_VendasItens.CFOP = 5903" & txtCFOP & "'" (Erro 3075: Erro de sintaxe na sequência de caracteres na expressão de consulta)

    Depois:

    strSQL = strSQL & " AND CFOP = 5902 Or CFOP = 5903" (Erro 3464: tipo de dados incompatível na expressão de critério)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 15/9/2016, 22:58

    Para facilitar! Poste esse Exemplo aqui amigo!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 16/9/2016, 02:39

    Consegui resolver o problema da seguinte forma:

    Criei uma consulta baseada na tabela "zzz_tbl_ProdutosReferenciados" e a inseri como origem no subformulário.
    No campo CFOP da consulta, coloquei o critério "5902" Ou "5903".

    Dessa forma são importados todos os dados da tbl_ProdutosReferenciados, mas são mostrados no subformulário apenas os que contém CFOP 5902 ou 5903.


    Não sei se é a forma mais correta, mas funcionou.

    No mais, agradeço pela ajuda e atenção.

    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 16/9/2016, 14:54

    Se na consulta aceitou ou corrigiu para "5902" significa que o campo CFOP é TEXTO. <=== Essa era o seu problema amigo, achavamos que era NUMERO.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 17/9/2016, 00:35

    Sendo no formato texto é possível utilizá-lo com "filtro"?
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 17/9/2016, 01:49

    Sim... A unica diferença e que o valos a ser passado deve estar entre '" & me.NomeCampo & "'.


    Tente:

    strSQL = strSQL & " AND tbl_VendasItens.CFOP = '5902' Or tbl_VendasItens.CFOP = '5903'"


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 17/9/2016, 02:50

    Fiz alguns testes:

    Teste 1 (Conforme sua citação): strSQL = strSQL & " AND tbl_VendasItens.CFOP = '5902' Or tbl_VendasItens.CFOP = '5903'"

    ou apenas: strSQL = strSQL & " AND CFOP = '5902' Or CFOP = '5903'" ( O resultado foi o mesmo)


    Resultado: Buscou apenas os registros com os CFOPs 5902 ou 5903, porém não respeitou o filtro para buscar os itens apenas da NF chamada. Chamei uma NF e foram retornados todos os itens das demais NFs com os CFOPs 5902 ou 5903.

    Teste 2 : strSQL = strSQL & " AND tbl_VendasItens.CFOP = '5902' ou strSQL = strSQL & " AND CFOP = '5902'

    Resultado: Funcionou perfeitamente para as NFs que possuem o CFOP 5902. Chamei a NF e buscou apenas os itens da NF chamada.

    Conclusão: a parte Or está fazendo com que não seja respeitado o filtro dos itens da NF chamada.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 17/9/2016, 03:25

    Pode postar exemplo pra dsr uma olhada depois?


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 18/9/2016, 21:03

    FabioPaes,

    veja se essas informações são suficientes para verificação.

    Abraço
    Anexos
    [Resolvido]Buscar dados via VBA com filtro AttachmentDatabase2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (144 Kb) Baixado 14 vez(es)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 19/9/2016, 00:26

    Amigo, infelizmente nao consegui achar o codigo no seu exemplo... E nao soube como proceder para obter o erro...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 19/9/2016, 02:14

    No campo Nº Nota (txtNUMERONF) do formulário "DevolucaoRemessaBaixarEstoque" digite 35 ou 36.

    Na NF 35 há itens com os CFOPs 5124 e 5902.

    Já na 36 todos os itens estão com o CFOP 5903.


    O código está em "Private Sub txtNUMERONF_AfterUpdate()". Porém no seu formato original:

    Set dbs = CurrentDb
    strSQL = "SELECT * FROM tbl_VendasItens WHERE NUMEROPEDIDO = " & "'" & txtNUMEROSAIDA & "'"
    strSQL = strSQL & " AND CODIGO <> null"
    Set rst = dbs.OpenRecordset(strSQL)

    Falta acrescentar:

    strSQL = strSQL & " AND tbl_VendasItens.CFOP = '5902' Or tbl_VendasItens.CFOP = '5903' "


    Qualquer dúvida, estou a disposição.

    Obrigado
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 19/9/2016, 02:18

    Faltou a explicação do funcionamento:

    Quando você chamar a NF 35 ou 36, o comando deve buscar todos os dados referentes à NF.

    Acrescentando o filtro para o CFOP 5902 ou 5903, só devem ser buscados os itens com os mesmos.





    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes 19/9/2016, 03:46

    Amigo, desculpa nao consegui entender muita coisa nao o do que pretende... Fiquei meio perdido no seu código.

    Utilize da forma como conseguiu mesmo...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria 19/9/2016, 16:20

    Sem problema, você já me ajudou bastante. Só tenho que agradecer.
    Estou batalhando em novos "problemas", mas pretendo voltar e tentar resolver este pelo código.
    Qualquer novidade, posto aqui.

    Mais uma vez, obrigado!

    Conteúdo patrocinado


    [Resolvido]Buscar dados via VBA com filtro Empty Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 03:15