Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Visual Basic, Crystal y Sql

Estas en el tema de Visual Basic, Crystal y Sql en el foro de Visual Basic clásico en Foros del Web. Hola maestros, espero que puedan ayudarme con esto pues me corre musha prisa. He creado un informe con Crystal Report, quiero imprimir este informe desde ...
  #1 (permalink)  
Antiguo 07/02/2002, 12:07
 
Fecha de Ingreso: enero-2002
Ubicación: españa
Mensajes: 51
Antigüedad: 22 años, 4 meses
Puntos: 0
Visual Basic, Crystal y Sql

Hola maestros, espero que puedan ayudarme con esto pues me corre musha prisa.

He creado un informe con Crystal Report, quiero imprimir este informe desde un formulario por eso he añadido el control de crystal report a mi formulario (crystl32.ocx). Hasta aquí todo bien, pero yo quiero que los registros que aparezcan en este informe los escoja una sentencia SQL. Para esto añadí la sentencia SQL a la propiedad SqlQuery del control de Crystal, pero no hace nada.

Estoy haciendo algo mal?

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 07/02/2002, 13:40
 
Fecha de Ingreso: enero-2002
Mensajes: 54
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Visual Basic, Crystal y Sql

¿No hace nada el Query?
¿Probaste el query en otro lado (visdata,query analizer)?
¿Activaste el reporte?
¿Tienes una tabla de impresion local?

Especifica más para poder ayudarte.
  #3 (permalink)  
Antiguo 08/02/2002, 04:33
 
Fecha de Ingreso: enero-2002
Ubicación: españa
Mensajes: 51
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: Visual Basic, Crystal y Sql

La sentencia SQL es correcta, la he probado en el Access y funciona correctamente, me mustra los registros que quiero.

Este es el cógido que tengo para imprimir el informe:


Dim strSentenciaSql As String

strSentenciaSql = "SELECT * FROM [Albaranes y Facturas] WHERE NumFactura = " & txtNFactura.Text & ""

CrystalReport.ReportFileName = App.Path & "\facturacliente.rpt"

CrystalReport.Destination = crptToWindow

CrystalReport.SQLQuery = strSentenciaSql

CrystalReport.Action = 1

Eso es todo, es bastante simple, pero no funciona.
  #4 (permalink)  
Antiguo 08/02/2002, 07:10
 
Fecha de Ingreso: enero-2002
Mensajes: 54
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Visual Basic, Crystal y Sql

Aparentemente esta bien, recuerdo haber tenido estos problemas con el Crystal hace tiempo, por eso me cambie y ahora todos los reportes los hago en html sobre visual basic, prueba cambiando la sintaxis de la consulta creandola en el mismo crystal (crystal posee otra sintaxis de consulta) y pruebala ahi luego la copias a visual en tu string.

chau.
  #5 (permalink)  
Antiguo 12/02/2002, 05:01
Nch
 
Fecha de Ingreso: febrero-2002
Mensajes: 73
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Visual Basic, Crystal y Sql

Puedes usar un artificio aunque es un poco extenso, primero realizas la consulta, luego lo exportas a un archivo y finalmente lo cargas a un objeto crviewer.dll que debes incluirlo en tu formulario:

'Primero debes crear un diseñador con los
'campos que requieres (con una consulta
'incrustada que luego no sera usada)

Set Comando = New Command
Set rs = New ADODB.Recordset
Comando.ActiveConnection = TuConexion
Comando.CommandText = "SELECT ....."

'proceso de conexion
rs.CursorLocation = adUseClient
rs.Open Comando,,adOpenStatic, _
adLockOptimistic

'Exportamos los datos
Set reporte = New TuDiseniador
FileName = "c:\tmp.rpt"
Reporte.Database.SetDataSource rs
Reporte.ExportOptions.DestinationType =
crEDTDiskFile
Reporte.ExportOptions.DiskFileName =
FileName
Reporte.ExportOptions.FormatType =
crEFTCrystalReport
Reporte.Export False


'Visualizamos con el CRV
CRV.UserName = TuUsuario
CRV.ReportFileName = FileName
CRV.Connect = TuConexion
CRV.PrintReport
CRV.ReportFileName = ""
  #6 (permalink)  
Antiguo 21/02/2002, 11:59
CHS
 
Fecha de Ingreso: febrero-2002
Mensajes: 15
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Visual Basic, Crystal y Sql

QUE TAL SI PRUEBAS ENVIANDOLE UN AFORMULA DE SELECCION DE REGISTROS AL REPORTE?

CrystalReport1.ReportFileName = aux_path & "\L-INSPECCIONES_OTROS.rpt"
CrystalReport1.Connect = "DSN=BSE;UID=OPS$BSE;PWD=BSE;"
CrystalReport1.LastErrorString = ""
CrystalReport1.DiscardSavedData = True
CrystalReport1.Destination = crptToWindow
CrystalReport1.ReplaceSelectionFormula ("{TRA_INSPECCIONES.NRO_INSPECCION} = " & Nro)
CrystalReport1.PrintReport
  #7 (permalink)  
Antiguo 27/02/2002, 02:50
 
Fecha de Ingreso: febrero-2002
Mensajes: 12
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Visual Basic, Crystal y Sql

Hola.

¿ Cuando dices que no hace nada a que te refieres ? No muestra información en el visor o es que te dá algun tipo de error.

Aparentemente, el código es correcto ( supongo que la variable que concatenas al construir la query tiene valor ).

Mira por un lado, la ubicación de la tabla para ver si realmente está apuntando a la base de datos en la que has ejecutado la consulta. Por otro lado, yo lo que haría sería, ir a la herramienta de Crystal, abrir ese reporte y modificar la query que lleva implicita ( Menu Base de Datos, Mostrar SQL) con la que ejecuta el programa.

Un saludo
  #8 (permalink)  
Antiguo 30/03/2004, 18:19
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 12
Antigüedad: 20 años, 2 meses
Puntos: 0
ojala te funcione esto:
1-carga en el visual tu reporte facturacliente.rpt
2-luego en database haz click derecho y agrega new database fields
3-eso te manda a seleccionar una coneccion alli escoge en vez de odbc selecciona ADO y ODBC luego escoge o crea tu coneccion
4- te sale un cuadro de texto SQL
alli ejecuta tus sentencias SQL y lo que cargues en el select
te saldran como campos a mostrar en tu reporte

espero te sirva sino enviame un mail aclarando mas tu duda.
bye
  #9 (permalink)  
Antiguo 30/03/2004, 18:21
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 12
Antigüedad: 20 años, 2 meses
Puntos: 0
ojala te funcione esto:
1-carga en el visual tu reporte facturacliente.rpt
2-luego en database haz click derecho y agrega new database fields
3-eso te manda a seleccionar una coneccion alli escoge en vez de odbc selecciona ADO y ODBC luego escoge o crea tu coneccion
4- te sale un cuadro de texto SQL
alli ejecuta tus sentencias SQL por ejemplo:
select per.nombre,per.apellido,cuen.NroCuenta
from persona per inner join cuenta cuen
where per.apellido=cuen.apellido

y lo que cargues en el select
te saldran como campos a mostrar en tu reporte

espero te sirva sino enviame un mail aclarando mas tu duda.
bye
  #10 (permalink)  
Antiguo 02/04/2004, 10:36
 
Fecha de Ingreso: abril-2004
Ubicación: Ambato
Mensajes: 2
Antigüedad: 20 años, 1 mes
Puntos: 0
Talves es problema del reporte. Revisa en el reporte que no este activado Save Data WithReports. Desactiva y prueba ota vez. utulizando la propiedad SelectionFormula del objeto de crystall report en visualBasic
  #11 (permalink)  
Antiguo 15/04/2004, 22:41
 
Fecha de Ingreso: enero-2004
Ubicación: CUSCO
Mensajes: 3
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Re: Visual Basic, Crystal y Sql

Quisiera por favor me puedas explicar con un ejemplo como puedes hacer reportes en html en vb, estoy comenzando a programar y no me gusta mucho el crystal report, quisiera poder desarrollar mejor mis reportes. Te lo agradeceria mucho. Gracias
  #12 (permalink)  
Antiguo 22/04/2004, 08:22
 
Fecha de Ingreso: abril-2004
Ubicación: Chillan
Mensajes: 5
Antigüedad: 20 años
Puntos: 0
Dim miquery As QueryDef
Consulta = "select ... from ... where ..."
Set miquery = BaseDatos.CreateQueryDef("miquery", Consulta)
'... Ahora llamas al reporte ....
Reporte.action 1
'... Elimino el Query ...
BaseDatos.QueryDefs.Delete ("miquery")

Si no eliminas el query no funciona (no debe existir en la ejecucion inicial).
Si no te funciona esto prueba mejor con un reporte enlazado a datos.
Espero te sirva
  #13 (permalink)  
Antiguo 25/08/2004, 21:31
 
Fecha de Ingreso: agosto-2004
Mensajes: 1
Antigüedad: 19 años, 8 meses
Puntos: 0
Espero te sirva

En crystal Report cundo generas un reporte, escogiendo tablas o vista,etc..
Crystal report genera automaticamente un SQL con las tablas o vistas que escogistes. Dicho SQL es semi-estatico porque solo puedes modificar la parte que va despues del WHERE lo anterior no, es decir no puedes agregar mas tablas a la consulta ni mas campos. Conclusion la propiedad SQLQuery es la encargada de manejar el SQL antes mencionado, por lo tanto en una consulta que se asigne a esta propiedad lo unico diferente que puesdes poner es lo que va despues del WHERE.
Nota: la consulta que genera automaticamente CR la encuentras en el Menu DATABASE-SHOW SQL QUERY
  #14 (permalink)  
Antiguo 26/08/2004, 07:45
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Hola, yo hace poco tuve el mismo problema y lo solucioné filtrando la información no en SQL Query sino que hay que utilizar SelectionFormula. Para filtrar solo aquella informacion que necesitas imprimir.

Informe1.SelectionFormula = "{CLIENTES.CODCLIENTE} = " & CHR$(39) & "999" & CHR$(39)
Informe1.PrintReport
Este ejemplo imprimiria un informe llamado Informe1 cuyo codigo de cliente sea igual a 999.

Aunque creo que también puede ser algo como:
Informe1.SelectionFormula = "{CLIENTES.CODCLIENTE} = " & 999

dependiendo de si el tipo de datos en la bd es numèrico o no.


En resumidas cuentas... haces el sql en Crystal Report estàtico... y filtras con la información que le mandas un campo en visual con la propiedad "SelectionFormula".

espero que te sirva... saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #15 (permalink)  
Antiguo 09/08/2005, 10:05
 
Fecha de Ingreso: agosto-2005
Mensajes: 3
Antigüedad: 18 años, 8 meses
Puntos: 0
Puede que ya hayas solucionado el problema.
De cualquier forma y por si alguien más consulta el foro, creo que tengo la respuesta.

Lo que ocurre es que desde el Crystal abres la base de datos directamente como base de datos Access, con lo que no interpreta la propiedad .SQLQuery que proviene del Visual Basic.

Prueba a abrir la misma base de datos, pero desde una conexión ODBC, y verás como, si escribes bien la sentencia SQL para la propiedad .SQLQuery, te hace la selección correctamente.

Después de recorrer foros y foros en busca de la respuesta al problema, y despues de encontrar varios hilos que lo planteaban peró ninguna respuesta que me solucionara el problema, he encontrado la respuesta a base de "probar y a ver si hay suerte".

