Crystal Report - VB6, SQL server 2000 y Crystal reports 7

 
Vista:

VB6, SQL server 2000 y Crystal reports 7

Publicado por juanjoac (1 intervención) el 11/08/2005 00:42:22
Hola a todos
Actualmente estoy desarrollando un sistema con Visual Basic 6 y SQL Server
2000 como base de datos. Para el caso de los reportes utilizo el Crystal
Reports 7.
He diseñado mis primeros reportes en crystal y me encuentro con un error
algo raro.
Utilizo un formulario en el cual llamo a un solo reporte pasandole diferentes
criterios de seleccion segun sea el caso.
Lo raro es que para el primer caso me funciona correcto, para el segundo me
da un error y para el tercero me funciona ok.
En los dos primeros casos el criterio es de un rango de fechas:
Inicial y Final. y en el Selectionformula solo cambio FEREG_I01 por
FEDOC_I01, que son mis criterios de seleccion , una es la fecha de
registro y la otra es la fecha del documento.
Tambien me sucede que si le doy una fecha como 22/07/2005 como inicio y fin
entonces el reporte me funciona ok, pero si le doy un rango mas amplio me da
error.
El mensaje de error dice:
Seagate Crystal Reports: Error en Base de datos
Error General de SQL Server: compruebe los mensajes del servidor SQL
Luego me sale otro mensaje:
Microsoft visual Basic
error 20534 en tiempo de ejecucion:
La DLL de base de datos ha detectado un error

Aqui les paso el codigo de ambos botones:

Este me funciona ok:

Private Sub cmd1Imprimir_Click()
If Not IsDate(mebFECHAINICIAL.Text) Or Not IsDate(mebFECHAFINAL.Text) Then
MsgBox "Debe ingresar el Rango de Fechas"
mebFECHAINICIAL.SetFocus
Exit Sub
End If
Dim strCriteria As String
Dim pfDesde, pfHasta As Date
Dim pnDiaI, pnMesI, pnAnoI As Integer
Dim pnDiaF, pnMesF, pnAnoF As Integer

pfDesde = CDate(mebFECHAINICIAL.Text)
pfHasta = CDate(mebFECHAFINAL.Text)
pnDiaI = Day(pfDesde)
pnDiaF = Day(pfHasta)
pnMesI = Month(pfDesde)
pnMesF = Month(pfHasta)
pnAnoI = Year(pfDesde)
pnAnoF = Year(pfHasta)
strCriteria = " {MTI0105.FEREG_I01} in date(" & pnAnoI & "," & pnMesI & "," _
& pnDiaI & ") to date(" & pnAnoF & "," & pnMesF & "," & pnDiaF & ")" _
& " AND {MTI0105.TIVOU_I01} = '" & Me.txtTIVOU.Text & "'"
crpReportesDiarios.SelectionFormula = strCriteria
crpReportesDiarios.Action = 1
End Sub

Este no me funciona:

Private Sub cmd2Imprimir_Click()
If Not IsDate(mebFECHAINICIAL.Text) Or Not IsDate(mebFECHAFINAL.Text) Then
MsgBox "Debe ingresar el Rango de Fechas"
mebFECHAINICIAL.SetFocus
Exit Sub
End If
Dim strCriteria As String
Dim pfDesde, pfHasta As Date
Dim pnDiaI, pnMesI, pnAnoI As Integer
Dim pnDiaF, pnMesF, pnAnoF As Integer

pfDesde = CDate(mebFECHAINICIAL.Text)
pfHasta = CDate(mebFECHAFINAL.Text)
pnDiaI = Day(pfDesde)
pnDiaF = Day(pfHasta)
pnMesI = Month(pfDesde)
pnMesF = Month(pfHasta)
pnAnoI = Year(pfDesde)
pnAnoF = Year(pfHasta)

