Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tonhaum

Pesquisa Parcial e Filtragem de Dados

Recommended Posts

Olá... Mais dois problemas.

 

1° ------- Pesquisa Parcial

Eu tenho um sistema de procura funcionando aki, porém ele só procura se eu escrever o nome (exemplo) certinho.

Eu gostaria de saber como fazer uma pesquisa que procure o nome sem precisar escreve-lo inteiro.

 

Private Exemplo

Tem uma pessoa chamada André Henrique, e outra André Felipe.

Eu colocaria apenas and,ou andré e apareceria todos com esse nome ou parte do nome.

End Exemplo ^^

 

Eu no momento estou usando uma TextBox, eu terei que mudar? Usar uma ComboBox sei lá...

 

Olhem o Código de Pesquisa que estou usando:

CODE
Dim ProcuraNome As String

 

ProcuraNome = InputBox("Digite o Nome a ser consultado")

TBAmigosDiego.Seek "=", ProcuraNome

If TBAmigosDiego.NoMatch = True Then

MsgBox ("Nome não cadastrado!")

TBAmigosDiego.MovePrevious

End If

AtualizaFormulário

 

2° ---------- Como Filtrar Dados

Eu também gostaria de aprende como filtrar dados.

Eu tenho uma lista de nomes no meu "arquivo.mdb", como fazer para filtrar esses nomes pela primeira letra do nome?

Eu tenho q criar uma ComboBox com as letras a serem pesquisadas?

Me ajudem a criar o código de filtragem.

 

 

Agredeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Saudações.

 

Olha, a minha recomendação para esse tipo de consulta é não usar o componente de acesso para fazer a filtragem dos dados, eu realmente prefiro um Select para isso. Na sua primeira dúvida o Select é muito simples...use-o desta seguinte forma.

 

Private Sub ProcuraNome()
'| Vamos Considerar que você esteja usando um TextBox e um Botao para consulta
   dim Ws as DAO.Workspace
   dim Db as DAO.Database
   dim Rs as DAO.Recordset
   dim SQL as String
   dim str_Resultado as String

'|Aqui Abrimos o Banco
   set Ws = Workspaces(0)
   set Db = Ws.OpenDatabase(<caminho do banco>)

'|Aqui montamos o Select 
'|O que fara ele retornar multiplos campos é o comando Like e seus coringas
   SQL = "Select * From <tabela> " _
		  + "Where <campo_do_nome> like '*" + TextBox.Text + "*'"

'|Aqui Abrimos o SQL
   set Rs = Db.OpenRecordset(SQL)

'|Aqui montamos o resultado da consulta para exibila no MsgBox
   rs.MoveFirst
   While Rs.Eof = False
	  str_Consulta = str_Consulta + Rs(<nome_do_campo>) + VbCrLf
	  Rs.MoveNext
   Wend

'|Fechamos o Banco
   rs.close: set rs = Nothing
   db.close: set db = Nothing
   ws.close: set ws = Nothing

'|Exibimos o MsgBox
   MsgBox str_consulta
 
end sub

Quanto à segunda pergunta é só usar a mesma lógica só que com outro Select

 

SQL = "Select <nome_do_campo>, Mid(<nome_do_campo>,1,1> as PrimeiraLetra " _
+ "From <tabela> " _
+ "GroupBy PrimeiraLetra"

essa consulta retornará todas as primeiras letras que existirem na tabela, depois é só ir acrescentando no ComboBox

 

Espero ter Ajudado.

 

Paulo Mendes

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.