Beste groep,
ik doe een poging om via een recordset een aantal reports, waarvan de benamingen opgenomen in zijn in een tabel te printen (als test staat het op nog acPreview), wat best lukt, maar nu wil ik via de "open args" argumenten van bepaalde rapporten twee exemplaren laten printen en van andere niet. Het eerste exemplaar dacht ik via de open args een titel mee te geven als bv "Exemplaar WZC" en het tweede "Exemplaar familie". De recordset zou moeten in de tabel "Tbl_documenten_benamingen" opzoeken waar het veld "Directprintcontractfamilie" staat aangevinkt en van dat bijbehorend rapport een tweede maken.
Is het überhaupt mogelijk open args argumenten mee te geven via een recordset? Een voorbeeldje maken vraagt anders nogal wat tijd.
NB: Als ik het rapport buiten de recordset om print lukt het wel om de open args mee te geven.
ik doe een poging om via een recordset een aantal reports, waarvan de benamingen opgenomen in zijn in een tabel te printen (als test staat het op nog acPreview), wat best lukt, maar nu wil ik via de "open args" argumenten van bepaalde rapporten twee exemplaren laten printen en van andere niet. Het eerste exemplaar dacht ik via de open args een titel mee te geven als bv "Exemplaar WZC" en het tweede "Exemplaar familie". De recordset zou moeten in de tabel "Tbl_documenten_benamingen" opzoeken waar het veld "Directprintcontractfamilie" staat aangevinkt en van dat bijbehorend rapport een tweede maken.
Is het überhaupt mogelijk open args argumenten mee te geven via een recordset? Een voorbeeldje maken vraagt anders nogal wat tijd.
NB: Als ik het rapport buiten de recordset om print lukt het wel om de open args mee te geven.
Code:
Private Sub CmbAlleRapporten_Click()
On Error GoTo Err_CmbAlleRapporten_Click
Dim dbsCurrent As Database
Dim rs As Object
Set dbsCurrent = CurrentDb
Dim Aantal
Dim voorwaarde
Dim Cancel As Boolean
Dim stDocName As String
Dim stLinkCriteria As String
Dim strsql As String
Dim strfamilie As Boolean
'check of er een bewoner is geselecteerd:
If (IsNull(Me.TxtBNummer.Value)) Then
MsgBox "Er is geen bewoner geselecteerd, herbegin", vbOKOnly + vbInformation, "Waarschuwing"
DoCmd.Close
Exit Sub
End If
If MsgBox("Wilt U alle aangevinkte Rapporten afdrukken direct naar de printer?" & vbCrLf & _
"Het systeem kiest zelf indien er een blanco of een ingevuld rapport gestuurd wordt." _
, vbQuestion + vbYesNo, "Bevestiging gevraagd") = vbYes Then
'check of er minstens 1 rapport is geselecteerd:
If Not IsNull(Me.TxtBNummer.Value) Then voorwaarde = " Tbl_documenten_benamingen.Directprint = -1"
Aantal = DCount("Directprint", "Tbl_documenten_benamingen", voorwaarde)
If Aantal = 0 Then
MsgBox "Er zijn geen selecties van rapporten gemaakt, U moet er minstens één maken " & vbCrLf & _
"voor U deze functie kunt gebruiken", vbOKOnly + vbCritical, "Waarschuwing"
Me.Sub_Frm_Directprint_contracten.SetFocus
Exit Sub
End If
Me.Visible = False
Set rs = dbsCurrent.OpenRecordset("select * from Tbl_documenten_benamingen where Directprintcontract = True And Directprint = True")
If (Not rs.EOF) Then
rs.MoveFirst
Do Until rs.EOF = True
stDocName = rs("Documentnaam")
strfamilie = rs("Directprintcontractfamilie")
If strfamilie = True Then
stLinkCriteria = "[BNummer] = " & Me!TxtBNummer.Value
DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria, , "Exemplaar familie"
End If
stLinkCriteria = "[BNummer] = " & Me!TxtBNummer.Value
DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria, , "Exemplaar WZC"
rs.MoveNext
Loop
Else
MsgBox "Er zijn geen rapporten.", vbOKOnly + vbCritical, "Waarschuwing"
Exit Sub
End If
rs.Close
Set rs = Nothing
dbsCurrent.Close
' zet vinkje aan bij de rapportnaam in de Tbl_documenten
strsql = "UPDATE Tbl_documenten SET Tbl_documenten.Direct_print_contracten_uitgevoerd = True " & vbCrLf & _
"WHERE Tbl_documenten.BNummer=" & Me!TxtBNummer.Value & " AND Tbl_documenten.Instellingnummer=[Forms]![Frm_Instelling]![Id];"
DoCmd.RunSQL strsql
MsgBox "Alle aangevinkte rapporten werden correct naar de printer gestuurd.", vbOKOnly + vbInformation, "Bevestigingmelding van afdrukken"
Else
MsgBox "Printopdracht geannuleerd door de gebruiker.", vbOKOnly + vbInformation, "Annulatie door de gebruiker"
Exit Sub
End If
Exit_CmbAlleRapporten_Click:
Exit Sub
Err_CmbAlleRapporten_Click:
MsgBox Err.Description
Resume Exit_CmbAlleRapporten_Click
End Sub