Visual Basic - Error al enviar SQLQuery con Cristal Reports

Life is soft - evento anual de software empresarial
 
Vista:

Error al enviar SQLQuery con Cristal Reports

Publicado por K2o21 (17 intervenciones) el 04/03/2004 12:49:07
Hola de nuevo a todos, en especial a Cecilia por ayudarme.
Después de crear el informe con Cristal Reports y desde visual llamar a ese report y mostrarlo por pantalla pues ahora cuando intento enviar una consulta SQLQuery no me hace nada. Tengo el siguiente código, alguien me puede decir que hago mal?
La consulta es un poco larga pero es lo que hay.
Si quiero ver el report sin el SQLQuery va bién, pero con él no hace nada.

With CR1
.ReportFileName = Report_Dir & "\cargas3.rpt"
.SQLQuery = "SELECT Destinos.Destino, Destinos2.Destino, Cargas.NumCarga, Cargas.Cargador, Cargas.MerCont, Cargas.NumOrden, Cargas.Observaciones, Cargas.HoraDescarga, Cargas.FechaCarga, Cargas.FechaDescarga, Cargas.Precio, Cargas.Comprovado, Vehiculos.Matricula, Plataformas.Plataforma, Vehiculos2.Matricula From Cargas LEFT JOIN Vehiculos ON Cargas.idVehiculo = Vehiculos.IdVehiculo left join Vehiculos as Vehiculos2 on Vehiculos2.idvehiculo=Cargas.idvehiculodescarga left join Plataformas on Plataformas.idplataforma=Cargas.IdPlataforma left join Destinos on Destinos.iddestino=Cargas.idOrigen left join Destinos as Destinos2 on Destinos2.iddestino=Cargas.iddestino WHERE 1=1"
.Destination = crptToWindow
.WindowState = crptMaximized
.PrintReport
End With

Gracias de antemano.
Saludos
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

RE:Error al enviar SQLQuery con Cristal Reports

Publicado por Cecilia Colalongo (3116 intervenciones) el 04/03/2004 14:18:10
Dos cosas, en primer lugar agrega el Connect a la base de datos como en el ejemplo que te indique:

With CrystalReport1
.Connect = "DRIVER=Microsoft Access Driver (*.mdb);DefaultDir=" & App.Path & ";DBQ=" & App.Path & "\Prueba.mdb"
.DataFiles(0) = "Prueba"
.ReportFileName = App.Path & "\Prueba.Rpt"
.SQLQuery = "Select * From Prueba Where Codigo>'Codigo1' " & vbCrLf & " Order by Descripcion"
.Destination = crptToWindow
.PrintReport
End With

Y luego intenta esa consulta tan larga crearla en una vista y llamar directamente a la vista, se simplifica mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al enviar SQLQuery con Cristal Reports

Publicado por K2o21 (17 intervenciones) el 04/03/2004 16:58:29
Gracias Cecilia pero trabajo con sql server no con access.
¿Tambien debo poner la conexión? trabajo con recordsets¿
¿Como seria el código?

Gracias de nuevo

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al enviar SQLQuery con Cristal Reports

Publicado por Cecilia Colalongo (3116 intervenciones) el 04/03/2004 17:16:22
Una vista puedes crearla desde SQL Server sin ningún problema, en cuanto a la conexión:

With CrystalReport1
.LogOnServer("p2ssql.dll",NombreServidor,BaseActual,UsuarioServidor,ClaveServidor)
.Connect="DSN="+NombreServidor+";UID="+UsuarioServidor+";PWD="+ClaveServidor+";DSQ="+BaseActual
.ReportFileName="MiReporte.rpt"
.RetrieveSQLQuery()
.SQLQuery="SELECT ... "
End With
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al enviar SQLQuery con Cristal Reports

Publicado por K2o21 (17 intervenciones) el 05/03/2004 10:14:57
Hola de nuevo Cecilia, no hay manera :-(

Tengo esto:
resultat = CR1.LogOnServer("p2ssql.dll", "Server", "BD_", "User", "Pass")
CR1.Connect = "DSN=" + "Server" + ";UID=" + "User" + ";PWD=" + "Pass" + ";DSQ=" + "BD_"
CR1.ReportFileName = Report_Dir & "\cargas3.rpt"
CR1.SQLQuery = "SELECT Destinos.Destino, Destinos2.Destino, Cargas.NumCarga, Cargas.Cargador, Cargas.MerCont, Cargas.NumOrden, Cargas.Observaciones, Cargas.HoraDescarga, Cargas.FechaCarga, Cargas.FechaDescarga, Cargas.Precio, Cargas.Comprovado, Vehiculos.Matricula, Plataformas.Plataforma, Vehiculos2.Matricula From Transpalle.dbo.Cargas LEFT JOIN Transpalle.dbo.Vehiculos ON (Cargas.idVehiculo = Vehiculos.IdVehiculo) left join Transpalle.dbo.Vehiculos as Vehiculos2 on (Vehiculos2.idvehiculo=Cargas.idvehiculodescarga) left join Transpalle.dbo.Plataformas on (Plataformas.idplataforma=Cargas.IdPlataforma) left join Transpalle.dbo.Destinos on (Destinos.iddestino=Cargas.idOrigen) left join Transpalle.dbo.Destinos as Destinos2 on (Destinos2.iddestino=Cargas.iddestino) WHERE 1=1"
CR1.Action = 1

si le pongo: CR1.SQLQuery = "....
me da el siguiente error:
[
Error '20536' en tiempo de ejecución
E
]

Como le puedo pasar la cadena SQL???¿?¿?
Me estoy volviendo loco.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar