Consulta fecha sql server 2005 y crystal reports 9

Me pasa lo siguiente, estoy creando un programa en vb6.0 crystal reports 9 y access, ahora cambie la base de datos por sql server 2005, ya me pude conectar a los reportes, con vb6.0 pero cuando abro un reporte por fecha que me abría bien en access no me abre en sql server: este es el código que tengo
Set CrRep = CrAppl.OpenReport(App.Path & "\Reportes\Por_Dia_Funcionario.rpt")
CrRep.SQLQueryString = "select ControlFun.Fecha_entrada,ControlFun.Hora_entrada,ControlFun.Fecha_salida,ControlFun.Hora_salida,Dependencia.Nombre,Funcionario.IdFuncionario,Funcionario.Nombre,Funcionario.Apellido,Funcionario.Cargo from ControlFun,Dependencia,Funcionario where Funcionario.IdFuncionario = ControlFun.IdFuncionario and Funcionario.IdDependencia=Dependencia.IdDependencia and ControlFun.Fecha_entrada=#" & fechavis & "#" & " ORDER BY Funcionario.IdFuncionario"
CrRep.DiscardSavedData
crvrepgenfun.ReportSource = CrRep
Crvrepgenfun. ViewReport
El error esta en '#', eso dice crystal reports
gracias si me pueden ayudar.

1 respuesta

Respuesta
1
Lo que ocurre es que sobran tres caracteres después del segundo # (" & ").
La instrucción debe ser así :
CrRep.SQLQueryString = "select ControlFun.Fecha_entrada,ControlFun.Hora_entrada,ControlFun.Fecha_salida,ControlFun.Hora_salida,Dependencia.Nombre,Funcionario.IdFuncionario,Funcionario.Nombre,Funcionario.Apellido,Funcionario.Cargo from ControlFun,Dependencia,Funcionario where Funcionario.IdFuncionario = ControlFun.IdFuncionario and Funcionario.IdDependencia=Dependencia.IdDependencia and ControlFun.Fecha_entrada=#" & fechavis & "# ORDER BY Funcionario.IdFuncionario" 
En ocasiones es necesario colocar en la consulta el formato de la fecha.
Suerte !
Hola buenos días:
Primero muchas gracias por tu colaboración y pronta respuesta, segundo, ya hice los cambios y me saca el mismo error, me imagino que debe ser por lo que me dijiste del colocar el formato de la fecha, en que formato sera de esta forma:
fechavis = Format(fechavis, "yyyy/mm / dd")
O de que forma.
Te agradezco nuevamente.
Cual es el error exactamente, pues si invalida el carácter # entonces es que algo está mal en la sintaxis. Si no produce los resultados esperados entonces si puede ser el formato. Habría que mirar en la base de datos en qué formato guarda las fechas.
La consulta debería quedar así :
CrRep.SQLQueryString = "select ControlFun.Fecha_entrada,ControlFun.Hora_entrada,ControlFun.Fecha_salida,ControlFun.Hora_salida,Dependencia.Nombre,Funcionario.IdFuncionario,Funcionario.Nombre,Funcionario.Apellido,Funcionario.Cargo from ControlFun,Dependencia,Funcionario where Funcionario.IdFuncionario = ControlFun.IdFuncionario and Funcionario.IdDependencia=Dependencia.IdDependencia and ControlFun.Fecha_entrada=#" & Format(fechavis, "dd/mm/yyyy") & "# ORDER BY Funcionario.IdFuncionario"  
Suerte !
Hola nuevamente:
Tienes razón, el problema era como se guarda la fecha en la base de datos, la solución fue la siguiente:
CrRep.SQLQueryString = "select ControlFun.Fecha_entrada,ControlFun.Hora_entrada,ControlFun.Fecha_salida,ControlFun.Hora_salida,Dependencia.Nombre,Funcionario.IdFuncionario,Funcionario.Nombre,Funcionario.Apellido,Funcionario.Cargo from ControlFun,Dependencia,Funcionario where Funcionario.IdFuncionario = ControlFun.IdFuncionario and Funcionario.IdDependencia=Dependencia.IdDependencia and ControlFun.Fecha_entrada='" & Format$(fechavis, "YYYYMMDD") & "' ORDER BY Funcionario.IdFuncionario"
Gracias por tu colaboración.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas