Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Irenko

Filtro FlexGrid

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.