Ayuda con Recordset y VB
Publicado por Albina (1 intervención) el 22/11/2005 13:40:21
Hola el problema que tengo es el siguiente, tengo una Bd en SQLSERVER, y tengo el programa en vb6, los reportes en crystal9, el problema es que necesito pasarle un recordset, porque puede ser que mas de una persona ejecute el reporte a la vez, y no pueden pisarse la información.
El código que tengo es el siguiente, pero no me escribe en el reporte, si alguien me puede decir que está mal se lo agradezco, por las dudas yo tengo conectado el crystal con un file definition only, talvez tenga que conectarlo por otro lado. Lo que no puedo hacer es tener una tabla en la bd y escribir en ella, porque todos se pisarian la información.
Private Sub InfoListadoGeneral2(sArchivo As String, sconsulta As String, sNombreCampos As String, ruta As String, Optional SinParametros As Boolean = False, Optional arbol As Boolean = False, Optional sconsulta1 As String)
Dim vNombreCampos() As String
Private omRecordset As ADODB.Recordset
Dim Crystal As New CRAXDRT.Application 'MANAGES REPORTS
Dim Report As New CRAXDRT.Report
If VerificarArchivo(sArchivo) Then
omRecordset.CursorLocation = adUseClient
omRecordset.CursorType = adOpenDynamic
If opCn.Connection.State = 0 Then opCn.Connection.Open
omRecordset.ActiveConnection = opCn.Connection
omRecordset.Open sconsulta
If Not SinParametros Then
'Se pasan los titulos de los campos
vNombreCampos = Split(sNombreCampos, ";")
For i = 0 To UBound(vNombreCampos)
If vNombreCampos(i) <> "" Then
Report.ParameterFields(i + 1).AddCurrentValue vNombreCampos(i)
End If
Next
End If
Set Report = Crystal.OpenReport(App.Path & ruta) '****
Report.Database.SetDataSource omRecordset
crShow.ReportSource = Report
If arbol = True Then
crShow.EnableGroupTree = True
Else
crShow.EnableGroupTree = False
End If
crShow.ViewReport
Screen.MousePointer = vbArrow
If omRecordset.State <> 0 Then omRecordset.Close
Else
MsgBox "SE HAN ALTERADO ARCHIVOS DEL SISTEMA. POR FAVOR COMUNIQUESE CON EL SERVICIO TECNICO", vbCritical + vbOKOnly, "Error de sisema"
End If
End Sub
El código que tengo es el siguiente, pero no me escribe en el reporte, si alguien me puede decir que está mal se lo agradezco, por las dudas yo tengo conectado el crystal con un file definition only, talvez tenga que conectarlo por otro lado. Lo que no puedo hacer es tener una tabla en la bd y escribir en ella, porque todos se pisarian la información.
Private Sub InfoListadoGeneral2(sArchivo As String, sconsulta As String, sNombreCampos As String, ruta As String, Optional SinParametros As Boolean = False, Optional arbol As Boolean = False, Optional sconsulta1 As String)
Dim vNombreCampos() As String
Private omRecordset As ADODB.Recordset
Dim Crystal As New CRAXDRT.Application 'MANAGES REPORTS
Dim Report As New CRAXDRT.Report
If VerificarArchivo(sArchivo) Then
omRecordset.CursorLocation = adUseClient
omRecordset.CursorType = adOpenDynamic
If opCn.Connection.State = 0 Then opCn.Connection.Open
omRecordset.ActiveConnection = opCn.Connection
omRecordset.Open sconsulta
If Not SinParametros Then
'Se pasan los titulos de los campos
vNombreCampos = Split(sNombreCampos, ";")
For i = 0 To UBound(vNombreCampos)
If vNombreCampos(i) <> "" Then
Report.ParameterFields(i + 1).AddCurrentValue vNombreCampos(i)
End If
Next
End If
Set Report = Crystal.OpenReport(App.Path & ruta) '****
Report.Database.SetDataSource omRecordset
crShow.ReportSource = Report
If arbol = True Then
crShow.EnableGroupTree = True
Else
crShow.EnableGroupTree = False
End If
crShow.ViewReport
Screen.MousePointer = vbArrow
If omRecordset.State <> 0 Then omRecordset.Close
Else
MsgBox "SE HAN ALTERADO ARCHIVOS DEL SISTEMA. POR FAVOR COMUNIQUESE CON EL SERVICIO TECNICO", vbCritical + vbOKOnly, "Error de sisema"
End If
End Sub
Valora esta pregunta


0