FILTRO NO MSFLEXGRID
tenho um msflexgrid que pega valores da tabela do access, este formulario tem um txtbox que vc pode filtar o msflexgrid. até ai tudo bem funcionando
tentei acresentar mais um txtbox para filtar outro dado e deu certo, mas agora querro fazer com um terceiro txtbox e não deu
o codigo é o seguite:
evento pra carregar o msflexgrid:
Dim Rs As New adodb.Recordset
Dim sql As String
Dim Criterio As String
Dim Criterio1 As String
Dim Criterio2 As String
grdPesquisa.TextMatrix(0, 0) = [Ô]op[Ô]
grdPesquisa.TextMatrix(0, 1) = [Ô]data[Ô]
grdPesquisa.TextMatrix(0, 2) = [Ô]codigo[Ô]
grdPesquisa.TextMatrix(0, 3) = [Ô]descrição[Ô]
grdPesquisa.TextMatrix(0, 4) = [Ô]quantidade[Ô]
grdPesquisa.TextMatrix(0, 5) = [Ô]localização[Ô]
grdPesquisa.TextMatrix(0, 6) = [Ô]dataproduzida[Ô]
Criterio = Chr$(39) & txtpesquisaop & [Ô]%[Ô] & Chr(39)
Criterio1 = Chr$(39) & txtpesquisadata & [Ô]%[Ô] & Chr(39)
Criterio2 = Chr$(39) & txtpesquisaop & [Ô]%[Ô] & Chr(39)
sql = [Ô]SELECT op, data,codprod,descrição,quantidade,localização,dataproduzida FROM MOVIMENTOS WHERE MOVIMENTOS.op Like [Ô] & Criterio & [Ô] AND MOVIMENTOS.data Like [Ô] & Criterio1 & [Ô] AND MOVIMENTOS.codprod Like [Ô] & Criterio2 & [Ô] ORDER BY op[Ô]
On Error Resume Next
With Rs
.Open sql, cnSQL, adOpenForwardOnly, adLockReadOnly
If .EOF Then
MsgBox [Ô]Registro não encontrado[Ô], vbExclamation, [Ô]Atenção[Ô]
Limpa
grdPesquisa.TextMatrix(1, 0) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 1) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 2) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 3) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 4) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 5) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 6) = [Ô][Ô]
Else
Limpa
Do Until .EOF
grdPesquisa.AddItem Rs(0) & vbTab & Rs(1) & vbTab & Rs(2) & vbTab & Rs(3) & vbTab & Rs(4) & vbTab & Rs(5) & vbTab & Rs(6)
.MoveNext
Loop
grdPesquisa.RemoveItem 1
End If
.Close
End With
End Sub
evento nos textbox:
Private Sub txtpesquisaop_Change()
txtpesquisaop = UCase(txtpesquisaop)
txtpesquisaop.SelStart = Len(txtpesquisaop)
MontarLista
End Sub
o que não consegui fazer é com que o criterio2 filtre os dados codprod do msflexgrid
o que pode se?
tentei acresentar mais um txtbox para filtar outro dado e deu certo, mas agora querro fazer com um terceiro txtbox e não deu
o codigo é o seguite:
evento pra carregar o msflexgrid:
Dim Rs As New adodb.Recordset
Dim sql As String
Dim Criterio As String
Dim Criterio1 As String
Dim Criterio2 As String
grdPesquisa.TextMatrix(0, 0) = [Ô]op[Ô]
grdPesquisa.TextMatrix(0, 1) = [Ô]data[Ô]
grdPesquisa.TextMatrix(0, 2) = [Ô]codigo[Ô]
grdPesquisa.TextMatrix(0, 3) = [Ô]descrição[Ô]
grdPesquisa.TextMatrix(0, 4) = [Ô]quantidade[Ô]
grdPesquisa.TextMatrix(0, 5) = [Ô]localização[Ô]
grdPesquisa.TextMatrix(0, 6) = [Ô]dataproduzida[Ô]
Criterio = Chr$(39) & txtpesquisaop & [Ô]%[Ô] & Chr(39)
Criterio1 = Chr$(39) & txtpesquisadata & [Ô]%[Ô] & Chr(39)
Criterio2 = Chr$(39) & txtpesquisaop & [Ô]%[Ô] & Chr(39)
sql = [Ô]SELECT op, data,codprod,descrição,quantidade,localização,dataproduzida FROM MOVIMENTOS WHERE MOVIMENTOS.op Like [Ô] & Criterio & [Ô] AND MOVIMENTOS.data Like [Ô] & Criterio1 & [Ô] AND MOVIMENTOS.codprod Like [Ô] & Criterio2 & [Ô] ORDER BY op[Ô]
On Error Resume Next
With Rs
.Open sql, cnSQL, adOpenForwardOnly, adLockReadOnly
If .EOF Then
MsgBox [Ô]Registro não encontrado[Ô], vbExclamation, [Ô]Atenção[Ô]
Limpa
grdPesquisa.TextMatrix(1, 0) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 1) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 2) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 3) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 4) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 5) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 6) = [Ô][Ô]
Else
Limpa
Do Until .EOF
grdPesquisa.AddItem Rs(0) & vbTab & Rs(1) & vbTab & Rs(2) & vbTab & Rs(3) & vbTab & Rs(4) & vbTab & Rs(5) & vbTab & Rs(6)
.MoveNext
Loop
grdPesquisa.RemoveItem 1
End If
.Close
End With
End Sub
evento nos textbox:
Private Sub txtpesquisaop_Change()
txtpesquisaop = UCase(txtpesquisaop)
txtpesquisaop.SelStart = Len(txtpesquisaop)
MontarLista
End Sub
o que não consegui fazer é com que o criterio2 filtre os dados codprod do msflexgrid
o que pode se?
1 - Verifique se está correto o critério (o 1º) e o critério2 (0 3º) usar o mesmo valor ( txtpesquisaop)
2 - Você tem que informar os tipos dos campos. Se o campo for numérico:
2 - Você tem que informar os tipos dos campos. Se o campo for numérico:
Criterio2 = txtpesquisaop & [Ô]%[Ô]
obrigado
realmente copie a linha e não alterei o nome da txtbox
falha minha
obrigado
realmente copie a linha e não alterei o nome da txtbox
falha minha
obrigado
Tópico encerrado , respostas não são mais permitidas