Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, meu código para filtrar e preencher o Grid de acordo com parametro da query:
Private Sub CmdFiltrar_Click()
If Filtrar(1).Value Then
OpValor = 1
PreencheGrid
ElseIf Filtrar(2).Value Then
OpValor = 2
PreencheGrid
Else
MsgBox "Selecione um tipo de opção para filtrar"
End If
End Sub
Private Sub PreencheGrid()
Grid.Redraw = False
Grid.Rows = 1
Dim Mostra As String
Dim Row As Integer
Set TbLoc = New ADODB.Recordset
If TbLoc.State = 1 Then TbLoc.Close
With TbLoc
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.LockType = adLockPessimistic
If Combo3.Text = "" Then
Mostra = MsgBox("Escolha um tipo de pesquisa para filtrar.", vbInformation, "Pesquisa: Sobra de Contrato")
Exit Sub
End If
If OpValor = 1 Then
Select Case Combo3
Case "Exibir tudo"
.Source = "SELECT [Código],[Descrição],Unidade,[Localização1],[Localização2],[Localização3],Tipo,Q
uantidade,Unitario FROM Localizacao Where Tipo = 'MATERIAL ELÉTRICO' or Tipo = 'MATERIAL ELETRÔNICO' ORDER BY [Descrição]"
Case "Exibir com saldo"
.Source = "SELECT [Código],[Descrição],Unidade,[Localização1],[Localização2],[Localização3],Tipo,Q
uantidade,Unitario FROM Localizacao Where Quantidade >'0' AND(Tipo = 'MATERIAL ELÉTRICO' or Tipo = 'MATERIAL ELETRÔNICO') ORDER BY [Descrição]"
Case "Exibir saldo zero"
.Source = "SELECT [Código],[Descrição],Unidade,[Localização1],[Localização2],[Localização3],Tipo,Q
uantidade,Unitario FROM Localizacao Where Quantidade ='0' AND(Tipo = 'MATERIAL ELÉTRICO' or Tipo = 'MATERIAL ELETRÔNICO') ORDER BY [Descrição]"
End Select
ElseIf OpValor = 2 Then
Select Case Combo3
Case "Exibir tudo"
.Source = "SELECT [Código],[Descrição],Unidade,[Localização1],[Localização2],[Localização3],Tipo,Q
uantidade,Unitario FROM Localizacao Where Tipo <> 'MATERIAL ELÉTRICO' or Tipo <> 'MATERIAL ELETRÔNICO' ORDER BY [Descrição]"
Case "Exibir com saldo"
.Source = "SELECT [Código],[Descrição],Unidade,[Localização1],[Localização2],[Localização3],Tipo,Q
uantidade,Unitario FROM Localizacao Where Quantidade >'0' AND(Tipo <> 'MATERIAL ELÉTRICO' or Tipo <> 'MATERIAL ELETRÔNICO') ORDER BY [Descrição]"
Case "Exibir saldo zero"
.Source = "SELECT [Código],[Descrição],Unidade,[Localização1],[Localização2],[Localização3],Tipo,Q
uantidade,Unitario FROM Localizacao Where Quantidade ='0' AND(Tipo <> 'MATERIAL ELÉTRICO' or Tipo <> 'MATERIAL ELETRÔNICO') ORDER BY [Descrição]"
End Select
ElseIf OpValor <> 1 And OpValor <> 2 Then
.Source = "SELECT * FROM Localizacao ORDER BY Descrição"
End If
.ActiveConnection = BancoSobra
.Open
If .BOF = True And .EOF = True Then Exit Sub
Grid.Rows = .RecordCount + 1
'Row = 0
Do Until .EOF = True
Row = Row + 1
Grid.Col = 0
Grid.Row = Row
Grid.TextMatrix(Row, 1) = !Código
Grid.TextMatrix(Row, 2) = !Descrição
Grid.TextMatrix(Row, 3) = !Unidade
Grid.TextMatrix(Row, 4) = !Quantidade
Grid.TextMatrix(Row, 5) = Nnull(!Localização1)
Grid.TextMatrix(Row, 6) = Nnull(!Localização2)
Grid.TextMatrix(Row, 7) = Nnull(!Localização3)
TbLoc.MoveNext
Loop
End With
Grid.Redraw = True
Next I
Grid.Row = 1
Grid.Row = Grid.FixedRows
Grid.TopRow = Grid.FixedRows
SendKeys "^{Home}"
With Combo3
.Clear
.AddItem "Exibir tudo"
.AddItem "Exibir com saldo"
.AddItem "Exibir saldo zero"
End With
End Sub
Não sei o que esta acontecendo pois o (OR) e (AND) na instrução não esta fazendo efeito corretamente. Se eu mando carregar somente os (MATERIAL ELÉTRICO e MATERIAL ELETRÔNICO), carrega somete eles, agora se eu mando carregar os diferentes deles, não funciona, ou seja, carrega tudo novamente. Onde estou errando?
Carregando comentários...