Crystal report en visual...

Hola... Hic un sistema en Visual Basic 6.0 cuya base de datos c encuentra en access 97, m exigen en mis pasantias que est sistema debe generar reportes en los cuales el usuario coloca la fecha desde y fecha hasta para que por medio de una sentencia de SQL seleccione los registros que cumplan con esa condición... Lo otro es que no sé si esa sentencia la estoy haciendo mal porque además INCLUYE CAMPOS DE OTRAS TABLAS... Que se encuentran relacionadas.
En access en campo fecha_sol "fecha de solicitud" está como texto con máscara 99/99/00.
En visual coloq en un formulario 2 textbox uno que su label que lo identifica dic fecha_desde y el text2 su label se llama fecha_hasta... Coloq un botón para salir, y otro que c llama imprimir.
en Imprimir codifiq lo siguiente Rpt1.SQLQuery = "Select....
Rpt1.DiscardSaveData = True
Rpt1.Action = 1
tambien en el formulario coloq un botoncito q c llama Crystal Report q c encuentra en los componentes y le coloq la ruta dond c encuentra el report etc...
Pero no c si mi sentencia de SQL esta mal estructurada o si tengo que declarar una variable algo falta... Ayúdame si puedes... Espero dam un ejm de la sentencia SQL con campos de varias tablas y lo de las fechas si puedes y dim si falta algo por que el report no m toma la fecha que coloco
3

3 respuestas

Respuesta
1
Veo que usas el control de Crystal Report, yo uso el RDC. Una sentencia SQL podría ser la siguiente:
Rpt1.SQLQuery ="SELECT *
FROM Tabla1
WHERE Tabla1.Fecha >=#" & varDesde & "# AND Tabla1.Fecha <=#" varHasta "#"
Si tienes dos tablas relacionadas podría ser la siguiente:
Rpt1.SQLQuery ="SELECT *
FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.campo1=Tabla2.campo1
WHERE Tabla1.Fecha >=#" & varDesde & "# AND Tabla1.Fecha <=#" varHasta "#"
Respuesta
1
<%=Texto%>
Buenas, al parecer el código está bien, me tendrías que enviar el código completo igualmente con la base de datos y el reporte para poder darme cuenta mejor, pero en fin, te envío un ejemplo de una consulta con 2 tablas.
Cualquier problema avisame, y disculpame por la demora
Saludos
Andrés
SELECT *
FROM
dbo.CALENDARIO INNER JOIN dbo.MOV ON dbo.CALENDARIO.MOV = dbo.MOV.Mov
WHERE dbo.calendario.fechav between " & txtfecha1.text & " and " & txtfecha2.text & "
Respuesta
1
Crea el informe con el formato que deba tener, columnas con datos de la solicitud, solicitante,...
En el formulario añade un control crystal, ej crp.
Para lanzar el listado filtrado pon lo siguiente el el botón:
crp.selectionformula="{Tabla.fecha_sol}>=date(" & year(txt1) & "," & month(txt1) & "," & day(txt1) & ") and {tabla.fecha_sol}<=date(" & year(txt2) & "," & month(txt2) & "," & day(txt2) & ")"
select case crp.printreport
case 0
'todo bien
case else
msgbox crp.lasterrorstring
end select
Con esto el informe solo mostrará los registros que cumplan la condición establecida.
Comprueba que la relación entre las tablas dentro del informe sea la adecuada para que no te genere duplicidad de registros...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas