Problemas con crystal report

01/08/2003 - 20:38 por cousi | Informe spam
Hola a todos

Tengo un problema con un report que hice con crystal. Antes de nada trabajop
con vb 6.0, Sp 5, Crystal report 8.0, access 2000.

El report lo hago con el diseñador. Pero en tiempo de ejecución le doy los
parametros que quieren que salgan pero en el report me salen todos los
registros.

el codigo es el siguiente:

Option Explicit

Private cn As ADODB.Connection

Private rs As ADODB.Recordset

Dim Report As New CrystalReport2 'este es el diseñador



Private Sub Form_Load()



'Screen.MousePointer = vbHourglass

Dim a As String

Dim csql As String



Set cn = New ADODB.Connection

Set rs = New ADODB.Recordset



modINI.RutaArchivoINI = App.Path & "\Aplicacion.ini"

a = modINI.strLeerClaveString("personal", "RutaBD")



With cn

.Provider = "Microsoft.Jet.OLEDB.4.0"

.ConnectionString = "data source=" & a & ";user id=admin"

.CursorLocation = adUseClient

.Open

End With



'categorias

If frmbuscar.op1.Value = True Then

csql = "SELECT personal.nif, nombre, apellido1, apellido2, provincia,
telefono, movil FROM personal INNER JOIN catespax ON (personal.nif catespax.dni) WHERE (cate = '" + frmbuscar.cbocate.Text + "') or (cate1 = '"
+ frmbuscar.cbocate.Text + "') or (cate2 = '" + frmbuscar.cbocate.Text + "')
or (catede = '" + frmbuscar.cbocate.Text + "')"

End If



'categorias, provincia

If frmbuscar.op1.Value = True And frmbuscar.op12.Value = True Then

csql = "SELECT personal.nif, nombre, apellido1, apellido2, provincia,
telefono, movil FROM personal INNER JOIN catespax ON (personal.nif catespax.dni) WHERE (((cate = '" + frmbuscar.cbocate.Text + "') or (cate1 '" + frmbuscar.cbocate.Text + "') or (cate2 = '" + frmbuscar.cbocate.Text +
"') or (catede = '" + frmbuscar.cbocate.Text + "')) AND (provincia = '" +
frmbuscar.cboProv.Text + "')) "

End If





rs.Open csql, cn, adOpenForwardOnly, adLockReadOnly



Report.DiscardSavedData

Report.Database.SetDataSource rs

CRViewer1.ReportSource = Report

CRViewer1.ViewReport

Screen.MousePointer = vbDefault



End Sub



Private Sub Form_Resize()

CRViewer1.Top = 0

CRViewer1.Left = 0

CRViewer1.Height = ScaleHeight

CRViewer1.Width = ScaleWidth



End Sub.



Cuando lo ejecuto me saca todos los registros que tiene la tabla, pero por
ejemplo si lo pongo en un proyecto nuevo funciona perfectamente. ¿Alguien
sabe por que???

¿Como lo puedo solucionar???



Muchas gracias



P.D. Me corre un poco de prisa



Muchisimas garcias.



Jose Mª Cousiño Goicolea
 

Leer las respuestas

#1 Albertino
02/08/2003 - 01:12 | Informe spam
hay un arametro mas .query="select * from x WHERE
condicion" y que tu archivo en cristal no diga en
File>guardar con datos


Hola a todos

Tengo un problema con un report que hice con crystal.


Antes de nada trabajop
con vb 6.0, Sp 5, Crystal report 8.0, access 2000.

El report lo hago con el diseñador. Pero en tiempo de


ejecución le doy los
parametros que quieren que salgan pero en el report me


salen todos los
registros.

el codigo es el siguiente:

Option Explicit

Private cn As ADODB.Connection

Private rs As ADODB.Recordset

Dim Report As New CrystalReport2 'este es el diseñador



Private Sub Form_Load()



'Screen.MousePointer = vbHourglass

Dim a As String

Dim csql As String



Set cn = New ADODB.Connection

Set rs = New ADODB.Recordset



modINI.RutaArchivoINI = App.Path & "\Aplicacion.ini"

a = modINI.strLeerClaveString("personal", "RutaBD")



With cn

.Provider = "Microsoft.Jet.OLEDB.4.0"

.ConnectionString = "data source=" & a & ";user


id=admin"

.CursorLocation = adUseClient

.Open

End With



'categorias

If frmbuscar.op1.Value = True Then

csql = "SELECT personal.nif, nombre, apellido1,


apellido2, provincia,
telefono, movil FROM personal INNER JOIN catespax ON


(personal.nif >catespax.dni) WHERE (cate = '" + frmbuscar.cbocate.Text
+ "') or (cate1 = '"
+ frmbuscar.cbocate.Text + "') or (cate2 = '" +


frmbuscar.cbocate.Text + "')
or (catede = '" + frmbuscar.cbocate.Text + "')"

End If



'categorias, provincia

If frmbuscar.op1.Value = True And frmbuscar.op12.Value =


True Then

csql = "SELECT personal.nif, nombre, apellido1,


apellido2, provincia,
telefono, movil FROM personal INNER JOIN catespax ON


(personal.nif >catespax.dni) WHERE (((cate = '" + frmbuscar.cbocate.Text
+ "') or (cate1 >'" + frmbuscar.cbocate.Text + "') or (cate2 = '" +
frmbuscar.cbocate.Text +
"') or (catede = '" + frmbuscar.cbocate.Text + "')) AND


(provincia = '" +
frmbuscar.cboProv.Text + "')) "

End If





rs.Open csql, cn, adOpenForwardOnly, adLockReadOnly



Report.DiscardSavedData

Report.Database.SetDataSource rs

CRViewer1.ReportSource = Report

CRViewer1.ViewReport

Screen.MousePointer = vbDefault



End Sub



Private Sub Form_Resize()

CRViewer1.Top = 0

CRViewer1.Left = 0

CRViewer1.Height = ScaleHeight

CRViewer1.Width = ScaleWidth



End Sub.



Cuando lo ejecuto me saca todos los registros que tiene


la tabla, pero por
ejemplo si lo pongo en un proyecto nuevo funciona


perfectamente. ¿Alguien
sabe por que???

¿Como lo puedo solucionar???



Muchas gracias



P.D. Me corre un poco de prisa



Muchisimas garcias.



Jose Mª Cousiño Goicolea




.

Preguntas similares