strCriteria = " {MTI0105.FEDOC_I01} in date(" & pnAnoI & "," & pnMesI & "," _
& pnDiaI & ") to date(" & pnAnoF & "," & pnMesF & "," & pnDiaF & ")" _
& " AND {MTI0105.TIVOU_I01} = '" & Me.txtTIVOU.Text & "'"
MsgBox strCriteria
If Left(txtTIVOU.Text, 1) = "1" Then
crpReportesDiarios.WindowTitle = "Reporte de Ingresos por Fecha de Documento entre " & mebFECHAINICIAL & " y " & mebFECHAFINAL
ElseIf Left(txtTIVOU.Text, 1) = "2" Then
crpReportesDiarios.WindowTitle = "Reporte de Salidas por Fecha de Documento entre " & mebFECHAINICIAL & " y " & mebFECHAFINAL
End If
crpReportesDiarios.SelectionFormula = strCriteria
crpReportesDiarios.Action = 1

End Sub

--

Estuve busncado el internet posibles soluciones o documentaciones acerca del mensaje de error,
algunos dicen que es problema de la conexion, que se pierde o que alguna de las tablas ha
sido modificada y por eso el reporte no funciona, sin embargo he hecho la "verificacion de la
base de datos" y tambien la "actualizacion de datos del informe" desde el crystal reports y el
error persiste.

Dese ya les agradesco a cada uno por su tiempo y su ayuda si tuvierna alguna solucion o
comentario.

Gracias

Juan Aviles
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:VB6, SQL server 2000 y Crystal reports 7

Publicado por Gerardo (571 intervenciones) el 11/08/2005 01:09:03
Ke tal Juan.

No veo las lineas en donde ubicas el reporte y el nombre del mismo, tampoco veo en ke momento haces la conexión hacia la DB. Checa lo anterior.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VB6, SQL server 2000 y Crystal reports 7

Publicado por Mónica (2 intervenciones) el 15/08/2005 20:30:01
Hola
Al parecer el problema resulta de que en Crystal 7.0 tiene ciertos conflictos con pasare paramétros de fechas, asi que debes convertir la fecha a entero

se supone tienes dos fechas, fecha inicio y fecha fin, prueba lo sig.
obten los dias para fecha inicio

aux_regreso1 = DateDiff("d", gdteFechaServidor, fechaIni)
If aux_regreso1 < 0 Then
aux_regreso1 = aux_regreso1 * -1
End If
ahora para fecha 2
aux_regreso2 = DateDiff("d", gdteFechaServidor, fechaEnd)
If aux_regreso2 < 0 Then
aux_regreso2 = aux_regreso2 * -1
end if

y agrega al query en la parte donde le especificas las fechas lo sig.
datediff(day,convert(varchar,nombre del campo donde alamcenas la fecha,103), getdate() -("&aux_regreso1&")) <= 0 and datediff(day,convert(varchar,nombre del campo donde almacenas la fecha ,103), getdate() -("&aux_regreso2&")) >= 0 )

saludos y espero te sirva

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:VB6, SQL server 2000 y Crystal reports 7

Publicado por Javier Basauri (2 intervenciones) el 10/10/2007 09:52:06
Hola Juanjo.

Ahora tengo yo ese mismo problema y si lo llegaste a resolver, te agradeceria me enviaras a mi direccion de correo cómo lo hiciste.

Agradeciendote de antemano.

Javier Basauri.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VB6, SQL server 2000 y Crystal reports 7

Publicado por Lino (1 intervención) el 12/03/2008 01:01:39
Amigos...yo tuve el mismo problema con un sistema viejo que tengo, y el problema es que habia cambiado el tipo de datos de una tabla que usaba en un reporte y por eso me daba el error. al volver el campo al tipo de datos original no me daba el error.

Espero les sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VB6, SQL server 2000 y Crystal reports 7

Publicado por jorge  (1 intervención) el 17/09/2008 21:01:52
Es claro que crystal reports molesta demasiado por cualquier error que
se genere revise por favor lo siguiente :

- Revisar que no se generen valores nulos en las columnas todas deben
devolver valores diferentes a NULL

- Verificar que no se generen errores de nivel bajo en sqlserver
se puede correr el procedimiento normalmente sin embargo crystal
detecta los errores de nivel bajo .. el más mínimo nivel genera estos
errores

- Si nada de esto funciona revise que no existan asignaciones vacias
es decir sentencias sql que no esten devolviendo datos o esten
relacionadas con cursores, esto es lo mismo que una sentencia
select ..

Mucha suerte ..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar