Crystal Report - Conexion CR8 con VB6 ADO

 
Vista:

Conexion CR8 con VB6 ADO

Publicado por Jose Blazquez (1 intervención) el 19/08/2005 10:23:18
Hola a todos y gracias por vuerto tiempo.
Estoy desarrollando una aplicacion en VB6, basada en otra anterior. Se realiza una gestion de bases de datos, y los reportes los saca por CrystalReport. Ahora bien, la plicacion antigua conecta perfectamente con el CR, pero en la que desarrollo no lo hace, me da el error que la variable definida esta fuera del rango. Tras muchos quebraderos, por fin descubri que la conexion no se realiza, y por ello (como es evidente) no saca los datos. ¿Me podriais decir como puedo realizar la conexion?
Aqui os dejo el codigo del form donde esta el report.
Dim Report As New CrystalReport5

Private Sub Form_Load()
'On Error GoTo t_err
Dim cnn1 As New ADODB.Connection
Dim cmdChange As ADODB.Command
Dim crxDatabaseField As craxdrt.DatabaseFieldDefinition
Dim strcnn As String
Dim var As ADODB.Recordset
Dim nombre As String
Dim columna As Integer
'configura una conexion
strcnn = conexion
Set cnn1 = New ADODB.Connection
cnn1.Open strcnn

' Crea un objeto Command.
Set cmdChange = New ADODB.Command
Set cmdChange.ActiveConnection = cnn1
cmdChange.CommandText = consulta
cmdChange.Execute

' ordenar
columna = Form3.Combo1.ListIndex
columna = columna + 1
Set crxDatabaseField = Report.Database.Tables.Item(1).Fields.Item(columna)
'Report.RecordSortFields.Add crxDatabaseField, crAscendingOrder

'sustituye el primer campo para ordenar por otro
Report.RecordSortFields.Item(1).Field = crxDatabaseField
If Form3.option1.Value = True Then
Report.RecordSortFields.Item(1).SortDirection = crAscendingOrder
ElseIf Form3.option2.Value = True Then 'Ascendente
Report.RecordSortFields.Item(1).SortDirection = crAscendingOrder
ElseIf Form3.Option3.Value = True Then 'Descendente
Report.RecordSortFields.Item(1).SortDirection = crDescendingOrder
End If
' cambiar la consulta del report
Report.Database.SetDataSource cmdChange

Set var = New ADODB.Recordset
var.CursorType = adOpenKeyset
var.LockType = adLockBatchOptimistic
var.Open "select rl0001 from rl00", cnn1, , , adCmdText
nombre = "" & var!rl0001
var.Close

' Visualizar el report
Screen.MousePointer = vbHourglass
Report.Texto4.SetText nombre
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
MsgBox "Consultando datos...", 0, "Listado de Poblaciones"
CRViewer1.Refresh
Screen.MousePointer = vbDefault

Exit Sub
t_err:
MsgBox "Se ha producido el Error: " & Err & " " & Error, 0, "Error"
Exit Sub
End Sub

Private Sub Form_Resize()
CRViewer1.Top = 0
CRViewer1.Left = 0
CRViewer1.Height = ScaleHeight
CRViewer1.Width = ScaleWidth

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