USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Filtro FlexGrid
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 21/03/2009 09:39 hs            
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,Quantidade,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,Quantidade,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,Quantidade,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,Quantidade,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,Quantidade,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,Quantidade,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?
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 23/03/2009 21:32 hs            
Voce já tentou usar And ao invés de Or  ???
 
.Source = "SELECT [Código],[Descrição],Unidade,[Localização1],[Localização2],[Localização3],Tipo,Quantidade,Unitario FROM Localizacao Where Tipo <> 'MATERIAL ELÉTRICO' and Tipo <> 'MATERIAL ELETRÔNICO' ORDER BY [Descrição]"

 

vlu//


     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página