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
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


0