Filtrar Base de Datos para Reporte en CR 8

¿Hola, cómo están? Tengo un problema, a ver si alguien sabe a qué se debe.
Tengo un programa en visual basic con una base de datos hecha en Access, para manipular la base de datos uso DAO (algo anticuado, lo sé, je je :) pero por el momento no puedo migrar a ADO :(), y para mis reportes uso Crystal Reports 8, pero en modo Diseñador dentro del programa de visual basic. En uno de los reportes, necesito filtrar la base de datos por medio de dos parámetros, una clave de usuario y un rango de fechas; para esto cuando llamo a la forma donde está el resporte creo un recordset y por medio de una consulta SQL filtro la base de datos, y esto me lo hace bien, luego le paso este recordset al motor del reporte pero ignora el filtro y me coloca todos los registros y no los que me interesan nada más, ¿alguien sabe a qué se debe? ¿Será por qué estoy usando DAO en vez de ADO? El código es este por si a alguien le sirve de algo:
/***********/
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
Dim dbsdoctos As Database, rstoficios As Recordset, sqlQuery As String
Set dbsdoctos = OpenDatabase(obtenruta())
sqlQuery = "SELECT " & strCampos & " FROM Asignaciones RIGHT JOIN Oficios " _
& "ON Oficios.NumOficio = Asignaciones.NumOficio " _
& "WHERE (((Oficios.DirigidoA= '" & strIDAct & "' OR " _
& "Asignaciones.TurnadoA=' " & strIDAct & "') AND " _
& "(Oficios.tipooficio = false)) AND (Oficios.finalizado = false)) AND " _
& "(Oficios.FechaRecep BETWEEN #" & DteFechaIni & "# AND #" & DteFechaFin & "#) " _
& "ORDER BY folio"
On Error Resume Next
Set rstoficios = dbsdoctos.OpenRecordset(sqlQuery)
If Err.Number <> 0 Then
MsgBox Err.Description
Exit Sub
End If
On Error Resume Next
rstoficios.MoveLast
rstoficios.MoveFirst
DsrDiseniador.Database.SetDataSource rstoficios
CrvReporte.ReportSource = DsrDiseniador
CrvReporte.ViewReport
Screen.MousePointer = vbDefault
/********************/
Gracias...

1 Respuesta

Respuesta
1
Debes tener en cuenta que los campos de tu select deben ser los mismos del tu reporte y las tablas que usas también deben ser las mismas, lo único que puedes cambiar es el where, revisa eso. Si no prueba con la propiedad
SelectionFormula="TurnadoA='" & strIDAct & "'............."

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas