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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
| Option Compare Database
' ***** déclaration des variables ***** '
Const Nombre_colonnes = 7 ' Nombre maximum d'étiquettes sur l'état (par rapport à l'exemple) & _
on peut en afficher plus et donc modifier cette variable
Dim dbBase As DAO.Database
Dim rstEnregistrement As DAO.Recordset
Dim NbColonnes As Integer
Dim Total_colonnes(1 To Nombre_colonnes) As Long
Dim Total_etat As Long
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim entX As Integer
If Not rstEnregistrement.EOF Then
If Me.FormatCount = 1 Then
For entX = 1 To NbColonnes
Me("Detail" + Format(entX)) = Nz(rstEnregistrement(entX - 1), 0)
Next entX
For entX = NbColonnes + 2 To Nombre_colonnes
Me("Detail" + Format(entX)).Visible = False
Next entX
rstEnregistrement.MoveNext
End If
End If
End Sub
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
Dim entX As Integer
Dim Nblignes As Long
If Me.PrintCount = 1 Then
Nblignes = 0
For entX = 4 To NbColonnes
Nblignes = Nblignes + Me("Detail" & entX) '
Total_colonnes(entX) = Total_colonnes(entX) + Me("Detail" + Format(entX))
Next entX
Me("Detail" + Format(NbColonnes + 1)) = Nblignes
Total_état = Total_état + Nblignes
End If
'utiliser Détail_Print, PAS Détail_Format qui est appelé PLUSIEURS fois
If ([NoLigne] Mod 2) = 0 Then
Section(0).BackColor = vbWhite
Else
Section(0).BackColor = 13434879
'jaune pâle : joli et discret
End If
End Sub
Private Sub Détail_Retreat()
rstEnregistrement.MovePrevious
End Sub
Private Sub EntêteÉtat_Format(Annuler As Integer, FormatCount As Integer)
rstEnregistrement.MoveFirst
Initvar
End Sub
Private Sub PiedÉtat_Format(Annuler As Integer, NBimpression As Integer)
Dim entX As Integer
'
' ' Affecte la valeur Total_Colonne(entX) des champs en colonne au champs total
For entX = 4 To NbColonnes
Me("Total" + Format(entX)) = Total_colonnes(entX)
Next entX
' Place TotalEtat dans une boite de texte dans le pied d'état.
Me("Total" + Format(NbColonnes + 1)) = Total_état
' Cache les zones de texte inutilisées dans le pied d'état.
'For entX = (NbColonnes + 2) To Nombre_colonnes
For entX = (NbColonnes + 2) To Nombre_colonnes
Me("Total" + Format(entX)).Visible = False
Next entX
End Sub
Private Sub Report_Close()
rstEnregistrement.Close
End Sub
Private Sub Report_NoData(Annuler As Integer)
MsgBox "Aucun enregistrement n'a été trouvé.", vbExclamation, "Information"
rstEnregistrement.Close
Annuler = True
End Sub
Private Sub Report_Open(Annuler As Integer)
Dim rstRequete As DAO.QueryDef
Set dbBase = CurrentDb
Set rstRequete = dbBase.QueryDefs("Req_action_log_utilisateur_croisee")
Set rstEnregistrement = rstRequete.OpenRecordset()
'Définit le nombre de colonnes de la requête
NbColonnes = rstRequete.Fields.Count
End Sub
Private Sub Initvar()
Dim entX As Integer
Total_etat = 0
For entX = 1 To NbColonnes
Total_colonnes(entX) = 0
Next entX
End Sub
Private Sub ZoneEntêtePage_Format(Cancel As Integer, FormatCount As Integer)
' Pour la version 2002 : remplacer EntêtePage_Format par Zone EntêtePage_Format. A voir pour les autres versions
Dim entX As Integer
' Met les entêtes de colonnes
' dans des zones de texte dans la section Entête.
'For entX = 1 To NbColonnes
For entX = 2 To NbColonnes
Me("Entete" + Format(entX)) = rstEnregistrement(entX - 1).Name
Next entX
' Crée l'entête Totaux de la prochaine zone de liste disponible.
Me("Entete" + Format(NbColonnes + 1)) = "Totaux"
' Cache les zones de texte inutilisées dans la section Entête.
For entX = (NbColonnes + 2) To Nombre_colonnes
Me("Entete" + Format(entX)).Visible = False
Next entX
End Sub |
Partager