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
| Dim idate As Date
Dim tbinit As DAO.Recordset
Dim rst As DAO.Recordset
Dim ssql As String
'Instancier la table initiale
'c'est là qu'il n'aime pas que je ne renseigne pas mes paramètres ^^'.
Set tbinit = CurrentDb.OpenRecordset("R_Feuille_Presence", dbOpenDynaset, dbSeeChanges)
'Instancier un recordset avec les numéros d'Id existants
Set rst = CurrentDb.OpenRecordset("SELECT R_Feuille_Presence.Sa_id,R_Feuille_Presence.Se_id,R_Feuille_Presence.Sa_nom,R_Feuille_Presence.Sa_prenom" _
& " FROM R_Feuille_Presence" _
& " GROUP BY R_Feuille_Presence.Sa_id,R_Feuille_Presence.Se_id,R_Feuille_Presence.Sa_nom,R_Feuille_Presence.Sa_prenom")
With rst
.MoveFirst
'Parcourir tous les numéros distincts
While Not .EOF
'parcourir les dates selon les limites établies
For idate = Forms!F_Feuille_Presence.DateDeb To Forms!F_Feuille_Presence.DateFin
'Chercher dans la table initiale si le numéro et date existe
tbinit.FindFirst "[Sa_id]=" & rst![Sa_id] & " AND [Ho_jourscontrat]=#" & Format(idate, "mm/dd/yyyy") & "#"
If Not tbinit.NoMatch Then 'Si valeurs trouvées
ssql = "INSERT INTO FeuillePresence ( Sa_id, Ho_jourscontrat, Ho_heures, Se_id, Sa_nom, Sa_prenom )" _
& " VALUES (" & tbinit![Sa_id] & ",#" & Format(tbinit![Ho_jourscontrat], "mm/dd/yyyy") & "#,'" & tbinit![Ho_heures] & "','" & tbinit![Se_id] & "','" & tbinit![Sa_nom] & "','" & tbinit![Sa_prenom] & "')"
DoCmd.SetWarnings False
DoCmd.RunSQL ssql
DoCmd.SetWarnings True
Else
ssql = "INSERT INTO FeuillePresence ( Sa_id, Ho_jourscontrat, Se_id, Sa_nom, Sa_prenom,Ho_Heures )" _
& " VALUES (" & rst![Sa_id] & ",#" & Format(idate, "mm/dd/yyyy") & "#,'" & rst![Se_id] & "','" & rst![Sa_nom] & "','" & rst![Sa_prenom] & "','')"
DoCmd.SetWarnings False
DoCmd.RunSQL ssql
DoCmd.SetWarnings True
End If
Next idate
.MoveNext
Wend
End With
rst.Close: Set rst = Nothing
tbinit.Close: Set tbinit = Nothing |
Partager