Además no importa si en el programa VB accedes directamente a la base de datos Access. Lo importante es que desde el informe diseñado con el CR la conexión esté creada a través de ODBC.

Gracias de todas formas a todos los que nos intentan ayudar a los novatos a través de estos utilísimos foros.

Enric.
  #16 (permalink)  
Antiguo 19/02/2008, 08:17
 
Fecha de Ingreso: febrero-2008
Mensajes: 1
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Visual Basic, Crystal y Sql

Hola a todos...
como tengo varias preguntas referidas a Crystal Reports, SQL y Visual Basic, he estado estudiando las respuestas que Ustedes generosamente han brindado, por ahora continuaré analizando y aprendiendo para poder realizarles consultas más concretas al mismo tiempo que compartir los resultados que obtenga para de ese modo agradecer vuestras enseñanzas
  #17 (permalink)  
Antiguo 04/08/2008, 07:52
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 21 años
Puntos: 0
Respuesta: Visual Basic, Crystal y Sql

Cita:
Hola, yo hace poco tuve el mismo problema y lo solucioné filtrando la información no en SQL Query sino que hay que utilizar SelectionFormula. Para filtrar solo aquella informacion que necesitas imprimir.

Informe1.SelectionFormula = "{CLIENTES.CODCLIENTE} = " & CHR$(39) & "999" & CHR$(39)
Informe1.PrintReport
Este ejemplo imprimiria un informe llamado Informe1 cuyo codigo de cliente sea igual a 999.

Aunque creo que también puede ser algo como:
Informe1.SelectionFormula = "{CLIENTES.CODCLIENTE} = " & 999

dependiendo de si el tipo de datos en la bd es numèrico o no.


En resumidas cuentas... haces el sql en Crystal Report estàtico... y filtras con la información que le mandas un campo en visual con la propiedad "SelectionFormula".

espero que te sirva... saludos
hola alguin me podria ayudar con el siguiente dilema.
Sucede que necesito realizar un reporte con vb6 y crystal report, mi porblema es que necesito hacer un reporte el cual dpende de la consulta y dependiendo de la consulta se genera dicho reporte.
ejemplo hago una consulta respecto a tipo de datos de la tabla.
puede ser de un tipo 1 tipo 2 o tipo 3 la consulta eso lo ve la consulta y el informe se debe generar dependiendo de la consulta sql alquien me podria orentar mas repecto al tema ya que en crystal report solo he ñlogrado hacer informes semi estaticos como nombro un compañero arriba pero o logro hacerlos como necesito no quiero hacer un reporte por tipo. espero que haya solucion a esto agradesco de antemano toda la ayuda .
Atte
Goomba
  #18 (permalink)  
Antiguo 04/08/2008, 10:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
necesito ayuda

hola que tal necesito ayuda tengo un formulario en donde nececito traer datos apartir de un campo
el campo "folio", de ahi al colocar el folio me tiene que mostrar los datos de ese registo
como es
"Nombre
"Edad"
"Telefono",

me podrian decir como hacerlo
eh intentado con "dlookup"
peor no me da nada
los datos estan en una tabla llamada"TBLDATOS"
y necesito visualisar los regristros en elformulario"FRMcarta"
  #19 (permalink)  
Antiguo 09/02/2009, 11:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 1
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Visual Basic, Crystal y Sql

Hola , necesito hacer un informe en crystal report 8 con todos los campos de la tabla, el problema es que a esta tabla, eventualmente se le crean mas campos y necesito que se incluyan en al informe, es posible o no lo es?
He intentado hacerlo y no he podido, creo que me faltan conocimientos,

Muchas Gracias

[email protected]
Fabio
  #20 (permalink)  
Antiguo 02/05/2010, 12:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Visual Basic, Crystal y Sql

Hola, estoy trabajando en un viejo programa en VB 6.0 y CR 4.5...
CR nada más acepta 2 tablas?
Gracias
José David
[email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 05:51.