Realizar reporte con varios criterios

Cómo realizar un reporte con DataReport entre fechas, pero con un criterio de búsqueda. Ejem.: fecha inicio y fecha final, buscar por partida "X", y que me miestre sólo lo que tiene esa partida entre esas fechas. El código que manejo es el siguiente:
El filtrado debe ser por "PART" (Yo utilizo Tres partidas: 613,615,618; y por cada una de ellas, existen ciertos números de
Cheques emitidos).
'Este es el comando para llamar al Reporte'
Private Sub Command3_Click()
If rst Is Nothing Then Exit Sub
If rst.State = adStateOpen Then
Set DataReport1.DataSource = rst
Set rst = cnn.Execute("SELECT MONTO, FECEX, PAGOR, PART, CHEC, CTACTE FROM Hoja1 WHERE FECEX Between '" & DTPicker1
& "' and '" & DTPicker2 & "' Order by CHEC")
DataReport1.Show vbModal, Me
End If
End Sub
__________________________________________________________________________________
Private Sub DTPicker1_Change()
DTPicker1 = Format(DTPicker1.Value, "mm/dd/yyyy")
If DTPicker1 > "01/01/1601" Then
Set rst = cnn.Execute("SELECT MONTO, FECEX, PAGOR, PART, CHEC, CTACTE FROM Hoja1 WHERE PART Between '" & DTPicker1 & "'
and '" & DTPicker2 & "' Order by CHEC")
' Muestra los datos en el FlexGrid'
Set MSHFlexGrid1.DataSource = rst
End If
End Sub
__________________________________________________________________________________
Private Sub DTPicker2_Change()
DTPicker2 = Format(DTPicker2.Value, "mm/dd/yyyy")
If DTPicker2 < "31/12/9999" Then
Set rst = cnn.Execute("SELECT MONTO, FECEX, PAGOR, PART, CHEC, CTACTE FROM Hoja1 WHERE FECEX Between '" & DTPicker1 & "' and
'" & DTPicker2 & "' Order by CHEC")
' Muestra los datos en el FlexGrid'
Set MSHFlexGrid1.DataSource = rst
End If
End Sub
___________________________________________________________________________________
Private Sub Form_Load()
Dim ruta As String
ruta = "C:\Proyecto2\bd13.mdb"
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ruta & ";" & _
"Persist Security Info=False"
End Sub
____________________________________________________________________________________
Private Sub Text1_Change()
If DTPicker1 > "01/01/1601" And DTPicker2 < "31/12/9999" Then
Set rst = cnn.Execute("SELECT MONTO, FECEX, PAGOR, PART, CHEC, CTACTE FROM Hoja1 WHERE PART Like '" & Text1.Text &
"' Order by FECEX")
End If
End Sub
______________________________________________________
Nota: A lo mejor algo está allí errado; Aaaaaa... Y no utilizo el DataEnvironment, ni el SQL. Mi conexión es a través de un
recordset.

1 respuesta

Respuesta
1
Y que base de datos estás utilizando y como es eso del recordset, ya que la variable rst la usas pero donde le defines el tipo...
La base de datos la tengo en access, y la variable rst la defino de la siguiente manera:
Option Explicit
Public cnn As New ADODB.Connection
Public rst As New ADODB.Recordset
Tienes que colocar un # antes y después de cada fecha para que access la tome como fecha valida, según recuerdo, mm/dd/aaaa y con ello deberá de funcionar...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas