Hola a todos, estoy enpezando con el crystal report y ya he hecho varios informes de los cuales quedan bien, pero el problema es cuando tengo que tomar el ID de una tabla para mostrar el nombre en el informe, este me repite solo el primero
Código:
Dim strRecordsFormula As String
Private Sub Form_Load()
Call IniciarConexion2
DisableGroup
InitCrystalReport
End Sub
Private Sub Form_Resize()
On Error Resume Next
CRView.Width = Me.ScaleWidth - 50
CRView.Height = Me.ScaleHeight - 1600
End Sub
Private Sub InitCrystalReport()
Dim CRReport As CRAXDDRT.Report
Dim CRApp As New CRAXDDRT.Application
Dim i As Integer
Set CRReport = CRApp.OpenReport(App.Path & "\Reportes\pacientes.rpt")
With CRReport
.Database.Tables(1).Location = (App.Path & "\anestesiologia.mdb")
If optFilter(0).Value = True And strRecordsFormula <> "" Then
.RecordSelectionFormula = strRecordsFormula
Else
.RecordSelectionFormula = "{pacientes.id_obra_social1} = " & Val(DataCombo1.BoundText) & " OR {pacientes.id_obra_social2} = " & Val(DataCombo1.BoundText) & " OR {pacientes.id_obra_social3} = " & Val(DataCombo1.BoundText) & " OR {pacientes.id_obra_social4} = " & Val(DataCombo1.BoundText) & ""
End If
If DataCombo1.TabIndex > 0 Then
.FormulaFields(1).Text = "'" & DataCombo1.Text & "'"
End If
'Creo que es aqui donde no realizo bien las consultas
If rs.State = 1 Then rs.Close
rs.Open "SELECT * FROM pacientes", cnn2, 1, 1
If rs.RecordCount > 0 Then
rs2.Open "SELECT o.nombre " & _
"FROM pacientes p INNER JOIN obra_social o ON p.id_obra_social1 = o.id_obra_social ", cnn2, 1, 1
.FormulaFields(3).Text = "'" & rs2!nombre & "'"
rs2.Close
rs2.Open "SELECT o.nombre " & _
"FROM pacientes p INNER JOIN obra_social o ON p.id_obra_social2 = o.id_obra_social ", cnn2, 1, 1
.FormulaFields(4).Text = "'" & rs2!nombre & "'"
rs2.Close
rs2.Open "SELECT o.nombre " & _
"FROM pacientes p INNER JOIN obra_social o ON p.id_obra_social3 = o.id_obra_social ", cnn2, 1, 1
.FormulaFields(5).Text = "'" & rs2!nombre & "'"
rs2.Close
End If
End With
With CRView
.ReportSource = CRReport
.ViewReport
.Zoom (100)
While .IsBusy
DoEvents
Wend
.Visible = False
.Refresh
End With
Set CRApp = Nothing
Set CRReport = Nothing
End Sub
bla bla bla
Lo que me aparece en el reporte es
Código:
Nombre Apellido Fecha OB1 OB2 OB3
juan perez 12/11/1975 obra1 obra2 obra4
lucas padilla 1/1/1980 obra1 obra2 obra4
maria conte 5/8/2011 obra1 obra2 obra4
Es en los campos OB1 OB2 y OB3 que me toma los valores del primer cliente
Tampoco se si es la forma mas efectiva de pasar los datos
alguna ayuda
muchas gracias