Intanto grazie x il codice d'esempio...
ho ancora qualche problemino; riporto di seguito il codice del datareport:
Public Function InitReport(IdenPrestito As Integer) As Boolean
Dim RicRecordSet As Recordset
Set RicRecordSet = New ADODB.Recordset
RicRecordSet.CursorType = adOpenKeyset
RicRecordSet.LockType = adLockOptimistic
RicRecordSet.Open "SELECT pr_ID FROM Prestiti WHERE pr_ID = " & IdenPrestito, Connescio, , , adCmdText
If RicRecordSet.RecordCount <> 0 Then
RicRecordSet.MoveFirst
Set dtrPrestitiSingolo.DataSource = RicRecordSet
With dtrPrestitiSingolo.Sections("Section6")
.Controls("txtPosizione").DataField = "pr_ID"
End With
InitReport = True
End Function
-------------------------------------------------------
ed il codice chiamante la stampa:
Private Sub cmdPrestitiStampa_Click()
IdPrestito = fgrPrestiti.TextMatrix(fgrPrestiti.RowSel, 14)
If dtrPrestitiSingolo.InitReport(IdPrestito) = True Then
dtrPrestitiSingolo.Show vbModal
Else
MsgBox "Impossibile eseguire la stampa"
End If
End Sub
-------------------------------------------------------
Con questo codice mi dà un errore, con questo messaggio "Report sections do not match data source".
-------------------------------------------------------
-------------------------------------------------------
Tieni presente, però, che il codice sopra è solo un tentativo per vedere se funziona; in realtà il codice del programma è quello che riporto di seguito:
Public Function InitReport(IdenPrestito As Integer) As Boolean
Dim LinkRecordSet As Recordset
Dim JoinRecordSet As Recordset
Set RicRecordSet = New ADODB.Recordset
RicRecordSet.CursorType = adOpenKeyset
RicRecordSet.LockType = adLockOptimistic
Set PrintRecordSet = New ADODB.Recordset
PrintRecordSet.CursorType = adOpenKeyset
PrintRecordSet.LockType = adLockOptimistic
Set LinkRecordSet = New ADODB.Recordset
LinkRecordSet.CursorType = adOpenKeyset
LinkRecordSet.LockType = adLockOptimistic
Set JoinRecordSet = New ADODB.Recordset
JoinRecordSet.CursorType = adOpenKeyset
JoinRecordSet.LockType = adLockOptimistic
With PrintRecordSet
.Fields.Append "PresIden", adInteger
.Fields.Append "PresNum", adInteger
.Fields.Append "PresData", adDate
.Fields.Append "PresTipo", adBSTR
.Fields.Append "PresFinan", adBSTR
.Fields.Append "PresGrado", adBSTR
.Fields.Append "PresMili", adBSTR
.Fields.Append "PresMatr", adBSTR
.Fields.Append "PresPos", adBSTR
.Fields.Append "PresMan", adBSTR
.Fields.Append "PresDataMan", adDate
.Fields.Append "PresImpo", adInteger
.Fields.Append "PresRata", adInteger
.Fields.Append "PresNumRate", adInteger
.Fields.Append "PresMeseIn", adBSTR
End With
PrintRecordSet.Open
RicRecordSet.Open "SELECT * FROM Prestiti WHERE pr_ID = " & IdenPrestito, Connescio, , , adCmdText
If RicRecordSet.RecordCount <> 0 Then
RicRecordSet.MoveFirst
PrintRecordSet.AddNew
PrintRecordSet!PresIden = RicRecordSet!pr_ID
PrintRecordSet!PresNum = RicRecordSet!pr_Numero
PrintRecordSet!PresData = RicRecordSet!pr_Data
LinkRecordSet.Open "SELECT * FROM PrestitiTipo WHERE pt_ID = " & RicRecordSet!pr_Tipo, Connescio, , , adCmdText
If LinkRecordSet.RecordCount <> 0 Then
PrintRecordSet!PresTipo = LinkRecordSet!pt_TipoPrestito
Else
MsgBox "Errore.", vbCritical + vbOKOnly
End If
LinkRecordSet.Close
LinkRecordSet.Open "SELECT * FROM MilitariServizio WHERE ms_ID = " & RicRecordSet!pr_Contraente, Connescio, , , adCmdText
If LinkRecordSet.RecordCount <> 0 Then
JoinRecordSet.Open "SELECT * FROM Gradi WHERE gr_ID = " & LinkRecordSet!ms_Grado, Connescio, , , adCmdText
If JoinRecordSet.RecordCount <> 0 Then
PrintRecordSet!PresGrado = JoinRecordSet!gr_SiglaGrado
Else
MsgBox "Errore. ", vbCritical + vbOKOnly
End If
JoinRecordSet.Close
PrintRecordSet!PresMili = LinkRecordSet!ms_CognomeNome
PrintRecordSet!PresMatr = LinkRecordSet!ms_Matricola
End If
If RicRecordSet!pr_Posizione <> "" Then
PrintRecordSet!PresPos = RicRecordSet!pr_Posizione
End If
Else
MsgBox "Errore." & IdenPrestito, vbCritical + vbOKOnly
End If
RicRecordSet.Close
PrintRecordSet.Update
PrintRecordSet.MoveFirst
Set dtrPrestitiSingolo.DataSource = RicRecordSet
With dtrPrestitiSingolo.Sections("Section6")
.Controls("txtPosizione").DataField = "pr_ID"
End With
InitReport = True
End Function
-------------------------------------------------------
Anche in questo caso mi dice: "Report sections do not match data source".
-------------------------------------------------------
-------------------------------------------------------
Se riesci a capire cosa cavolo non funziona....avrò fatto mille tentativi, ma non so che pesci prendere, e ho un ritardo medioevale!!!
Grazie