Set Report = Appl.OpenReport(RutaReportes & "\reporte1.rpt")
el sistema me genera el siguiente error:
error: -2147206429 Invalid TLV Record
He andado la web por donde quiera y no he encontrad a nadie que me diga
cuales son las DLL's necesarias para quitar este error o el procedimiento.
Por favor si alguien conoce del problema que me ayude.
Nota: Para hacer el setup de la aplicacion estoy usando Setup Factory 5.8
Te cuento que en las maquinas que instalo CRYSTAL REPORT XI completo no me
da el error y reviso el odbc y no hay nada que tenga que ver con crystal
report.
Halgo instala el CRYSTAL que hace que todo funciona bien.
"aa" wrote:
> .
>
No tiene nada que ver con ODBC...
El problema que tienes es que la versión del report no coincide con el motor
de Crystal que tienes instalado.
Por ejemplo, si la versión de tu report es la 9 y el motor es el del 8,
entonces no reconoce la versión y te da este tipo de errores.
Si antes te funcionaba es porque se ha instalado en el equipo otro programa
que utiliza Crystal, ha colocado unos RunTime más antiguos y los ha
registrado como la versión a utilizar por defecto.
Lo más sencillo es reinstalar los runtime adecuados (los del CRW XI).
Otra forma más compleja pero que te servirá para siempre: Los RunTime del
CRW XI no me los conozco, pero creo que servirá lo mismo...
Cuando instancias el objeto de Aplicación del CRW lo que en realidad se hace
es:
set Appl = CreateObject("CrystalRuntime.Application")
Si miras en el registro en
HKEY_CLASS_ROOT\CrystalRuntime.Application\CurVer, en la clave
predeterminada, verás que te pondrá (por ejemplo):
"CrystalRuntime.Application.8". Eso significa que la versión que va a
utilizar cuando haces el CreateObject es la 8.
Si haces:
set Appl = CreateObject("CrystalRuntime.Application.9")
La versión que utilizarás es la 9, siempre que la tengas instalada...
Lo mejor es que te fijes en HKEY_CLASS_ROOT y busques
CrystalRuntime.Application.XXXX, en donde XXXX es la versión a utilizar.
De esta manera pueden convivir varias versiones del CRW en la misma máquina.
Ten en cuenta que el formato del nombre es CrystalRuntime.Application.X.Y,
donde X es la versión mayor e Y la menor. Puedes tener por ejemplo:
CrystalRuntime.Application.8.5 o CrystalRuntime.Application.8
Normalmente los reports conservar formato si la versión mayor es la misma.
Si tienes instalados los runtime del 8 y el report es 8/8.5, te lo leerá
correcto.
Si trabajas con Crystal 8.5, puedes hacer:
Set crxA = CrearApp(".8.5")
If crxA Is Nothing Then
Set crxA = CrearApp(".8")
End If
If crxA Is Nothing Then
Set crxA = CrearApp("")
End If
Private Function CrearApp(version As String) As Object
On Error Resume Next
Dim SQL As String
Set CrearApp = CreateObject("CrystalRuntime.Application" & version)
If Err.Number <> 0 Then
SQL = Err.Description
Set CrearApp = Nothing
Else
If CrearApp Is Nothing Then
SQL = "Fallo al crear objeto version=" & version
End If
End If
If SQL <> "" Then
' App.StartLogging "", vbLogToNT
' App.LogEvent "Creando objeto version=" & version & " " & SQL
End If
End Function
Espero que te sirva,
Un saludo.
--------------------------------------------------
From: "Juan Reyes" <Juan...@discussions.microsoft.com>
Sent: Friday, May 21, 2010 9:45 PM
Newsgroups: microsoft.public.es.vb
Subject: INVALID TLV RECORD
"Juan Reyes" <Juan...@discussions.microsoft.com> escribió en el mensaje de
noticias:50CC7E36-BCDB-4F4F...@microsoft.com...