MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Buscar dados via VBA com filtro

    Compartilhe

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Qui 15 Set 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
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Qui 15 Set 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
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Julio Lustosa em Qui 15 Set 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.

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Qui 15 Set 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
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Qui 15 Set 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!

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Qui 15 Set 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
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Qui 15 Set 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!

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Qui 15 Set 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
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Qui 15 Set 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!

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Sex 16 Set 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
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Sex 16 Set 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!

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Sab 17 Set 2016, 00:35

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

    FabioPaes
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Sab 17 Set 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!

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Sab 17 Set 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
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Sab 17 Set 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!

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Dom 18 Set 2016, 21:03

    FabioPaes,

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

    Abraço
    Anexos
    Database2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (144 Kb) Baixado 6 vez(es)

    FabioPaes
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Seg 19 Set 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!

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Seg 19 Set 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

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Seg 19 Set 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
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  FabioPaes em Seg 19 Set 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!

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Buscar dados via VBA com filtro

    Mensagem  Chamon Consultoria em Seg 19 Set 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!

      Data/hora atual: Sab 03 Dez 2016, 02:20