FILTRAR POR LETRA

MAICONLS 28/07/2005 09:36:49
#96355
Bom dia, alguem saberia me informar como eu faço para filtrar o conteúdo de um tabela no BD por letra ? Por exemplo, no meu form tenho um txtbox aonde eu gostaria de digitar uma letra qualquer e quando fosse efetuado a busca no bd ele me filtrasse todos os nomes de clientes q comecem com aquela letra....Obrigado..
USUARIO.EXCLUIDOS 28/07/2005 09:55:00
#96358
eu faço da seguinte maneira
Private Sub txtFields_Change(Index As Integer)
With rsBank
.Close
.Open "select * from BANCOS where BANCO like('" & "%" & txtFields(0).Text & "%" & "') order by BANCO; "
End With
'
LoadDatas ' ਠuma função aonde atualizo o listview controle que uso pra mostrar
End Sub
PAULOHSV 28/07/2005 09:56:43
#96359
Tente assim:

select * from autor where UPPER(nome_autor) like 'PEDRO%'


Para uma melhor explicação de uma olhada neste link
MAICONLS 28/07/2005 10:53:11
#96375
Mas no caso o like seria usado somente se tivesse relacionamento entre tabelas ?
Esqueci de mencionar que estou usando ado declarado..Não sei se influencia em alguma coisa...
MAICONLS 28/07/2005 12:00:54
#96390
?
MAICONLS 28/07/2005 12:28:47
#96396
Estou tentando de tudo que é forma mas não tem jeito, alguém tem outras idéias ? Obrigado
USUARIO.EXCLUIDOS 28/07/2005 12:40:34
#96402
mesmo com a dica q t passei naum esta fazendo ?
PAULOHSV 28/07/2005 12:46:13
#96404
Não, vc pode substituir o like por = que daria na mesmo. Neste exemplo

 select * from autor where UPPER(nome_autor) like 'PEDRO%'  


ele vai selecionar da tabela autor todos os nome que comecem com pedro, sendo que este pode ser substituido por uma variavel ou o valor de um textbox.

Para melhorar seria assim:

adodc1.recordsource=" select * from autor where UPPER(nome_autor) like 'PEDRO%' " 


MAICONLS 28/07/2005 12:51:18
#96406
To fazendo assim:

Set Cnn = New ADODB.Connection
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient

Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:    riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
If AutorizaConsultaTotal = "SIM" Then

Rs.Open "select * from TabClientes where NomeCliente='" & "%" & txtletra.Text & "%" & "' Order By NomeCliente", Cnn
Else
Rs.Open "Select * From TabClientes where NomeCliente like('" & "%" & txtletra.Text & "%" & "')and Consultor='" & UsuarioLogado & "'", Cnn
End If

If Rs.RecordCount > 0 Then

Set DataGrid1.DataSource = Adodc1
DataGrid1.Enabled = True
Adodc1.ConnectionString = Cnn
Adodc1.RecordSource = "Select * From TabClientes where(NomeCliente) like'" & txtletra.Text & "' Order By NomeCliente"
Adodc1.Refresh

Else
MsgBox "Não foi encontrado nenhum nome iniciando com a letra " & txtletra.Text, vbInformation, " Atenção!"
txtletra.Text = ""
txtletra.SetFocus
Exit Sub
End If
End If

Mas ele me informa que não encontrou nehum registro no bd, Todos os registro no bd estão com todas as letras em maiúscula
PAULOHSV 28/07/2005 13:00:57
#96408
Set Cnn = New ADODB.Connection
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient

Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:    riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
If AutorizaConsultaTotal = "SIM" Then

Rs.Open "select * from TabClientes where UPPER(NomeCliente)='" & "%" & txtletra.Text & "%" & "' Order By NomeCliente", Cnn
Else
Rs.Open "Select * From TabClientes where UPPER(NomeCliente) like('" & "%" & txtletra.Text & "%" & "')and Consultor='" & UsuarioLogado & "'", Cnn
End If

If Rs.RecordCount > 0 Then

Set DataGrid1.DataSource = Adodc1
DataGrid1.Enabled = True
Adodc1.ConnectionString = Cnn
Adodc1.RecordSource = "Select * From TabClientes where(UPPER(NomeCliente)) like'" & txtletra.Text & "' Order By NomeCliente"
Adodc1.Refresh

Else
MsgBox "Não foi encontrado nenhum nome iniciando com a letra " & txtletra.Text, vbInformation, " Atenção!"
txtletra.Text = ""
txtletra.SetFocus
Exit Sub
End If
End If

Se o restante estiver correto ficaria assim colocando o UPPER antes do nome do campo
MAICONLS 28/07/2005 13:18:05
#96413
Mesmo assim não funcionou...Putz..ਠuma droga mesmo..
Página 1 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas