Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Filtros vinculados em listview com BD Access

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Anderson Rafael
Colaborador
Colaborador
Mensagens: 28
Registrado em: Seg Mai 14, 2018 11:09 am

Filtros vinculados em listview com BD Access

Mensagem por Anderson Rafael »

Olá meus caros amigos!
Venho aqui pois estou com uma dúvida tremenda e não consigo resolver.
Estou utilizando o modelo de cadastro com banco de dados em access...
Na parte da pesquisa tenho vários campos para filtros e buscar os dados para exibir no listview, são eles: Cliente, Produto, Municipio, Pedido e Status.
Já possuo um código no método change do campo que filtra na medida em que vai escrevendo. Cada filtro funciona indepentende, se eu digitar "x cliente" no Cliente ele vai me dar todos "x cliente" em Cliente, assim como se eu pesquisar o "x produto" em produto vai acontecer o mesmo, até aí tudo bem, porém eles não trabalham vinculados, não consigo fazer uma pesquisa para descobrir o "x produto" que o "x cliente" comprou, o que eu preciso é os filtros "vinculados", ou seja, na pratica seria, ao digitar "x cliente" no campo Cliente ele exiba todos "x clientes" normalmente, e em seguida, com o campo Cliente com o valor "x cliente", digitar o "x produto" no campo produto, e ele filtre aquele "x produto" que o "x cliente" tem.
Um pouco confuso mas espero que entendam... Segue o código de todo frmPesquisa:

Código: Selecionar todos


Public ProcurarPor As String
Public OrdenarPor As String
Public Ordem As String
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub btnCadastro_Click()
Unload Me
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Sub cboOrdem_Change()
    Select Case cboOrdem.ListIndex
        Case 0
            Ordem = "DESC"
        Case 1
            Ordem = "ASC"
    End Select
    CarregaDados
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub cboOrdenarPor_Change()
    CarregaDados
End Sub

-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
    Me.txtCliente.Text = ""
    Me.txtProduto.Text = ""
    Me.txtMunicipio.Text = ""
    Me.txtPedido.Text = ""
    Me.cboPendente.ListIndex = 0
    Me.txtDatIni.Text = ""
    Me.txtDatFim.Text = ""
    Me.txtIniDat.Text = ""
    Me.txtFimDat.Text = ""
    cboOrdenarPor.ListIndex = 0
    cboOrdem.ListIndex = 1
    cboPendente.Text = ""
    Call Soma1
    Call Soma2
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub lstLista_Dblclick()
    With frmCadastro
        .sql = "SELECT * FROM Fornecedores "
        .sql = .sql & " WHERE Pedido = " & lstLista.SelectedItem
        Set .banco = New ADODB.Recordset
        .cx.Conectar
        .banco.Open .sql, .cx.Conn, adOpenKeyset, adLockOptimistic
        Call .CarregaRegistros
        .Indice = Id
        .lblIndice.Caption = Id
        .lblTotal.Caption = Total
    Set .banco = Nothing
    .cx.Desconectar
    End With
    Unload Me
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub CarregaDados()
Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String
With Me.lstLista
.ListItems.Clear
sql = "SELECT * FROM Fornecedores "
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic
Dim i As Integer
For i = 0 To banco.RecordCount - 1
If Not IsNull(banco(0)) Then
.ListItems.Add 1, , banco(0)
If Not IsNull(banco(1)) Then .ListItems(1).ListSubItems.Add 1, , banco(1) Else .ListItems(1).ListSubItems.Add 1, , ""
If Not IsNull(banco(31)) Then .ListItems(1).ListSubItems.Add 2, , banco(31) Else .ListItems(1).ListSubItems.Add 2, , ""
If Not IsNull(banco(32)) Then .ListItems(1).ListSubItems.Add 3, , banco(32) Else .ListItems(1).ListSubItems.Add 3, , ""
If Not IsNull(banco(36)) Then .ListItems(1).ListSubItems.Add 4, , banco(36) Else .ListItems(1).ListSubItems.Add 4, , ""
If Not IsNull(banco(2)) Then .ListItems(1).ListSubItems.Add 5, , banco(2) Else .ListItems(1).ListSubItems.Add 5, , ""
If Not IsNull(banco(3)) Then .ListItems(1).ListSubItems.Add 6, , banco(3) Else .ListItems(1).ListSubItems.Add 6, , ""
If Not IsNull(banco(13)) Then .ListItems(1).ListSubItems.Add 7, , banco(13) Else .ListItems(1).ListSubItems.Add 7, , ""
If .ListItems(1).ListSubItems.Add(8, , (banco(9))) = "11/11/1111" Then
    .ListItems(1).ListSubItems.Add 8, , ""
