Olá, criei uma consulta parâmetro para buscar clientes atavés do nome ( Como "*" & [ Digite o nome do cliente ] & "*"), só que gostaria que a consulta trouxesse todos os clientes cadastrados com acento gráfico ou não. Exemplo: eu quero buscar João, só que eu não sei se foi cadastrado João ou Joao. então gostaria que digitando Joao, sem acento retornasse todos os cadastrados João e Joao. Deu pra entender? Grata
5 participantes
[Resolvido]Consulta parâmetro nome do cliente
Aneju- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 55
Registrado : 17/04/2012
- Mensagem nº1
Consulta parâmetro nome do cliente
Marcelo David- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3947
Registrado : 21/04/2011
- Mensagem nº2
Re: [Resolvido]Consulta parâmetro nome do cliente
Um forma seria você usar uma combo, em um formulário para a pesquisa. E passar como parâmetro na filtragem da consulta.
Algo assim:
No critério da consulta:
Forms!NomeFormulárioPesquisa!NomeCboPesquisa
Na origem da linha da cbo:
SELEC NomeCliente FROM NomeTabelaCliente
Algo assim:
No critério da consulta:
Forms!NomeFormulárioPesquisa!NomeCboPesquisa
Na origem da linha da cbo:
SELEC NomeCliente FROM NomeTabelaCliente
.................................................................................
Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
Access e VBA - Formulário Desacoplado - [Passo a passo]
Conheça meu canal no Youtube e se inscreva.
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº3
Re: [Resolvido]Consulta parâmetro nome do cliente
Olá, seja bem vinda ao forum. Uma ideia pode ser utilizando o Substituir para tirar acentos e cedilhas quando for escrito com ou colocar quando for escrito sem:
Para cada possibilidade de acentuação, você coloca um Substituir a mais. Por exemplo, para contemplar o "ã" e o "á":
- Código:
Como "*" & [ Digite o nome do cliente ] & "*" Ou Como "*" & Substituir([ Digite o nome do cliente ];"ã";"a") & "*" Ou Como "*" & Substituir([ Digite o nome do cliente ];"a";"ã") & "*"
Para cada possibilidade de acentuação, você coloca um Substituir a mais. Por exemplo, para contemplar o "ã" e o "á":
- Código:
Como "*" & [ Digite o nome do cliente ] & "*" Ou Como "*" & Substituir(Substituir([ Digite o nome do cliente ];"ã";"a");"á";"a") & "*" Ou Como "*" & Substituir(Substituir([ Digite o nome do cliente ];"a";"ã");"a";"á") & "*"
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº4
Re: [Resolvido]Consulta parâmetro nome do cliente
Escrevemos juntos Marcelo. Como a ideia da amiga é que seja retornado tanto os nomes com acentos como tambem os nomes sem acento, acredito que com o Replace atende melhor porque retorna os dois ao mesmo tempo, concordas ou não?
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
Marcelo David- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3947
Registrado : 21/04/2011
- Mensagem nº5
Re: [Resolvido]Consulta parâmetro nome do cliente
Sim claro. Você respondeu a dúvida dela exatamente como ela quer. Eu fiz outro caminho...
Mas é porque vi um outro post dela, e da maneira que eu disse, serviria para a solução do outro também (pois acho que estão relacionados)...
http://maximoaccess.forumeiros.com/t7183-consulta-parametro-nao-retorna-valores
Mas é porque vi um outro post dela, e da maneira que eu disse, serviria para a solução do outro também (pois acho que estão relacionados)...
http://maximoaccess.forumeiros.com/t7183-consulta-parametro-nao-retorna-valores
.................................................................................
Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
Access e VBA - Formulário Desacoplado - [Passo a passo]
Conheça meu canal no Youtube e se inscreva.
Aneju- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 55
Registrado : 17/04/2012
- Mensagem nº6
Re: [Resolvido]Consulta parâmetro nome do cliente
fiz algumas alterações, mas não funcionou, vcs conseguem ver qual foi o erro?
Como "*" & [ Digite o nome do cliente ] & "*" Ou Como "*" & Substituir(Substituir(Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir ([ Digite o nome do cliente ];"ã";"a");"á";"a");"à";"a");"â";"a");"é";"e");"è";"e");"ê";"e");"í";"i");"ì";"i");"ò";"o");"ó";"o");"ô";"o");"õ";"o");"ú";"u");"ù";"u") & "*" Ou Como "*" & Substituir(Substituir(Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir ([ Digite o nome do cliente ]; "a";"ã");"a";"á");"a";"à");"a";"â");"e";"é");"e";"è");"e";"ê");"i";"í");"i";"ì");"o";"ò");"o";"ó");"o";"ô");"o";"õ");"u";"ú");"u";"ù") & "*"
Como "*" & [ Digite o nome do cliente ] & "*" Ou Como "*" & Substituir(Substituir(Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir ([ Digite o nome do cliente ];"ã";"a");"á";"a");"à";"a");"â";"a");"é";"e");"è";"e");"ê";"e");"í";"i");"ì";"i");"ò";"o");"ó";"o");"ô";"o");"õ";"o");"ú";"u");"ù";"u") & "*" Ou Como "*" & Substituir(Substituir(Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir (Substituir ([ Digite o nome do cliente ]; "a";"ã");"a";"á");"a";"à");"a";"â");"e";"é");"e";"è");"e";"ê");"i";"í");"i";"ì");"o";"ò");"o";"ó");"o";"ô");"o";"õ");"u";"ú");"u";"ù") & "*"
Avelino Sampaio- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3900
Registrado : 04/04/2010
- Mensagem nº7
Re: [Resolvido]Consulta parâmetro nome do cliente
Nossa, que doidera! (risos)
Sugiro criar um campo Virtual na consulta, aonde vc usa uma função para tirar os acentos.
Baixe a função "Desacentua" deste artigo, no meu site. Copie para um módulo global
http://www.usandoaccess.com.br/tutoriais/tuto20.asp
crie então um campo na consulta, que servirá apenas para filtragem:
Algo assim:
Cliente2: desancentua([cliente])
e então usa o LIKE no critério deste campo:
como "*" & [Nome do cliente - não use acentuação] & "*"
Ao consultar retornará os clientes com e sem acento
Sucesso!
Sugiro criar um campo Virtual na consulta, aonde vc usa uma função para tirar os acentos.
Baixe a função "Desacentua" deste artigo, no meu site. Copie para um módulo global
http://www.usandoaccess.com.br/tutoriais/tuto20.asp
crie então um campo na consulta, que servirá apenas para filtragem:
Algo assim:
Cliente2: desancentua([cliente])
e então usa o LIKE no critério deste campo:
como "*" & [Nome do cliente - não use acentuação] & "*"
Ao consultar retornará os clientes com e sem acento
Sucesso!
.................................................................................
Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces
Clique AQUI e analise o custo beneficio do material oferecido.
Lupércio- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1143
Registrado : 07/05/2011
- Mensagem nº8
Re: [Resolvido]Consulta parâmetro nome do cliente
Olá Aneju!
Com permissão aos companheiros que tanto me ajudaram!
Crie um módulo novo!
E cole esse código:
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) = 1 Then
strC = "[" & strAcc(intN) & "]"
Exit For
End If
Next intN
strLike = strLike & strC
Next strP
TodosAcentos = strLike
End Function
Use esse clitério na consulta:
Como TodosAcentos("*" & [Digite o nome] & "*")
vai que funciona!
Com permissão aos companheiros que tanto me ajudaram!
Crie um módulo novo!
E cole esse código:
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) = 1 Then
strC = "[" & strAcc(intN) & "]"
Exit For
End If
Next intN
strLike = strLike & strC
Next strP
TodosAcentos = strLike
End Function
Use esse clitério na consulta:
Como TodosAcentos("*" & [Digite o nome] & "*")
vai que funciona!
Lupércio- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1143
Registrado : 07/05/2011
- Mensagem nº9
Re: [Resolvido]Consulta parâmetro nome do cliente
Segue um exemplo:
http://speedy.sh/dVQB9/PESQUISAESPECIAL.zip
http://speedy.sh/dVQB9/PESQUISAESPECIAL.zip
Lupércio- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1143
Registrado : 07/05/2011
- Mensagem nº10
Re: [Resolvido]Consulta parâmetro nome do cliente
veja os critérios:
Você está usando esse critério:
( Como "*" & [ Digite o nome do cliente ] & "*")
Substitua por:
Como todosacentos("*" & [Digite o nome do cliente] & "*")
retorna: joão ou joao em qualquer parte do campo.Ex: joão Batista ou Batista joao.
Como todosacentos([Digite o nome do cliente] & "*")
retorna: joao ou joão no inicio do campo. Ex: João Batista ou joao Batista
No seu caso seria esse último critério.
Como todosacentos([Digite o nome do cliente] & "*")
Não se esqueça do modulo é só copiar!
Você está usando esse critério:
( Como "*" & [ Digite o nome do cliente ] & "*")
Substitua por:
Como todosacentos("*" & [Digite o nome do cliente] & "*")
retorna: joão ou joao em qualquer parte do campo.Ex: joão Batista ou Batista joao.
Como todosacentos([Digite o nome do cliente] & "*")
retorna: joao ou joão no inicio do campo. Ex: João Batista ou joao Batista
No seu caso seria esse último critério.
Como todosacentos([Digite o nome do cliente] & "*")
Não se esqueça do modulo é só copiar!
Aneju- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 55
Registrado : 17/04/2012
- Mensagem nº11
Re: [Resolvido]Consulta parâmetro nome do cliente
OBRIGADUUUUUUUUUUU! Vc merece um cheirooooo. Obrigada. Funcionou perfeitamente.
Lupércio- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1143
Registrado : 07/05/2011
- Mensagem nº12
Re: [Resolvido]Consulta parâmetro nome do cliente
Obrigado pelo retorno!
O forum agradece.
Se precisar estamos todos aqui no mesmo intuíto de
aprender e transmitir o que sabemos.
O forum agradece.
Se precisar estamos todos aqui no mesmo intuíto de
aprender e transmitir o que sabemos.
» [Resolvido]Efectuar consulta a cliente id e passar para cliente nome
» [Resolvido]Na consulta está vinculado o ID do cliente só que preciso pesquisa pelo Nome. Como Fazer
» [Resolvido]Abrir um formulário de cliente com duplo clique no nome do cliente agendado na agenda (subformulário) em anexo
» [Resolvido]Ordenar nome de cliente por mês de aniversario
» [Resolvido]Consulta com 1 parâmetro que está em dois campos + mais 1 parâmetro
» [Resolvido]Na consulta está vinculado o ID do cliente só que preciso pesquisa pelo Nome. Como Fazer
» [Resolvido]Abrir um formulário de cliente com duplo clique no nome do cliente agendado na agenda (subformulário) em anexo
» [Resolvido]Ordenar nome de cliente por mês de aniversario
» [Resolvido]Consulta com 1 parâmetro que está em dois campos + mais 1 parâmetro