DUVIDA SOBRE MODO DE PESQUISA
Boa tarde, tenho uma codificação de pesquisa que funciona numa boa, mas é o seguinte a pesquisa só me retorna quando eu digito a palavra correta correspondente ao banco de dados. Bom minha duvida é o seguinte: eu gostaria de fazer a pesquisa igual tipo no site do Google que vc digita palavras com assento ou sem assento e dai me retorna a pesquisa tb, gostaria de saber se há este metodo, me ajudem com codificaçoes e caminhos....abaixo colocarei meu código só para apreciação...Obrigado.
Private Sub cmdPesquisa_Click()
If frmArquivo.rstpasta.State = adStateOpen Then
frmArquivo.rstpasta.Close
End If
Dim rst As New ADODB.Recordset
Dim i As Integer
Dim resultado As String
Dim retorno As String
rst.Open "select pasta_01,pasta_02,pasta_03,pasta_04,pasta_05,pasta_06,pasta_07,pasta_08,pasta_09,pasta_10,pasta_11,pasta_12,pasta_13,pasta_14," & _
"id from Pasta where pasta_01 like '%" & txtPesquisa.Text & "%' or pasta_02 like '%" & txtPesquisa.Text & "%'" & _
"or pasta_03 like '%" & txtPesquisa.Text & "%' or pasta_04 like '%" & txtPesquisa.Text & "%'" & _
"or pasta_05 like '%" & txtPesquisa.Text & "%' or pasta_06 like '%" & txtPesquisa.Text & "%'" & _
"or pasta_07 like '%" & txtPesquisa.Text & "%' or pasta_08 like '%" & txtPesquisa.Text & "%'" & _
"or pasta_09 like '%" & txtPesquisa.Text & "%' or pasta_10 like '%" & txtPesquisa.Text & "%'" & _
"or pasta_11 like '%" & txtPesquisa.Text & "%' or pasta_12 like '%" & txtPesquisa.Text & "%'" & _
"or pasta_13 like '%" & txtPesquisa.Text & "%' or pasta_14 like '%" & txtPesquisa.Text & "%'", cnn, adOpenStatic
If rst.BOF Then Exit Sub 'não encontrou nada"
MsgBox ("Palavra não encontrada"), vbInformation
txtPesquisa.Text = Empty
rhtAssunto.Text = Empty
txtPesquisa.SetFocus
Else
Do While Not rst.EOF
For i = 0 To 13
If InStr(rst(i), txtPesquisa.Text) Then
resultado = rst(i).Name
End If
Next i
If resultado <> "" Then retorno = retorno & rst(13) & "(" & resultado & "), "
rst.MoveNext
Loop
rhtAssunto.Text = retorno
End If
End Sub
Bom se no seu banco de dados estiver gravado tudo em maiusculo é fácil:
vc coloca o comando ucase:
exemplo: "or pasta_03 like '%" & ucase(txtPesquisa.Text) & "%' or pasta_04 like '%" & txtPesquisa.Text & "%'" &
daào camando ucase transforma em maiuscula a palavra digitada.
Agora se no seu banco estiver gravado palavras em maiusculo e minusculo vc
precisa fazer uma conversao, exemplo:
MSGBOX ASC("a") 'Vai retornar 97
Se vc subtrair 32 vc obtem o (a) em maiuscolo (A)
MSGBOX CHR(97-32) 'Vc obterá o A em maiusculo
Isto serve para todoas as letras do alfabeto porque é baseado na tabela ASCII...
Espero ter ajudado(dado uma luz)
vc coloca o comando ucase:
exemplo: "or pasta_03 like '%" & ucase(txtPesquisa.Text) & "%' or pasta_04 like '%" & txtPesquisa.Text & "%'" &
daào camando ucase transforma em maiuscula a palavra digitada.
Agora se no seu banco estiver gravado palavras em maiusculo e minusculo vc
precisa fazer uma conversao, exemplo:
MSGBOX ASC("a") 'Vai retornar 97
Se vc subtrair 32 vc obtem o (a) em maiuscolo (A)
MSGBOX CHR(97-32) 'Vc obterá o A em maiusculo
Isto serve para todoas as letras do alfabeto porque é baseado na tabela ASCII...
Espero ter ajudado(dado uma luz)
Em relaçao àmaiusculo e minusculo tem mais a ver se o seu banco de dados é CaseSensitive. Utilizo MySQL e desabilito isto para nao ficar "preso" ao A ou a...
Questão de acentuaçao é mais complicado, sem nem saber o que fiz, tenho um programa que nao considera acentuaçao nas pesquisas, e um outro considera...
Questão de acentuaçao é mais complicado, sem nem saber o que fiz, tenho um programa que nao considera acentuaçao nas pesquisas, e um outro considera...
Bom no meu banco de dados esta fravado textos com maiusculas e minusculas e tb tem acentuações, talvez eu faça uma reforma no banco inserindo palavras só maiusculas, bom não sei ainda irei ver.....mas eu agradeço a atenção de vcs e pelas dicas...Abraços.
Desculpe pessoal no meu banco esta tudo em maiusculo mas existe acentuação.
Tópico encerrado , respostas não são mais permitidas