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
| Option Compare Database
Option Explicit
' ***** déclaration des variables ***** '
Const Nombre_colonnes = 15 ' pour 15 étiquettes sur l'état maximum & _
on peut en afficher plus et donc modifier cette variable
Dim Base As Database
Dim Enregistrement As Recordset
Dim NbColonnes As Integer
Dim Total_colonnes(1 To Nombre_colonnes) As Long
Dim Total_état As Long
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim entX As Integer
If Not Enregistrement.EOF Then
If Me.FormatCount = 1 Then
For entX = 1 To NbColonnes
Me("Nombre" + Format(entX)) = xtabCnulls(Enregistrement(entX - 1))
Next entX
For entX = NbColonnes + 2 To Nombre_colonnes
Me("Nombre" + Format(entX)).Visible = False
Next entX
Enregistrement.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 = 2 To NbColonnes
Nblignes = Nblignes + Me("Nombre" + Format(entX))
Total_colonnes(entX) = Total_colonnes(entX) + Me("Nombre" + Format(entX))
Next entX
Me("Nombre" + Format(NbColonnes + 1)) = Nblignes
Total_état = Total_état + Nblignes
End If
End Sub
Private Sub Détail_Retreat()
Enregistrement.MovePrevious
End Sub
Private Sub EntêteÉtat_Format(Annuler As Integer, FormatCount As Integer)
Enregistrement.MoveFirst
Initvar
End Sub
Private Sub EntêtePage_Format(Annuler As Integer, FormatCount As Integer)
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
Me("Entête" + Format(entX)) = Enregistrement(entX - 1).Name
Next entX
' Crée l'entête Totaux de la prochaine zone de liste disponible.
Me("Entête" + Format(NbColonnes + 1)) = "Totaux"
' Cache les zones de texte inutilisées dans la section Entête.
For entX = (NbColonnes + 2) To Nombre_colonnes
Me("Entête" + Format(entX)).Visible = False
Next entX
End Sub
Private Sub PiedÉtat_Format(Annuler As Integer, NBimpression As Integer)
Dim entX As Integer
For entX = 2 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
Me("Total" + Format(entX)).Visible = False
Next entX
End Sub
Private Sub Report_Close()
Enregistrement.Close
End Sub
Private Sub Report_NoData(Annuler As Integer)
MsgBox "Aucun enregistrement n'a été trouvé.", vbExclamation, "Oh la boulette !!!"
Enregistrement.Close
Annuler = True
End Sub
Private Sub Report_Open(Annuler As Integer)
Dim Requête As QueryDef
Set Base = CurrentDb
Set Requête = Base.QueryDefs("R110_Gen_CA_Temp_AC")
Set Enregistrement = Requête.OpenRecordset()
'Définit le nombre de colonnes de la requête
NbColonnes = Requête.Fields.Count
End Sub
Private Sub Initvar()
Dim entX As Integer
Total_état = 0
For entX = 1 To NbColonnes
Total_colonnes(entX) = 0
Next entX
End Sub |
Partager