Hola seba, si tengo todo echo el programa, y es un monton. estuve con xkiz
y BlackZerox luchando pero no tuve resultados.
Llegamos hasta aqui:
Public Sub rangoF(fecinicio As String, fectermino As String)
Dim fi, ft As Date
fi = Format(fecinicio, "dd/mm/yyyy") ': MsgBox fi
ft = Format(fectermino, "dd/mm/yyyy") ': MsgBox ft
SQL = "SELECT * FROM Ventas WHERE FEntrega=" & fi & " And FEntrega =" & ft
rsFiltro.Open SQL, cnn, adOpenDynamic, adLockOptimistic
End Sub
Pero el RecorderSet rsFiltro prece vacio. porque al cargarlo en mi ListView no devuelve valores.
Este Modulo estoy usando para cargar datos y conectarme a la DB
Option Explicit
Public Declare Sub InitCommonControls Lib "comctl32" ()
' variables para la conexión y el recordset
''''''''''''''''''''''''''''''''''''''''''''
Public cnn As New ADODB.Connection
Public rsVentas As New ADODB.Recordset
Public rsFiltro As New ADODB.Recordset 'variable que almacena las fechas filtradas
Public ObjItem As ListItem
' Conecta con la DB
Public Sub IniciarConexion()
With cnn
.CursorLocation = adUseClient
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\LBDATA.mdb" & ";Persist Security Info=False;Jet OLEDB:Database Password=" & "pass123"
End With
End Sub
' Carga las tablas
Public Sub IniciarTablas()
Set rsVentas = New ADODB.Recordset
rsVentas.CursorLocation = adUseClient
rsVentas.Open "select * from Ventas", cnn, adOpenStatic, adLockOptimistic
Set rsFiltro = New ADODB.Recordset
'rsFiltro.CursorLocation = adUseClient
'rsFiltro.Open "select * from Ventas", cnn, adOpenStatic, adLockOptimistic
End Sub
Public Sub rangoF(fecinicio As String, fectermino As String)
Dim fi, ft As Date
fi = Format(fecinicio, "dd/mm/yyyy") ': MsgBox fi
ft = Format(fectermino, "dd/mm/yyyy") ': MsgBox ft
SQL = "SELECT * FROM Ventas WHERE FEntrega=" & fi & " And FEntrega =" & ft
rsFiltro.Open SQL, cnn, adOpenDynamic, adLockOptimistic
End Sub
Public Sub CargarListViewV(LV As ListView, rs As ADODB.Recordset)
Dim i As Integer
'limpia el LV
LV.ListItems.Clear
' si hay registros
If rs.RecordCount > 0 Then
' recorre el recordset
While Not rs.EOF
' añade los datos
Set ObjItem = LV.ListItems.Add(, , rs(0))
'ObjItem.SubItems(0) = rs!Codigo
'ObjItem.SubItems(1) = rs!ClienteID
ObjItem.SubItems(1) = rs!Producto
ObjItem.SubItems(2) = rs!fpedido
ObjItem.SubItems(3) = rs!fentrega
ObjItem.SubItems(4) = rs!MPago
ObjItem.SubItems(5) = rs!Ncheque
ObjItem.SubItems(6) = rs!MTotal
ObjItem.SubItems(7) = rs!MPagado
ObjItem.SubItems(8) = rs!Chofer
ObjItem.SubItems(9) = rs!Finalizada
ObjItem.SubItems(10) = rs!Entregada
ObjItem.SubItems(11) = rs!ClienteID
ObjItem.SubItems(12) = rs!FechaID
ObjItem.SubItems(13) = rs(0)
ObjItem.SubItems(14) = rs!Dia
ObjItem.SubItems(15) = rs!Mes
ObjItem.SubItems(16) = rs!Año
ObjItem.SubItems(17) = rs!IDPago
ObjItem.SubItems(18) = rs!Observacion
' siguiente registro
rs.MoveNext
Wend
End Sub
Y cargo los datos en el ListView asi:
Call CargarListViewV(FrmVentas.LV, rsFiltro)
Espero que puedas ayudarme, Saludos