1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
Function Stringformat( _
ByVal strchaine As String, _
ParamArray varvaleurs() As Variant) As String
Dim intI As Integer
For intI = LBound(varvaleurs) To UBound(varvaleurs)
strchaine = Replace(strchaine, "{" & intI & "}", Nz(varvaleurs(intI)))
Next
Stringformat = strchaine
End Function
' ---
' CREATION DE FICHES PDF
' ---
'
Sub ESF()
Dim strFichier As String
Dim strFichierpdf As String
Dim strEtat As String
Dim strFiltre As String
Dim rst As DAO.Recordset
Dim Qdf As QueryDef
Dim strSQL As String
' Nom de l'état à imprimer
strEtat = "E_MISSIONS_EMPLOYES"
' Nom de base du fichier PDF à créer
strFichier = "c:\users\documents\ESF\" & "{1} {2} - {0} VACATIONS " & Format([Forms]![F_MENU]![Debut], "dd") & " AU " & Format([Forms]![F_MENU]![Fin], "ddmmyyyy") & ".pdf"
Set Qdf = CurrentDb.QueryDefs("R_DETAIL_EMPLOYES_PERIODE")
Qdf.Parameters(0).Value = CDate(Format([Forms]![F_MENU]![Debut], "mm/dd/yyyy"))
Qdf.Parameters(1).Value = CDate(Format([Forms]![F_MENU]![Fin], "mm/dd/yyyy"))
Shell "explorer C:\documents\ESF\ ", vbNormalFocus
Set rst = Qdf.OpenRecordset
' Parcourir toute la liste
While Not rst.EOF
' Le nom du fichier varie en fonction de la personne
strFichierpdf = Stringformat(strFichier, _
Format(rst("MATRICULE"), "000"), _
rst("NOM_RESERVISTE"), _
rst("PRENOM_RESERVISTE"))
' Construire le filtre
strFiltre = "[MATRICULE] = " & rst("MATRICULE")
' Imprimer l'état en le filtrant sur la personne concernée
printAsPdf strFichierpdf, strEtat, strFiltre
' Personne suivante
rst.MoveNext
Wend
' Terminé !
rst.Close
Set rst = Nothing
MsgBox "Opération terminée !", vbInformation
End Sub
' IMPRESSION D'UN ETAT EN PDF
' ---
'
Sub printAsPdf( _
ByVal strFichierpdf As String, _
ByVal strEtat As String, _
Optional ByVal strWhere As String = "", _
Optional ByVal blnOpenReader As Boolean = False)
' Ouvrir l'état en mode caché
' DoCmd.OpenReport strReportName, acViewPreview, , _
strWhere, acHidden
DoCmd.OpenReport strEtat, acViewPreview, , _
strWhere ', acHidden
DoCmd.OutputTo acOutputReport, strEtat, acFormatPDF, strFichierpdf, blnOpenReader
' Refermer l'état
DoCmd.Close acReport, strEtat
End Sub |
Partager