DUVIDA SOBRE MODO DE PESQUISA

USUARIO.EXCLUIDOS 25/04/2007 14:05:12
#213708
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

USUARIO.EXCLUIDOS 25/04/2007 17:55:45
#213760
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)


FGSANTOS 25/04/2007 18:26:22
#213768
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...
USUARIO.EXCLUIDOS 26/04/2007 09:43:35
#213810
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.
USUARIO.EXCLUIDOS 26/04/2007 09:48:46
#213812
Desculpe pessoal no meu banco esta tudo em maiusculo mas existe acentuação.
Tópico encerrado , respostas não são mais permitidas