Estou tentando efetuar uma conexão de um tabela Sqlite com um Listview vba excel, contudo não obtendo sucesso em pesquisas na internet, alguém poderia me ajudar com este entrave.
O modulo ClassConexão já esta funcionando para todas os formulários onde haja inclusão, exclusão e alteração, contudo quando chego no Listview não consigo resolver a conexão.
MODULO
Código: Selecionar todos
Option Explicit
Global Const PATHDB = "H:\Banco de Dados\"
Global Const DBNAME = "Caixa.DB"
Public total As Long
Public Function Id()
Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim Sql As String
Dim i As Long
Sql = "SELECT * FROM Bancos"
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open Sql, cx.conn, adOpenKeyset, adLockOptimistic
'total = banco.RecordCount
For i = 1 To banco.RecordCount
If banco(0) = BancoPesquisa.lstv.SelectedItem Then
Id = i
Exit For
Else
banco.MoveNext
End If
Next
Set banco = Nothing
cx.Desconectar
End Function
Código: Selecionar todos
Public ProcurarPor As String
Public OrdenarPor As String
Public Ordem As String
Sub cboOrdem_Change()
Select Case cboOrdem.ListIndex
Case 0
Ordem = "DESC"
Case 1
Ordem = "ASC"
End Select
txtPesquisa_Change
End Sub
Private Sub cboOrdenarPor_Change()
txtPesquisa_Change
End Sub
Private Sub chkPesquisa_Click()
txtPesquisa_Change
End Sub
Private Sub lstv_Dblclick()
With CadastroBancos
.sql = "SELECT codigo, banco, codbanco, sigla, competencia, website, e_mail, status, UF, Cidade, Bairro, Unidade, NomeUnidade, TipoUnidade, SR, Endereco, CEP FROM t_bancos"
.sql = .sql & " WHERE codigo = " & lstv.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 lstv_KeyPress(KeyAscii As Integer)
lstv_Dblclick
End Sub
Private Sub txtPesquisa_Change()
Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String
ProcurarPor = Me.cboPesquisarPor.Text
OrdenarPor = Me.cboOrdenarPor.Text
With Me.lstv
.ListItems.Clear
sql = "SELECT codigo, banco, codbanco, sigla, competencia, website, e_mail, status, UF, Cidade, Bairro, Unidade, NomeUnidade, TipoUnidade, SR, Endereco, CEP FROM t_bancos"
If Me.chkPesquisa.Value = True Then
sql = sql & " WHERE " & ProcurarPor & " LIKE '%" & Me.txtPesquisa.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
ElseIf Me.chkPesquisa.Value = False Then
sql = sql & " WHERE " & ProcurarPor & " LIKE '" & Me.txtPesquisa.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
End If
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)
.ListItems(1).ListSubItems.Add 1, , banco(1)
.ListItems(1).ListSubItems.Add 2, , banco(2)
.ListItems(1).ListSubItems.Add 3, , banco(3)
.ListItems(1).ListSubItems.Add 4, , banco(4)
.ListItems(1).ListSubItems.Add 5, , banco(5)
.ListItems(1).ListSubItems.Add 6, , banco(6)
.ListItems(1).ListSubItems.Add 7, , banco(7)
.ListItems(1).ListSubItems.Add 8, , banco(8)
.ListItems(1).ListSubItems.Add 9, , banco(9)
.ListItems(1).ListSubItems.Add 10, , banco(10)
.ListItems(1).ListSubItems.Add 11, , banco(11)
.ListItems(1).ListSubItems.Add 12, , banco(12)
.ListItems(1).ListSubItems.Add 13, , banco(13)
.ListItems(1).ListSubItems.Add 14, , banco(14)
.ListItems(1).ListSubItems.Add 15, , banco(15)
End If
banco.MoveNext
Next i
Set banco = Nothing
cx.Desconectar
End With
Me.StatusBar1.Panels(1).Text = "Total de Itens Localizados: " & Me.lstv.ListItems.Count
End Sub
Private Sub UserForm_Initialize()
With cboPesquisarPor
.AddItem "Banco"
.AddItem "codBanco"
.AddItem "Sigla"
.AddItem "Competencia"
.AddItem "WebSite"
.AddItem "E_mail"
.AddItem "Status"
.AddItem "UF"
.AddItem "Cidade"
.AddItem "Bairro"
.AddItem "Unidade"
.AddItem "NomeUnidade"
.AddItem "TipoUnidade"
.AddItem "SR"
.AddItem "Endereco"
.AddItem "Cep"
.ListIndex = 1
End With
cboOrdenarPor.List = cboPesquisarPor.List
cboOrdenarPor.ListIndex = 0
With cboOrdem
.AddItem "Crescente"
.AddItem "Descrescente"
.ListIndex = 0
End With
With Me.lstv
.FullRowSelect = True
.View = lvwReport
.Gridlines = True
.Font.Size = 10
.ColumnHeaders.Add Text:="Codigo", Width:=50
.ColumnHeaders.Add Text:="Banco", Width:=150
.ColumnHeaders.Add Text:="CodBanco", Width:=150
.ColumnHeaders.Add Text:="Sigla", Width:=100
.ColumnHeaders.Add Text:="Competencia", Width:=150
.ColumnHeaders.Add Text:="WebSite", Width:=100
.ColumnHeaders.Add Text:="E_mail", Width:=100
.ColumnHeaders.Add Text:="Status", Width:=100
.ColumnHeaders.Add Text:="UF", Width:=100
.ColumnHeaders.Add Text:="Cidade", Width:=100
.ColumnHeaders.Add Text:="Bairro", Width:=100
.ColumnHeaders.Add Text:="Unidade", Width:=100
.ColumnHeaders.Add Text:="NomeUnidade", Width:=100
.ColumnHeaders.Add Text:="TipoUnidade", Width:=100
.ColumnHeaders.Add Text:="SR", Width:=100
.ColumnHeaders.Add Text:="Endereco", Width:=100
.ColumnHeaders.Add Text:="Cep", Width:=50
End With
Me.StatusBar1.Panels(1).Text = "Total de Itens Localizados: " & Me.lstv.ListItems.Count
End Sub
Grato.