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 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
| Public Function maFonction0721Click()
If IsNull(Forms![Formulaire107Reservation]![Controle0703Nom]) _
Or IsNull(Forms![Formulaire107Reservation]![Controle0704Prenom]) _
Or IsNull(Forms![Formulaire107Reservation]![Controle0705Email]) _
Or IsNull(Forms![Formulaire107Reservation]![Controle0706Statut]) _
Or IsNull(Forms![Formulaire107Reservation]![Controle0711Jour]) _
Or IsNull(Forms![Formulaire107Reservation]![Controle0712HeureDebut]) _
Or IsNull(Forms![Formulaire107Reservation]![Controle0713HeureFin]) Then
MsgBox "Les champs autres que ""Commentaire"" sont obligatoires."
Else
If Not Forms![Formulaire107Reservation]![Controle0705Email] Like "*@*.*" Then
MsgBox "Le champ ""adresse mail"" doit respecter le format : ""*****@***.**""."
Else
Dim j As Integer
j = maFonctionReservationCompatible(Forms![Formulaire107Reservation]![Controle0717Date].Caption, Forms![Formulaire107Reservation]![Controle0712HeureDebut], Forms![Formulaire107Reservation]![Controle0713HeureFin])
If j = 1 Then
MsgBox "Vous ne pouvez pas réserver ce créneau, car il est incompatible avec au moins une autre réservation existante."
Else
Dim max As Integer
Dim r As DAO.Recordset
Set r = CurrentDb.OpenRecordset("SELECT * FROM Table04HistoriqueReservations")
If r.EOF Then
max = 1
Else
Dim r2 As DAO.Recordset
Set r2 = CurrentDb.OpenRecordset("SELECT MAX(Table04HistoriqueReservations.N°) FROM Table04HistoriqueReservations")
r2.MoveFirst
max = r2.Fields(0).Value
max = max + 1
r2.Close
End If
r.Close
Dim r3 As DAO.Recordset
Set r3 = CurrentDb.OpenRecordset("SELECT N°, Categorie FROM Table01Machines WHERE Table01Machines.N°=" & Forms![Formulaire102FicheMachine]![Controle0309TexteCache1] & ";")
r3.MoveFirst
Dim r0 As DAO.Recordset
Set r0 = CurrentDb.OpenRecordset("SELECT N° FROM Table35Statut WHERE statut = '" & Forms![Formulaire107Reservation]![Controle0706Statut].[Value] & "';")
r0.MoveFirst
Dim numero As String
numero = ""
Dim num(8) As Integer
Dim i As Integer
For i = 1 To 8
Randomize
num(i) = Int(10 * Rnd)
numero = numero + CStr(num(i))
Next
DoCmd.SetWarnings False
DoCmd.RunSQL " INSERT INTO Table03Reservations (N°, NomUtilisateur, PrenomUtilisateur, EmailUtilisateur, StatutUtilisateur, N°Machine, CategorieMachine, DateReservee, HeureDebut, HeureFin, DateReservation, HeureReservation, IdentifiantReservation, Commentaire) VALUES (" & max & ", [Formulaires]![Formulaire107Reservation]![Controle0703Nom].[value], [Formulaires]![Formulaire107Reservation]![Controle0704Prenom].[value], [Formulaires]![Formulaire107Reservation]![Controle0705Email].[Value] & '#mailto:' & [Formulaires]![Formulaire107Reservation]![Controle0705Email].[Value], '" & r0.Fields(0).Value & "', '" & r3.Fields(0).Value & "', '" & r3.Fields(1).Value & "', [Formulaires]![Formulaire107Reservation]![Controle0717Date].Caption, [Formulaires]![Formulaire107Reservation]![Controle0712HeureDebut].[value], [Formulaires]![Formulaire107Reservation]![Controle0713HeureFin].[value], DATE(), TIME(), " & numero & _
", Forms![Formulaire107Reservation]![Controle0718Commentaire].[value]);"
DoCmd.RunSQL " INSERT INTO Table04HistoriqueReservations (N°, NomUtilisateur, PrenomUtilisateur, EmailUtilisateur, StatutUtilisateur, N°Machine, CategorieMachine, DateReservee, HeureDebut, HeureFin, DateReservation, HeureReservation, IdentifiantReservation, Commentaire, Annulee) VALUES (" & max & ", [Formulaires]![Formulaire107Reservation]![Controle0703Nom].[value], [Formulaires]![Formulaire107Reservation]![Controle0704Prenom].[value], [Formulaires]![Formulaire107Reservation]![Controle0705Email].[Value] & '#mailto:' & [Formulaires]![Formulaire107Reservation]![Controle0705Email].[Value], [Formulaires]![Formulaire107Reservation]![Controle0706Statut].[value], '" & r3.Fields(0).Value & "', '" & r3.Fields(1).Value & "', [Formulaires]![Formulaire107Reservation]![Controle0717Date].Caption, [Formulaires]![Formulaire107Reservation]![Controle0712HeureDebut].[value], [Formulaires]![Formulaire107Reservation]![Controle0713HeureFin" & _
"].[value], DATE(), TIME(), " & numero & ", Forms![Formulaire107Reservation]![Controle0718Commentaire].[value], 'non');"
DoCmd.SetWarnings True
If IsNull(Forms![Formulaire107Reservation]![Controle0705Email].[Value]) Or Forms![Formulaire107Reservation]![Controle0705Email].[Value] = "" Then
DoCmd.RunSQL " UPDATE Table03Reservations SET [EmailUtilisateur] = '' WHERE Table03Reservations.N° = " & max & ";"
DoCmd.RunSQL " UPDATE Table04HistoriqueReservations SET [EmailUtilisateur] = '' WHERE Table04HistoriqueReservations.N° = " & max & ";"
End If
Dim r4 As DAO.Recordset
Set r4 = CurrentDb.OpenRecordset("SELECT N°, NomUtilisateur, PrenomUtilisateur, EmailUtilisateur, StatutUtilisateur, N°Machine, CategorieMachine, DateReservee, HeureDebut, HeureFin, DateReservation, HeureReservation, IdentifiantReservation, Commentaire FROM Table03Reservations WHERE Table03Reservations.N° = " & max & ";")
r4.MoveFirst
Dim b As Integer
b = InStr(1, r4.Fields(3).Value, "#mailto:")
If b > 1 Then
Dim a As String
a = Left(r4.Fields(3).Value, b - 1)
End If
Dim Body As String
Body = "Votre réservation a bien été enregistrée. Voici le récapitulatif de l'opération :" & vbCrLf & vbCrLf & vbCrLf & _
"Numéro de la réservation : " & r4.Fields(0).Value & vbCrLf & _
"Numéro de la machine : " & r4.Fields(5).Value & vbCrLf & _
"Nom de la machine : " & r4.Fields(6).Value & vbCrLf & _
"Réservation effectuée le " & r4.Fields(10).Value & " à " & r4.Fields(11).Value & "." & vbCrLf & vbCrLf & _
"Numéro personnel pour annuler la réservation : " & r4.Fields(12).Value & vbCrLf & vbCrLf & vbCrLf & _
"Données personnelles : " & vbCrLf & vbCrLf & _
"Nom : " & r4.Fields(1).Value & vbCrLf & _
"Prénom: " & r4.Fields(2).Value & vbCrLf & _
"E-mail : " & a & vbCrLf & _
"Statut : " & r4.Fields(4).Value & vbCrLf & vbCrLf & vbCrLf & _
"Date : " & r4.Fields(7).Value & vbCrLf & _
"Horaires : " & r4.Fields(8).Value & " - " & r4.Fields(9).Value & vbCrLf & vbCrLf & vbCrLf & _
"Commentaire : " & r4.Fields(13).Value
CreateEmail Forms![Formulaire107Reservation]![Controle0705Email].[Value], "Confirmation de réservation de la machine " & r3.Fields(1).Value, Body
MsgBox "Votre réservation a bien été enregistrée. Vous aurez besoin de son numéro pour la modifier. N° personnel de réservation : " + numero + "." & vbCrLf & _
"Si vous possèdez un compte Outlook sur votre session, un mail récapitulant l'ensemble des détails de la réservation va vous être envoyé par ce compte, à l'adresse mail " & _
"renseignée. Si vous n'avez pas de compte Outlook, veuillez noter le numéro personnel de réservation, et vous pouvez fermer Outlook."
DoCmd.Close acForm, "Formulaire107Reservation"
maFonctionEffacement
maFonctionAffichage
DoCmd.OpenForm "Formulaire105Planning", acNormal, , , , acWindowNormal
Forms("Formulaire105Planning").OnClose = "=PlanningClose()"
Dim ctl As Control
Set ctl = Forms![Formulaire105Planning]![ControleSousform].Controls("SemainePrécédente")
ctl.OnClick = "=TestClick3(1)"
Set ctl = Nothing
Set ctl = Forms![Formulaire105Planning]![ControleSousform].Controls("SemaineSuivante")
ctl.OnClick = "=TestClick4(1)"
Set ctl = Nothing
Set ctl = Forms![Formulaire105Planning]![ControleSousform].Controls("MoisPrécédent")
ctl.OnClick = "=TestClick3(4)"
Set ctl = Nothing
Set ctl = Forms![Formulaire105Planning]![ControleSousform].Controls("MoisSuivant")
ctl.OnClick = "=TestClick4(4)"
Set ctl = Nothing
DoCmd.SetWarnings False
DoCmd.RunSQL " UPDATE Table12VariablesGlobales SET Etat = 1 WHERE N° = 1;"
DoCmd.SetWarnings True
Start_Test_Timer
Dim r1 As DAO.Recordset
Set r1 = CurrentDb.OpenRecordset("SELECT N°, Categorie FROM Table01Machines WHERE Table01Machines.N°=" & Forms![Formulaire102FicheMachine]![Controle0309TexteCache1] & ";")
r1.MoveFirst
'Forms![Formulaire105Planning]![Étiquette620].Caption = "Planning de : " + r.Fields(1).Value + " (Identifiant : " + CStr(r.Fields(0).Value) + ")"
Forms![Formulaire105Planning]![Étiquette620].Caption = "Planning de : " + r1.Fields(1).Value
Forms![Formulaire105Planning]![Étiquette620].ForeColor = QBColor(0)
Forms![Formulaire105Planning]![Étiquette620].FontSize = 18
Forms![Formulaire105Planning]![Texte625] = Forms![Formulaire102FicheMachine]![Controle0310TexteCache2].[Value]
Dim r70 As DAO.Recordset
Set r70 = CurrentDb.OpenRecordset("SELECT max(N°) FROM Table23HeureQuart;")
Dim r80 As DAO.Recordset
Set r80 = CurrentDb.OpenRecordset("SELECT max(N°) FROM Table22Jour;")
r70.MoveFirst
r80.MoveFirst
Dim im As Integer
Dim jm As Integer
im = r70.Fields(0).Value
jm = r80.Fields(0).Value
For j = 1 To im - 1
For i = 1 To jm
Set ctl = Forms![Formulaire105Planning].Controls("Creneau" + CStr(j) + CStr(i))
ctl.OnClick = "=TestClick(" + CStr(j) + ", " + CStr(i) + ")"
Set ctl = Nothing
Next i
Next j
Forms![Formulaire105Planning]![Texte610] = Forms![Formulaire102FicheMachine]![Controle0309TexteCache1].[Value]
MsgBox "Vous pouvez faire une réservation. Attention, vous n'avez que 5 minutes pour réaliser votre réservation. Ce délai dépassé, le planning se fermera automatiquement, et vous devrez recommencer la démarche depuis le formulaire précédent."
End If
End If
End If
End Function |
Partager