Bonjour,
Dans un formulaire de saisie de travail journalier de salarier, je souhaite dupliquer le travail d'un salarier vers un autre.
Les informations saisies et à dupliquer sont : le salarier(IDSalarier), le client(IDChantier), la date (Date), le travail (Travail), et le temps (Heure).
Ces informations sont stockés dans une table "TblSuiviHeur"
La procédure:
1) filtrer la personne et la date
2) copier la sélection
3) creer de nouveaux enregistrements et copier la sélection en modifient le salarier
4) enregistrer
Je parviens à filter la personne et la date, par contre je ne recopie dans la table que le premier enregistrement du filtre.
Le Debug.Print m'affiche bien les enregistrements à copier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Public Sub Dupliquer() Dim db As Database, rs As Recordset, Sql As String Dim strFiltre As String Dim Sa As String Dim Da As Date 'Récup les informations dans le formulaire de saisie Sa = Forms![FrmNouvelleFicheHebdo].Form![Salarier] Da = Forms![FrmNouvelleFicheHebdo].Form![Texte6] Set db = CurrentDb Set rs = db.OpenRecordset("TblSuiviHeur", dbOpenDynaset) ' Filtre sur La date If Not IsNull(Da) Then strFiltre = "([Date]=" & DateUS(Da) & ")" End If ' Filtre sur L'intervenant If Not IsNull(Sa) Then If strFiltre <> "" Then strFiltre = strFiltre & " AND " strFiltre = strFiltre & "([IDSalarier]=" & (Sa) & ")" End If ' Appliquer le filtre à une requette Sql = "SELECT * FROM [TblSuiviHeur]" If strFiltre <> "" Then Sql = Sql & " WHERE( " & strFiltre & ")" Set rs = db.OpenRecordset(Sql) rs.MoveFirst Do Until rs.EOF = True Debug.Print rs![IDSalarier], rs![Date], rs![IDChantier], rs![Heure], rs![Travail] rs.AddNew rs![IDSalarier] = Sa rs![Date] = Da rs.Update rs.MoveNext Loop rs.Close End Sub
Quelqu'un à t-il la solution ou une idée plus simple...
Merci d'avance
Partager