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]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Compartilhe

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Qui 25 Jan 2018, 22:59

    Boa noite a todos,

    Venho pedir ajuda dos companheiros para resolver uma dificuldade que estou tendo sobre pesquisa no formulário de clientes...

    Procurei aqui no fórum, mas não encontrei uma solução... É o seguinte,

    No formulário de Cadastro de clientes, criei três campos: txtNome; txtCPFouCNPJ; txtCelular

    Criei também um botão para ao digitar em qualquer um desses campos selecionar o cliente na Listbox e ao clicar duas vezes sobre os dados do cliente abrir o registro no próprio form...

    Mais apanhei aqui e não consegui...

    Por favor, algum de você teria um exemplo de pesquisa no próprio form com uma caixa de listagem e que ao digitar em qualquer um dos campos de pesquisa, mostre o resultado na Listbox?

    Lembrando que estou usando: três caixas de texto para digitar as palavras e um Listbox para exibir o resultado da pesquisa...

    Desde já agradeço... Basta o esqueleto que me viro...

    Abraço a todos...
    avatar
    tauron
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 827
    Registrado : 07/12/2011

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  tauron em Sex 26 Jan 2018, 01:06

    estude este exemplo:
    Anexos
    Filtra qualquer campo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (56 Kb) Baixado 17 vez(es)

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sex 26 Jan 2018, 01:14

    Boa noite Tauron,

    Vou dar uma testado e te retorno.

    Desde já obrigado...

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sex 26 Jan 2018, 10:40

    Bom dia Tauron,

    Como prometido, retorno ao fórum para agradecer e postar logo mais a abaixo a solução encontrada e que está funcionando como queria...

    Peço que me tire mais uma dúvida:
    Tenho uma combo cboCidade e ao salvar, está salvando com o número 3637... Você já viu esse tipo de erro no access? Pode me ajudar?

    Nessa combo, quando seleciono, ela já puxa as informações dos campos: IBGE, CEP, UF

    As informações de Colunas e larguras de colunas, Origem da linha, estão também na tabela no campo Cidade...

    É que não me lembro como resolvi uma vez esse problema...

    Desde já agradeço sua atenção...

    Segue código da Pesquisa:

    Pesquisar no próprio form em mais de um campo na caixa de Listgem

    Criar no form a combox: cboOpcao
    N de colunas: 2
    Larg colunas: 0cm;1cm

    Origem da linha:
    "0";"Contém";"1";"É diferente";"2";"Começa com";"3";"Termina com";"4";"Igual"
    Tipo de origem: Lista de valores

    Crie caixas de texto conform necessidade para pesquisa... No meu caso criei duas, txt01 e txt02

    Crie também os botões: cmdPesquisar e cmdRemover

    Crie uma caixa de listagem (Caixa de texto com nome "Lista")

    Colunas: O número de colunas que você quer exibir na pesquisa.
    Larg colunas: Sempre observar os tamanho para exibição das informações... Sempre ativo como SIM o Cabeçalho das Colunas.
    Na Origem da linha: SELECT tblCadClientes.CodCliente, tblCadClientes.Cliente, tblCadClientes.DtAniversário, tblCadClientes.CPFouCNPJ, tblCadClientes.Cidade FROM tblCadClientes;
    Tipo: tabela/Consulta

    Ao Receber foco

    Private Sub Lista_GotFocus()
    Me!Lista.Value = -1
    End Sub

    Agora vamos aos campos:

    No Ao Alterar de cada campo cole:
    Private Sub txt01_Change()
    Call fncFiltrar(Me!txt1.Name)
    End Sub

    Private Sub txt02_Change()
    Call fncFiltrar(Me!txt2.Name)
    End Sub

    Agora vamos para o botões:

    No Ao clicar do botão cmdPesquisa

    Private Sub cmdPesquisar_Click()
    Call fncFiltrar 'Chamo a função
    Me.txt01 = ""
    Me.txt02 = ""
    Me.cboOpcao.SetFocus
    End Sub

    No Ao clicar do cmdRemover

    Private Sub cmdRemover_Click()
    Me.RecordSource = ""
    Me.Cliente.ControlSource = ""
    Me.CPFouCNPJ.ControlSource = ""
    Me.cboOpcao.SetFocus
    End Sub

    Função fncFiltrar ' Favor não retirar os direitos autorais...

    '----------------------------------------------------------------------------
    'Aqui é construido o Filtro a medida que se insere dados nas Caixas de Texto
    'Criado por FabioPaes
    'Em 03/01/2017
    '----------------------------------------------------------------------------

    Public Function fncFiltrar()
    Dim F As String
    Select Case Me.cboOpcao
    Case 0 'Contém * Texto *
    If Nz(Len(Me.txt01), 0) > 0 Then
    F = "Cliente Like '*" & Me.txt01 & "*' AND "
    End If
    If Nz(Len(Me.txt02), 0) > 0 Then
    F = F & "CPFouCNPJ Like '*" & Me.txt02 & "*' AND "
    End If

    Case 1 'É Diferente <>
    If Nz(Len(Me.txt01), 0) > 0 Then
    F = "Cliente <> '" & Me.txt01 & "' AND "
    End If
    If Nz(Len(Me.txt02), 0) > 0 Then
    F = F & "CPFouCNPJ <> '" & Me.txt02 & "' AND "
    End If

    Case 2 'Começa com Texto *
    If Nz(Len(Me.txt01), 0) > 0 Then
    F = "Cliente Like '" & Me.txt01 & "*' AND "
    End If
    If Nz(Len(Me.txt02), 0) > 0 Then
    F = F & "CPFouCNPJ Like '" & Me.txt02 & "*' AND "
    End If

    Case 3 'Termina com * Texto
    If Nz(Len(Me.txt01), 0) > 0 Then
    F = "Cliente Like '*" & Me.txt01 & "' AND "
    End If
    If Nz(Len(Me.txt02), 0) > 0 Then
    F = F & "CPFouCNPJ Like '*" & Me.txt02 & "' AND "
    End If

    Case 4 'É Igual
    If Nz(Len(Me.txt01), 0) > 0 Then
    F = "Cliente = '" & Me.txt01 & "' AND "
    End If
    If Nz(Len(Me.txt02), 0) > 0 Then
    F = F & "CPFouCNPJ = '" & Me.txt02 & "' AND "
    End If

    Case Else
    MsgBox "Opção não configurada, por favor seleciona uma das Opções a seguir...", vbCritical, "Atenção!!!"
    Me.cboOpcao.SetFocus
    Me.cboOpcao.Dropdown
    Exit Function
    End Select

    If Nz(Len(F), 0) > 0 Then 'Se Tiver alguma coisa a na variavel F, eu irei remover os ultimos 5 Caracteres que corresponde a: " AND " do ultimo filtro
    F = left(F, Len(F) - 5)
    Me.RecordSource = "SELECT * FROM tblCadClientes WHERE " & F 'Aplico ao formulario o resultado da consulta como sendo a origem dos dados
    Me.Cliente.ControlSource = "Cliente" 'Aplico cada campo da consulta nas suas respectivas caixas de Texto
    Me.txtCPFouCNPJ.ControlSource = "CPFouCNPJ"
    MsgBox "Pesquisa Terminada!!!", vbInformation, "Atenção"
    Else
    MsgBox "Deve informar Pelo menos um Dado para realizar a Pesquisa", vbInformation, "Atenção!!!"
    End If
    End Function

    Copie e cole a função dentro do VBA

    Public Function TodosAcentos(pstrPlain As String) As String
    Const cAlphabet _
    = "aáàâäãå¦" _
    & "cç¦" _
    & "dð¦" _
    & "eéèêë¦" _
    & "f?¦" _
    & "iíìîï¦" _
    & "nñ¦" _
    & "oóòôöõø¦" _
    & "saߦ" _
    & "uúùûü¦" _
    & "yýÿ¦" _
    & "z~"

    Dim strAcc() As String
    Dim strLike As String
    Dim intN As Integer
    Dim strP As Integer
    Dim strC As String

    strAcc = Split(cAlphabet, "¦")
    For strP = 1 To Len(pstrPlain)
    strC = Mid$(pstrPlain, strP, 1)
    For intN = LBound(strAcc) To UBound(strAcc)
    If InStr(strAcc(intN), strC) <> 0 Then
    strC = "[" & strAcc(intN) & "]"
    Exit For
    End If
    Next intN
    strLike = strLike & strC
    Next strP

    TodosAcentos = strLike
    End Function

    OBS: Ao selecionar a opção na caixa de combinação, digitando a informação a ser exibida, basta clicar no botão cmdPesquisar para que o registro seja aberto...

    O código foi desenvolvido pelo companheiro Fábio Paes - [Você precisa estar registrado e conectado para ver este link.]
    avatar
    tauron
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 827
    Registrado : 07/12/2011

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  tauron em Sex 26 Jan 2018, 10:53

    Este erro esta relacionado a arquivo corrompido ou instalacao incompleta. Se puder posta seu bd para que possamos dar uma olhada.

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sex 26 Jan 2018, 11:17

    Peia, o arquivo é grande...

    Pensei em desenvolver uma aplicação só para controle de clientes para loa dum amigo meu... Mais findou que adaptei para controle de caixa e estoque...

    Vou ver como enviar parte do bd...
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3191
    Registrado : 29/06/2012

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  Noobezinho em Sex 26 Jan 2018, 12:01

    Francisco

    Dê uma olhada nesse exemplo, pode ser que ajude

    maximoaccess.com/t21906-formulario-para-pesquisas#159303

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sex 26 Jan 2018, 12:43

    Grande Noobezinho, bom dia mestre...

    Você é uma benção na miha vida... Deus continue te abençoando junto a todos os companheiros, que tem nos ajudado.

    Testei o bd e deu certo...

    O problema agora é que o nome da cidade aparece na combo no form e na tabela também verifiquei e está lá gravado... Só não está exibindo na Caida de Texto "Lista". Aparece 3637 no lugar do nome...

    Uma vez aconteceu num sistema que estava desenvolvendo e consegui resolver. Mas esqueci de como fazer...

    Da a entender que nesse caso não é erro do Windows ou Access... Só não exibe o nome da cidade no form de cadastro de clientes. O campo do form, está com o número 3637...

    Desde já agradeço se puder me ajudar...
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3191
    Registrado : 29/06/2012

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  Noobezinho em Sex 26 Jan 2018, 12:49

    Francisco

    Disponibilize parte do teu aplicativo, para gente ver o que está pegando.

    Por mais que explique, não conseguiremos assimilar o que está acontecendo.

    Separe em um novo banco de dados a tabela/consulta e formulário em questão

    Coloque uns 5 registros fictícios.

    Veja se continua o mesmo erro e então envie.

    Aguardamos.


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sex 26 Jan 2018, 14:51

    Grande Nobeezinho, Tauron, segue link com parte do BD do controle de cadastro de clientes...

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

    Mais uma vez agradeço o apoio...

    Abraço,
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3191
    Registrado : 29/06/2012

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  Noobezinho em Sex 26 Jan 2018, 16:19

    Francisco

    O problema é na caixa de combinação que você criou na tabela cadclientes

    Como a lista  foi povoada utilizando o  "CodCidade" como coluna acoplada, é esse valor que será gravado no campo cidade da tabela cadcliente,

    embora apareça o nome na tabela, dai o erro.

    Sugiro que esqueça a tabela de cidades,  e faça outra ou aproveite essa utilizando o CEP. assim preenche o  campo numero com numero e os

    demais campos com texto, inclusive o  da cidade.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sex 26 Jan 2018, 18:14

    Ok, grande Nobezinho. Vou estudar uma forma aqui de fazer outra combo.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3199
    Registrado : 06/11/2009

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  Assis em Sex 26 Jan 2018, 22:44

    Boa noite Amigos

    Tauron, no formulário "Filtro" do seu exemplo na mensagem Nº 2 , os campos não são editáveis.

    Mas eu importo o formulário para aminha BD, versão do meu Office 2013, e o formulário "Filtro" deixa editar os campos.

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sab 27 Jan 2018, 11:01

    Bom dia, grande Assis...

    A versão que estou usando é o Office 2016...

    No meu caso, funciona normal. Consigo efetuar as buscas nos campos...

    Só estou com problemas é na caixa de combinação cboCidade...

    Essa Caixa de Combinação, uso para Exibir os demais campos relacionados a Cidade... Para o usuário não ter que ficar digitando campo a campo.

    Mais na tabela Cidade tem: CodIBGE, Nome da Cidade, UF, CEPS... Juntei numa tabela só para facilitar a ligação entre as chaves. Só que no meu caso, deu problema. Só na caixa de listagem, ao selecionar o cliente, no campo Cidade ao invés de mostrar o nome da cidade, mostra o número 3637. Pior que já tinha feito outros módulos dentro da base...

    Criei um relatório simples com as informações do cliente e exibiu as informações normal.

    Conforme mencionado, pelos companheiros: Noobezinho e Tauron, é um erro na instalação do Office ou arquivo corrompido. O que corrobora com o que descreve o site da Microsoft. Só que no lado desenvolvimento, é uma pedra no sapato. Depois de 60% do sistema pronto... Dá um pau desses...

    Ainda bem, que esse sistema é pra mim trabalhar na minha loja. Imagine se fosse para cliente!

    Se algum dos companheiros já tiveram essa dificuldade e conseguiram sanar, por gentileza sinalize pra gente também o que fazer e como fazer... Será de grande valia...

    Deixo aqui meus agradecimentos a cada um de vocês. Que a graça do Senhor os alcance hoje e sempre...

    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3191
    Registrado : 29/06/2012

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  Noobezinho em Sab 27 Jan 2018, 12:06

    Francisco

    Não é erro na instalação do Office, se assim fosse, não daria o mesmo erro aqui no meu computador.

    Estou anexando teu exemplo com as mudanças.

    Note que é apenas um exemplo pelo qual deve se basear.

    Fiz o que sugeri na mensagem de nº 11

    [ ]'s
    Anexos
    Controle de Cadastro.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.2 Mb) Baixado 12 vez(es)


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sab 27 Jan 2018, 12:50

    Entendi grande Noobezinho. Eu queria unir o útil ao agradável, inserindo uma combo que ao digitar a cidade já alimentasse os campos relacionados a Cidade do Cliente, para o usuário não ter que digitar tudo na munheca...

    Obrigado mestre, sua orientação é de extrema valia. e muito você tem me ajudado... Sou grato a Deus pela sua vida.

    Vou fazer conforme orientado...

    Abraço,
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3199
    Registrado : 06/11/2009

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  Assis em Sab 27 Jan 2018, 13:11

    Boa tarde Francisco

    No meu 2013 o filtro também funciona sem problemas ........

    O Problema é que os campos ficam editáveis, e não deviam ....


    Última edição por Assis em Sab 27 Jan 2018, 13:45, editado 1 vez(es)


    .................................................................................
    *** Só sei que nada sei ***

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 26/06/2013

    Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  cjsilva2013 em Sab 27 Jan 2018, 13:35

    Entendi grande Assis, vou corrigir... Obrigado sua orientação e dica é de grande valia...

    Na realidade, tem muita coisa que agente não aprende em cursos. A maioria é na tora e com muita leitura e testes... Para chegar no desfeixe de um programador. Estou longe, mas devagarzinho e com ajuda de grandes mestres como os senhores aprendo...

    Deus os abençoe ricamente...

    Dou aqui por resolvido. Mas sei que quando precisar estarei tanto para ajudar como também para aprender com os diletos companheiros...

    Abraço

    Resolvido.
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3191
    Registrado : 29/06/2012

    Re: [Resolvido]Ajuda com pesquisa de clientes - ao digitar em qualquer campo.

    Mensagem  Noobezinho em Sab 27 Jan 2018, 13:52

    Ótimo amigo

    Valeu pelo retorno

    Boa sorte !


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

      Data/hora atual: Sab 24 Fev 2018, 00:38