Else
    If Not IsNull(banco(9)) Then .ListItems(1).ListSubItems.Add 8, , banco(9) Else .ListItems(1).ListSubItems.Add 8, , ""
End If
If .ListItems(1).ListSubItems.Add(9, , (banco(8))) = "0" Then
    .ListItems(1).ListSubItems.Add 9, , ""
Else
    If Not IsNull(banco(8)) Then .ListItems(1).ListSubItems.Add 9, , banco(8) Else .ListItems(1).ListSubItems.Add 9, , ""
End If
If .ListItems(1).ListSubItems.Add(10, , FormatCurrency(banco(10))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 10, , ""
Else
    If Not IsNull(banco(10)) Then .ListItems(1).ListSubItems.Add 10, , FormatCurrency(banco(10)) Else .ListItems(1).ListSubItems.Add 10, , ""
End If
If .ListItems(1).ListSubItems.Add(11, , FormatCurrency(banco(11))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 11, , ""
Else
    If Not IsNull(banco(11)) Then .ListItems(1).ListSubItems.Add 11, , FormatCurrency(banco(11)) Else .ListItems(1).ListSubItems.Add 11, , ""
End If
If Not IsNull(banco(12)) Then .ListItems(1).ListSubItems.Add 12, , banco(12) Else .ListItems(1).ListSubItems.Add 12, , ""
If Not IsNull(banco(40)) Then .ListItems(1).ListSubItems.Add 13, , banco(40) Else .ListItems(1).ListSubItems.Add 13, , ""
End If
banco.MoveNext
Next i
Set banco = Nothing
cx.Desconectar
End With
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub txtCliente_Change()
Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String
OrdenarPor = Me.cboOrdenarPor.Text
With Me.lstLista
.ListItems.Clear
sql = "SELECT * FROM Fornecedores "
sql = sql & " WHERE Cliente" & " LIKE '%" & Me.txtCliente.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic
Dim i As Integer
For i = 0 To banco.RecordCount - 1
If Not IsNull(banco(0)) Then
.ListItems.Add 1, , banco(0)
If Not IsNull(banco(1)) Then .ListItems(1).ListSubItems.Add 1, , banco(1) Else .ListItems(1).ListSubItems.Add 1, , ""
If Not IsNull(banco(31)) Then .ListItems(1).ListSubItems.Add 2, , banco(31) Else .ListItems(1).ListSubItems.Add 2, , ""
If Not IsNull(banco(32)) Then .ListItems(1).ListSubItems.Add 3, , banco(32) Else .ListItems(1).ListSubItems.Add 3, , ""
If Not IsNull(banco(36)) Then .ListItems(1).ListSubItems.Add 4, , banco(36) Else .ListItems(1).ListSubItems.Add 4, , ""
If Not IsNull(banco(2)) Then .ListItems(1).ListSubItems.Add 5, , banco(2) Else .ListItems(1).ListSubItems.Add 5, , ""
If Not IsNull(banco(3)) Then .ListItems(1).ListSubItems.Add 6, , banco(3) Else .ListItems(1).ListSubItems.Add 6, , ""
If Not IsNull(banco(13)) Then .ListItems(1).ListSubItems.Add 7, , banco(13) Else .ListItems(1).ListSubItems.Add 7, , ""
If .ListItems(1).ListSubItems.Add(8, , (banco(9))) = "11/11/1111" Then
    .ListItems(1).ListSubItems.Add 8, , ""
Else
    If Not IsNull(banco(9)) Then .ListItems(1).ListSubItems.Add 8, , banco(9) Else .ListItems(1).ListSubItems.Add 8, , ""
End If
If .ListItems(1).ListSubItems.Add(9, , (banco(8))) = "0" Then
    .ListItems(1).ListSubItems.Add 9, , ""
Else
    If Not IsNull(banco(8)) Then .ListItems(1).ListSubItems.Add 9, , banco(8) Else .ListItems(1).ListSubItems.Add 9, , ""
End If
If .ListItems(1).ListSubItems.Add(10, , FormatCurrency(banco(10))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 10, , ""
Else
    If Not IsNull(banco(10)) Then .ListItems(1).ListSubItems.Add 10, , FormatCurrency(banco(10)) Else .ListItems(1).ListSubItems.Add 10, , ""
End If
If .ListItems(1).ListSubItems.Add(11, , FormatCurrency(banco(11))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 11, , ""
Else
    If Not IsNull(banco(11)) Then .ListItems(1).ListSubItems.Add 11, , FormatCurrency(banco(11)) Else .ListItems(1).ListSubItems.Add 11, , ""
End If
If Not IsNull(banco(12)) Then .ListItems(1).ListSubItems.Add 12, , banco(12) Else .ListItems(1).ListSubItems.Add 12, , ""
If Not IsNull(banco(40)) Then .ListItems(1).ListSubItems.Add 13, , banco(40) Else .ListItems(1).ListSubItems.Add 13, , ""
End If
banco.MoveNext
Next i
Set banco = Nothing
cx.Desconectar
End With
Call Soma1
Call Soma2
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub cboPendente_Change()
Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String
OrdenarPor = Me.cboOrdenarPor.Text
With Me.lstLista
.ListItems.Clear
sql = "SELECT * FROM Fornecedores "
sql = sql & " WHERE Status" & " LIKE '%" & Me.cboPendente.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic
Dim i As Integer
For i = 0 To banco.RecordCount - 1
If Not IsNull(banco(0)) Then
.ListItems.Add 1, , banco(0)
If Not IsNull(banco(1)) Then .ListItems(1).ListSubItems.Add 1, , banco(1) Else .ListItems(1).ListSubItems.Add 1, , ""
If Not IsNull(banco(31)) Then .ListItems(1).ListSubItems.Add 2, , banco(31) Else .ListItems(1).ListSubItems.Add 2, , ""
If Not IsNull(banco(32)) Then .ListItems(1).ListSubItems.Add 3, , banco(32) Else .ListItems(1).ListSubItems.Add 3, , ""
If Not IsNull(banco(36)) Then .ListItems(1).ListSubItems.Add 4, , banco(36) Else .ListItems(1).ListSubItems.Add 4, , ""
If Not IsNull(banco(2)) Then .ListItems(1).ListSubItems.Add 5, , banco(2) Else .ListItems(1).ListSubItems.Add 5, , ""
If Not IsNull(banco(3)) Then .ListItems(1).ListSubItems.Add 6, , banco(3) Else .ListItems(1).ListSubItems.Add 6, , ""
If Not IsNull(banco(13)) Then .ListItems(1).ListSubItems.Add 7, , banco(13) Else .ListItems(1).ListSubItems.Add 7, , ""
If .ListItems(1).ListSubItems.Add(8, , (banco(9))) = "11/11/1111" Then
    .ListItems(1).ListSubItems.Add 8, , ""
Else
    If Not IsNull(banco(9)) Then .ListItems(1).ListSubItems.Add 8, , banco(9) Else .ListItems(1).ListSubItems.Add 8, , ""
End If
If .ListItems(1).ListSubItems.Add(9, , (banco(8))) = "0" Then
    .ListItems(1).ListSubItems.Add 9, , ""
Else
    If Not IsNull(banco(8)) Then .ListItems(1).ListSubItems.Add 9, , banco(8) Else .ListItems(1).ListSubItems.Add 9, , ""
End If
If .ListItems(1).ListSubItems.Add(10, , FormatCurrency(banco(10))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 10, , ""
Else
    If Not IsNull(banco(10)) Then .ListItems(1).ListSubItems.Add 10, , FormatCurrency(banco(10)) Else .ListItems(1).ListSubItems.Add 10, , ""
End If
If .ListItems(1).ListSubItems.Add(11, , FormatCurrency(banco(11))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 11, , ""
Else
    If Not IsNull(banco(11)) Then .ListItems(1).ListSubItems.Add 11, , FormatCurrency(banco(11)) Else .ListItems(1).ListSubItems.Add 11, , ""
End If
If Not IsNull(banco(12)) Then .ListItems(1).ListSubItems.Add 12, , banco(12) Else .ListItems(1).ListSubItems.Add 12, , ""
If Not IsNull(banco(40)) Then .ListItems(1).ListSubItems.Add 13, , banco(40) Else .ListItems(1).ListSubItems.Add 13, , ""
End If
banco.MoveNext
Next i
Set banco = Nothing
cx.Desconectar
End With
Call Soma1
Call Soma2
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub txtMunicipio_Change()
Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String
OrdenarPor = Me.cboOrdenarPor.Text
With Me.lstLista
.ListItems.Clear
sql = "SELECT * FROM Fornecedores "
sql = sql & " WHERE Municipio" & " LIKE '%" & Me.txtMunicipio.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic
Dim i As Integer
For i = 0 To banco.RecordCount - 1
If Not IsNull(banco(0)) Then
.ListItems.Add 1, , banco(0)
If Not IsNull(banco(1)) Then .ListItems(1).ListSubItems.Add 1, , banco(1) Else .ListItems(1).ListSubItems.Add 1, , ""
If Not IsNull(banco(31)) Then .ListItems(1).ListSubItems.Add 2, , banco(31) Else .ListItems(1).ListSubItems.Add 2, , ""
If Not IsNull(banco(32)) Then .ListItems(1).ListSubItems.Add 3, , banco(32) Else .ListItems(1).ListSubItems.Add 3, , ""
If Not IsNull(banco(36)) Then .ListItems(1).ListSubItems.Add 4, , banco(36) Else .ListItems(1).ListSubItems.Add 4, , ""
If Not IsNull(banco(2)) Then .ListItems(1).ListSubItems.Add 5, , banco(2) Else .ListItems(1).ListSubItems.Add 5, , ""
If Not IsNull(banco(3)) Then .ListItems(1).ListSubItems.Add 6, , banco(3) Else .ListItems(1).ListSubItems.Add 6, , ""
If Not IsNull(banco(13)) Then .ListItems(1).ListSubItems.Add 7, , banco(13) Else .ListItems(1).ListSubItems.Add 7, , ""
If .ListItems(1).ListSubItems.Add(8, , (banco(9))) = "11/11/1111" Then
    .ListItems(1).ListSubItems.Add 8, , ""
Else
    If Not IsNull(banco(9)) Then .ListItems(1).ListSubItems.Add 8, , banco(9) Else .ListItems(1).ListSubItems.Add 8, , ""
End If
If .ListItems(1).ListSubItems.Add(9, , (banco(8))) = "0" Then
    .ListItems(1).ListSubItems.Add 9, , ""
Else
    If Not IsNull(banco(8)) Then .ListItems(1).ListSubItems.Add 9, , banco(8) Else .ListItems(1).ListSubItems.Add 9, , ""
End If
If .ListItems(1).ListSubItems.Add(10, , FormatCurrency(banco(10))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 10, , ""
Else
    If Not IsNull(banco(10)) Then .ListItems(1).ListSubItems.Add 10, , FormatCurrency(banco(10)) Else .ListItems(1).ListSubItems.Add 10, , ""
End If
If .ListItems(1).ListSubItems.Add(11, , FormatCurrency(banco(11))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 11, , ""
Else
    If Not IsNull(banco(11)) Then .ListItems(1).ListSubItems.Add 11, , FormatCurrency(banco(11)) Else .ListItems(1).ListSubItems.Add 11, , ""
End If
If Not IsNull(banco(12)) Then .ListItems(1).ListSubItems.Add 12, , banco(12) Else .ListItems(1).ListSubItems.Add 12, , ""
If Not IsNull(banco(40)) Then .ListItems(1).ListSubItems.Add 13, , banco(40) Else .ListItems(1).ListSubItems.Add 13, , ""
End If
banco.MoveNext
Next i
Set banco = Nothing
cx.Desconectar
End With
Call Soma1
Call Soma2
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub txtPedido_Change()
Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String
OrdenarPor = Me.cboOrdenarPor.Text
With Me.lstLista
.ListItems.Clear
sql = "SELECT * FROM Fornecedores "
sql = sql & " WHERE Pedido" & " LIKE '%" & Me.txtPedido.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic
Dim i As Integer
For i = 0 To banco.RecordCount - 1
If Not IsNull(banco(0)) Then
.ListItems.Add 1, , banco(0)
If Not IsNull(banco(1)) Then .ListItems(1).ListSubItems.Add 1, , banco(1) Else .ListItems(1).ListSubItems.Add 1, , ""
If Not IsNull(banco(31)) Then .ListItems(1).ListSubItems.Add 2, , banco(31) Else .ListItems(1).ListSubItems.Add 2, , ""
If Not IsNull(banco(32)) Then .ListItems(1).ListSubItems.Add 3, , banco(32) Else .ListItems(1).ListSubItems.Add 3, , ""
If Not IsNull(banco(36)) Then .ListItems(1).ListSubItems.Add 4, , banco(36) Else .ListItems(1).ListSubItems.Add 4, , ""
If Not IsNull(banco(2)) Then .ListItems(1).ListSubItems.Add 5, , banco(2) Else .ListItems(1).ListSubItems.Add 5, , ""
If Not IsNull(banco(3)) Then .ListItems(1).ListSubItems.Add 6, , banco(3) Else .ListItems(1).ListSubItems.Add 6, , ""
If Not IsNull(banco(13)) Then .ListItems(1).ListSubItems.Add 7, , banco(13) Else .ListItems(1).ListSubItems.Add 7, , ""
If .ListItems(1).ListSubItems.Add(8, , (banco(9))) = "11/11/1111" Then
    .ListItems(1).ListSubItems.Add 8, , ""
Else
    If Not IsNull(banco(9)) Then .ListItems(1).ListSubItems.Add 8, , banco(9) Else .ListItems(1).ListSubItems.Add 8, , ""
End If
If .ListItems(1).ListSubItems.Add(9, , (banco(8))) = "0" Then
    .ListItems(1).ListSubItems.Add 9, , ""
Else
    If Not IsNull(banco(8)) Then .ListItems(1).ListSubItems.Add 9, , banco(8) Else .ListItems(1).ListSubItems.Add 9, , ""
End If
If .ListItems(1).ListSubItems.Add(10, , FormatCurrency(banco(10))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 10, , ""
Else
    If Not IsNull(banco(10)) Then .ListItems(1).ListSubItems.Add 10, , FormatCurrency(banco(10)) Else .ListItems(1).ListSubItems.Add 10, , ""
End If
If .ListItems(1).ListSubItems.Add(11, , FormatCurrency(banco(11))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 11, , ""
Else
    If Not IsNull(banco(11)) Then .ListItems(1).ListSubItems.Add 11, , FormatCurrency(banco(11)) Else .ListItems(1).ListSubItems.Add 11, , ""
End If
If Not IsNull(banco(12)) Then .ListItems(1).ListSubItems.Add 12, , banco(12) Else .ListItems(1).ListSubItems.Add 12, , ""
If Not IsNull(banco(40)) Then .ListItems(1).ListSubItems.Add 13, , banco(40) Else .ListItems(1).ListSubItems.Add 13, , ""
End If
banco.MoveNext
Next i
Set banco = Nothing
cx.Desconectar
End With
Call Soma1
Call Soma2
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub txtProduto_Change()
Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String
OrdenarPor = Me.cboOrdenarPor.Text
With Me.lstLista
.ListItems.Clear
sql = "SELECT * FROM Fornecedores "
sql = sql & " WHERE Produto" & " LIKE '%" & Me.txtProduto.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic
Dim i As Integer
For i = 0 To banco.RecordCount - 1
If Not IsNull(banco(0)) Then
.ListItems.Add 1, , banco(0)
If Not IsNull(banco(1)) Then .ListItems(1).ListSubItems.Add 1, , banco(1) Else .ListItems(1).ListSubItems.Add 1, , ""
If Not IsNull(banco(31)) Then .ListItems(1).ListSubItems.Add 2, , banco(31) Else .ListItems(1).ListSubItems.Add 2, , ""
If Not IsNull(banco(32)) Then .ListItems(1).ListSubItems.Add 3, , banco(32) Else .ListItems(1).ListSubItems.Add 3, , ""
If Not IsNull(banco(36)) Then .ListItems(1).ListSubItems.Add 4, , banco(36) Else .ListItems(1).ListSubItems.Add 4, , ""
If Not IsNull(banco(2)) Then .ListItems(1).ListSubItems.Add 5, , banco(2) Else .ListItems(1).ListSubItems.Add 5, , ""
If Not IsNull(banco(3)) Then .ListItems(1).ListSubItems.Add 6, , banco(3) Else .ListItems(1).ListSubItems.Add 6, , ""
If Not IsNull(banco(13)) Then .ListItems(1).ListSubItems.Add 7, , banco(13) Else .ListItems(1).ListSubItems.Add 7, , ""
If .ListItems(1).ListSubItems.Add(8, , (banco(9))) = "11/11/1111" Then
    .ListItems(1).ListSubItems.Add 8, , ""
Else
    If Not IsNull(banco(9)) Then .ListItems(1).ListSubItems.Add 8, , banco(9) Else .ListItems(1).ListSubItems.Add 8, , ""
End If
If .ListItems(1).ListSubItems.Add(9, , (banco(8))) = "0" Then
    .ListItems(1).ListSubItems.Add 9, , ""
Else
    If Not IsNull(banco(8)) Then .ListItems(1).ListSubItems.Add 9, , banco(8) Else .ListItems(1).ListSubItems.Add 9, , ""
End If
If .ListItems(1).ListSubItems.Add(10, , FormatCurrency(banco(10))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 10, , ""
Else
    If Not IsNull(banco(10)) Then .ListItems(1).ListSubItems.Add 10, , FormatCurrency(banco(10)) Else .ListItems(1).ListSubItems.Add 10, , ""
End If
If .ListItems(1).ListSubItems.Add(11, , FormatCurrency(banco(11))) = "R$ 0,00" Then
    .ListItems(1).ListSubItems.Add 11, , ""
Else
    If Not IsNull(banco(11)) Then .ListItems(1).ListSubItems.Add 11, , FormatCurrency(banco(11)) Else .ListItems(1).ListSubItems.Add 11, , ""
End If
If Not IsNull(banco(12)) Then .ListItems(1).ListSubItems.Add 12, , banco(12) Else .ListItems(1).ListSubItems.Add 12, , ""
If Not IsNull(banco(40)) Then .ListItems(1).ListSubItems.Add 13, , banco(40) Else .ListItems(1).ListSubItems.Add 13, , ""
End If
banco.MoveNext
Next i
Set banco = Nothing
cx.Desconectar
End With
Call Soma1
Call Soma2
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub Soma1()
Dim i As Integer
Dim soma As Double
For i = 1 To lstLista.ListItems.Count
If lstLista.ListItems.Item(i).SubItems(9) = "" Then
For u = 1 To lstLista.ListItems.Count
Next u
Else
soma = soma + lstLista.ListItems.Item(i).SubItems(9)
End If
Next i
Me.txtSoma1 = soma
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub Soma2()
Dim i As Integer
Dim soma As Double
For i = 1 To lstLista.ListItems.Count
If lstLista.ListItems.Item(i).SubItems(11) = "" Then
For u = 1 To lstLista.ListItems.Count
Next u
Else
soma = soma + lstLista.ListItems.Item(i).SubItems(11)
End If
Next i
Me.txtSoma2 = soma
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub txtSoma1_Change()
Me.txtSoma1.Locked = True
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub txtSoma2_Change()
Me.txtSoma2.Locked = True
txtSoma2 = Format(txtSoma2, "R$ #,##0.00")
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
    cboPendente.List = Array("", "ENTREGUE", "PENDENTE")
    With cboOrdenarPor
        .AddItem "Pedido"
        .AddItem "Cliente"
        .AddItem "Municipio"
        .AddItem "Produto"
        .AddItem "Status"
        .AddItem "Data"
        .AddItem "Entrega"
        .AddItem "Peças"
        .AddItem "Preço"
        .AddItem "Total"
        .ListIndex = 0
    End With
    With cboOrdem
        .AddItem "Crescente"
        .AddItem "Decrescente"
        .ListIndex = 1
    End With
    With Me.lstLista
        .FullRowSelect = True
        .View = lvwReport
        .Gridlines = True
        .Font.Size = 10
        .ColumnHeaders.Add Text:="Pedido", Width:=35
        .ColumnHeaders.Add Text:="Cliente", Width:=100, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Contato", Width:=60, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Fone", Width:=85, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Municipio", Width:=80, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Produto", Width:=170, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Status", Width:=60, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Data Pedido", Width:=70, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Data Entrega", Width:=70, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Total pçs", Width:=50, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Preço p/pç", Width:=70, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Valor Total", Width:=80, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Obs. de Pgto.", Width:=100, Alignment:=lvwColumnCenter
        .ColumnHeaders.Add Text:="Quem Fez", Width:=60, Alignment:=lvwColumnCenter
    End With
        'atualiza o label de mensagens
    If Me.lstLista.ListItems.Count <= 0 Then
        lblMensagens.Caption = Me.lstLista.ListItems.Count & " registros encontrados"
    Else
        lblMensagens.Caption = Me.lstLista.ListItems.Count - 1 & " registros encontrados"
    End If
    Call Soma1
    Call Soma2
End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Filtros vinculados em listview com BD Access

Mensagem por Reinaldo »

Creio que o modelo existente em https://www.tomasvasquez.com.br/forum/v ... Acidade%2A efetua o que deseja


Anderson Rafael
Colaborador
Colaborador
Mensagens: 28
Registrado em: Seg Mai 14, 2018 11:09 am

Re: Filtros vinculados em listview com BD Access

Mensagem por Anderson Rafael »

Olá Reinaldo, muito obrigado pela resposta!
Porém este tópico que passou não soluciona meu problema, pois ali estão usando um banco de dados no excel, o que não se encaixa no meu caso, que estou usando o banco de dados em access...


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Filtros vinculados em listview com BD Access

Mensagem por Reinaldo »

A estrutura de conexão com banco de dados e a mesma, bem como a montagem da string/strutura sql


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Anderson Rafael
Colaborador
Colaborador
Mensagens: 28
Registrado em: Seg Mai 14, 2018 11:09 am

Re: Filtros vinculados em listview com BD Access

Mensagem por Anderson Rafael »

Reinaldo, demorou, mas consegui entender, Muito Obrigado!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder