PROBLEMA COM FILTRO NO VB6
Bom dia!
Estou com problema ao filtrar no VB6, vou passar o código e explicarei o que NÃO ocorre como eu planejava...
segue o código:
__________________________________________________ _______________
Dim Criterio As String
Dim Data As String
Dim consql As ADODB.Connection
Dim rec As Recordset
Public Sub Conexão()
Set consql = New ADODB.Connection
Set rec = New ADODB.Recordset
consql.Open [Ô]Provider=SQLOLEDB.1;[Ô] & _
[Ô]Password=(SENHA);[Ô] & _
[Ô]Integrated Security=SSPI;[Ô] & _
[Ô]Persist Security Info=False;[Ô] & _
[Ô]User ID=(USUARIO);[Ô] & _
[Ô]Initial Catalog=(BASEDADOS);[Ô] & _
[Ô]Data Source=(SERVIDOR)[Ô]
End Sub
Public Sub Mostrardados()
Conexão
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO)>0[Ô]
rec.Open Data, consql
Set Me.MSHFlexGrid1.DataSource = rec
End Sub
Private Sub cmdFiltrar_Click()
With MSHFlexGrid1
Criterio = txt1.Text
If Criterio <> [Ô][Ô] Then
rec.Close
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO) LIKE [ô]& Criterio &[ô][Ô]
rec.Open Data
Set .DataSource = rec
Else
cmdFiltrar.Caption = [Ô]Retirar Filtro[Ô]
rec.Close
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO)>0[Ô]
rec.Open
Set .DataSource = rec
End If
End With
End Sub
Private Sub Form_Load()
Mostrardados
End Sub
__________________________________________________ _______________
Então, é o seguinte... o filtro roda como planejado, mais quando um valor no txt1 é inserido para testar o filtro, os campos são [ô]zerados[ô] e aparece apenas o nome do campo.
Estou com problema ao filtrar no VB6, vou passar o código e explicarei o que NÃO ocorre como eu planejava...
segue o código:
__________________________________________________ _______________
Dim Criterio As String
Dim Data As String
Dim consql As ADODB.Connection
Dim rec As Recordset
Public Sub Conexão()
Set consql = New ADODB.Connection
Set rec = New ADODB.Recordset
consql.Open [Ô]Provider=SQLOLEDB.1;[Ô] & _
[Ô]Password=(SENHA);[Ô] & _
[Ô]Integrated Security=SSPI;[Ô] & _
[Ô]Persist Security Info=False;[Ô] & _
[Ô]User ID=(USUARIO);[Ô] & _
[Ô]Initial Catalog=(BASEDADOS);[Ô] & _
[Ô]Data Source=(SERVIDOR)[Ô]
End Sub
Public Sub Mostrardados()
Conexão
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO)>0[Ô]
rec.Open Data, consql
Set Me.MSHFlexGrid1.DataSource = rec
End Sub
Private Sub cmdFiltrar_Click()
With MSHFlexGrid1
Criterio = txt1.Text
If Criterio <> [Ô][Ô] Then
rec.Close
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO) LIKE [ô]& Criterio &[ô][Ô]
rec.Open Data
Set .DataSource = rec
Else
cmdFiltrar.Caption = [Ô]Retirar Filtro[Ô]
rec.Close
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO)>0[Ô]
rec.Open
Set .DataSource = rec
End If
End With
End Sub
Private Sub Form_Load()
Mostrardados
End Sub
__________________________________________________ _______________
Então, é o seguinte... o filtro roda como planejado, mais quando um valor no txt1 é inserido para testar o filtro, os campos são [ô]zerados[ô] e aparece apenas o nome do campo.
Tenta assim:
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO) LIKE [ô][Ô] & Criterio &[Ô][ô][Ô]
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO) LIKE [ô][Ô] & Criterio &[Ô][ô][Ô]
Nada...
Achava que era isso também, já havia alterado mais ocorre o mesmo!
Achava que era isso também, já havia alterado mais ocorre o mesmo!
Tenta assim:
ou
ou
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO) = [Ô] & Criterio
ou
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO) LIKE [Ô] & Criterio
ou
Data = [Ô]SELECT (CAMPO) FROM (TABELA) WHERE (CAMPO) LIKE [Ô] & Criterio & [Ô]%[Ô]
Putz! Obrigadão Roberto...
a opção 1 que vc aconselhou deu perfeitamente no que eu queria, era erro bobo, e eu quebrando a cabeça aqui achando que era outras coisas...
mais uma vez, obrigado
a opção 1 que vc aconselhou deu perfeitamente no que eu queria, era erro bobo, e eu quebrando a cabeça aqui achando que era outras coisas...
mais uma vez, obrigado
Tópico encerrado , respostas não são mais permitidas