PESQUISAR DBGRID

VENENOSOBR 20/10/2009 16:36:12
#325833
Ola a todos sou iniciante VB6 estou com uma duvida, como faço para fazer uma perquisa combox onde dentro dele eu posso selecionar a tabela Funcionario e formecedor para pesquisar. E digitar text o dado a ser pesquisado.

Este e o codigo que eu estou usando para conectar o BD ao dbgrip

Private cn As ADODB.Connection
Private RS As ADODB.Recordset

Private Sub Conectar()
Set cn = New ADODB.Connection
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\SpyChip.mdb[Ô] & [Ô];Persist Security Info=False;[Ô]
cn.CursorLocation = adUseClient
cn.Open
End Sub

Private Sub IniciaGrid()
Dim SQL As String
Set RS = New ADODB.Recordset
SQL = [Ô]select * from Funcionario[Ô]
RS.Open SQL, cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = RS
DataGrid1.Refresh
End Sub

Private Sub Form_Load()
Conectar
IniciaGrid
end sub

Private Sub Text1_Change()
If cboCampo = [Ô]Nome[Ô] Then
If cboRelacionamento = [Ô]Aprox.[Ô] Then
SQL = [Ô]select * from Funcionario[Ô]
SQL = [Ô]select ID, Nome from [Ô] & _
[Ô]Funcionario where Nome like [ô][Ô] & Trim$(Text1) & [Ô]*[ô][Ô]
Else
SQL = [Ô]select * from Funcionario[Ô]
SQL = [Ô]select ID, Nome from [Ô] & _
[Ô]Funcionario where Nome = [ô][Ô] & Trim$(Text1) & [Ô][ô][Ô]
End If
End If
DataGrid1.Refresh
End Sub

Não esta dando nem um erro.
Desde já Agradeço
ALVAROVB2009 21/10/2009 08:48:07
#325906
VENENOSOBR bom dia

Pelo que estou vendo, faltou você executar o comando SQL no data, você apenas montou o SQL más não o executou

Por isso que não deu nenhum erro, pois quando você deu o Refresh, ele atualizou o que estava no data, ou seja [Ô]select * from[Ô]

Set RS = New ADODB.Recordset
RS.Open SQL, cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = RS
DataGrid1.Refresh

Acho que isso pode te ajudar
VENENOSOBR 21/10/2009 16:37:19
#325974
[txt-size=2]Boa Tarde Alvaro
Agradeço pela a sua ajuda pos, sou iniciante no VB.
Então o que esta contecendo q não esta filtrando o registro que estou digitando ele aparece todos.
Sabe me dizer como posso resolver isto???
Fica na Paz[/txt-size]
ALVAROVB2009 22/10/2009 22:46:43
#326124
Resposta escolhida
VENENOSOBR
A Paz meu querido, você já tentou colocar esse comando que falei para você?


Citação:

ALVAROVB2009 escreveu:
VENENOSOBR bom dia

Pelo que estou vendo, faltou você executar o comando SQL no data, você apenas montou o SQL más não o executou

Por isso que não deu nenhum erro, pois quando você deu o Refresh, ele atualizou o que estava no data, ou seja [Ô]select * from[Ô]

Set RS = New ADODB.Recordset
RS.Open SQL, cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = RS
DataGrid1.Refresh

Acho que isso pode te ajudar



Ajustando o seu comando, ficaria algo assim
Private Sub Text1_Change()
If cboCampo = [Ô]Nome[Ô] Then
If cboRelacionamento = [Ô]Aprox.[Ô] Then
SQL = [Ô]select * from Funcionario[Ô]
SQL = [Ô]select ID, Nome from [Ô] & _
[Ô]Funcionario where Nome like [ô][Ô] & Trim$(Text1) & [Ô]*[ô][Ô]
Else
SQL = [Ô]select * from Funcionario[Ô]
SQL = [Ô]select ID, Nome from [Ô] & _
[Ô]Funcionario where Nome = [ô][Ô] & Trim$(Text1) & [Ô][ô][Ô]
End If
End If
Set RS = New ADODB.Recordset
RS.Open SQL, cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = RS
DataGrid1.Refresh
End Sub

Acho que isso pode te ajudar
Tópico encerrado , respostas não são mais permitidas