Problemas en llamada a informe Crystal Report

ayangel
03 de Abril del 2008
Hola,
He diseñado un formulario en VB 6.0 que inserta diferentes registros en tablas temporales de Oracle. Tras esto, llama a un reporte crystal 7 pasandole como parámetro el año y como tabla una de las temporales en las que se han insertado registros. Esta tabla es la única necesaria para la cabecera del informe. El informe consta de varios informes vinculados donde uno de los campos de la tabla temporal pasada como argumento es usada para establecer las condiciones de selección enotras tablas (cada subinforme vinculado tiene diferentes tablas con diferentes condiciones). Cuando cargo las tablas temporales necesarias y abro el informe manualmente, este me solicita el parámetro del año y tras introducirlo me muestra todo el informe sin problemas. Pero cuando ejecuto desde VB la llamada al reporte me produce siempre el mismo error que me trae de cabeza:

Error 20599: No se puede abrir el servidor SQL.

Para completar la información, tengo que decir que hay tablas Oracle que se encuentran en un esquema y las temporales en otro aunque puedo hacer uso de un tercer esquema que engloba a los dos anteriores. Existen multitud de informes que tengo en explotación y, cuya única diferencia es esto de los esquemas.

A modo de ejemplo os remito el código de llamada al report desde VB:

Se fija el listado
CRListado.ReportFileName = App.Path & "listadosListPUsuarios2.rpt"
CRListado.DataFiles(0) = "UVA.DPUVALISTADOPERMISOSUSUARIO"

'subreport incluídos
CRListado.SubreportToChange = "ListPermisosOrg"
CRListado.Connect = "DSN = " & ODBC & ";UID = " & usuario & ";PWD = " & Password & ";DSQ = " & Servicio

CRListado.SubreportToChange = "ListPermisosOrd"
CRListado.Connect = "DSN = " & ODBC & ";UID = " & usuario & ";PWD = " & Password & ";DSQ = " & Servicio

CRListado.SubreportToChange = "ListPermisosCaja"
CRListado.Connect = "DSN = " & ODBC & ";UID = " & usuario & ";PWD = " & Password & ";DSQ = " & Servicio
CRListado.SubreportToChange = "ListPermisosTRPROTAB"
CRListado.Connect = "DSN = " & ODBC & ";UID = " & usuario & ";PWD = " & Password & ";DSQ = " & Servicio

CRListado.SubreportToChange = "ListPermisosPRO"
CRListado.Connect = "DSN = " & ODBC & ";UID = " & usuario & ";PWD = " & Password & ";DSQ = " & Servicio

CRListado.SubreportToChange = "ListPermisosTAB"
CRListado.Connect = "DSN = " & ODBC & ";UID = " & usuario & ";PWD = " & Password & ";DSQ = " & Servicio

CRListado.SubreportToChange = ""
CRListado.Connect = "DSN = " & ODBC & ";UID = " & usuario & ";PWD = " & Password & ";DSQ = " & Servicio

'Se fija el año para pasarlo como parámetro
CRListado.ParameterFields(0) = "p_anyo;" & cmbejercicio.Text & ";TRUE"

'La fuente del listado es un informe de Crystal
CRListado.ReportSource = crptReport

'El destino será una ventana
CRListado.Destination = crptToWindow

'Se imprime
CRListado.PrintReport

'Comprueba si tiene errores
If CRListado.LastErrorNumber <> 0 Then
Mensaje "Código de Error Crystal Report = " & CRListado.LastErrorNumber, FATAL
Mensaje "Error de Impresión: " & CRListado.LastErrorString, FATAL
End If

Por favor, AYUDA! ¿Por qué puede ocurrir esto?