Bonjour à tous, mon projet a bien avancé avec votre aide et il me reste une petite chose encore à améliorer. Je souhaite avoir un bouton permettant de dupliquer le dernier enregistrement de mon formulaire. Mon formulaire comporte 3 sous formulaire et j'aimerai dupliquer les informations pour mon formulaire et mon sous formulaire 1. Hors avec la méthode ci-dessous que j'utilise je ne parviens à copier les valeurs de mon enregistrement que pour mon formulaire général.
- Module DupliquerEnregistrement
Et voici le code que j'utilise ensuite pour dupliquer les champs souhaités de l'enregistrement précédent
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 Option Compare Database Sub DupliquerEnregistrement( _ frm As Access.Form, _ avarChamps As Variant, _ Optional ByVal blnFin As Boolean = True) ' Quelques variables... Dim rst As DAO.Recordset Dim varChamp As Variant ' Source de données du formulaire On Error Resume Next Set rst = frm.RecordsetClone ' Se positionner en début ou en fin de table If blnFin Then rst.MoveLast Else rst.MoveFirst End If ' Transférer les données If rst.EOF Then MsgBox "Aucune donnée à dupliquer !", vbInformation Else For Each varChamp In avarChamps frm(varChamp) = rst(varChamp) Next End If ' Libérer les ressources Set rst = Nothing End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Commande101_Click() Dim avarChamps As Variant ' La liste des champs à dupliquer avarChamps = Array("code_etat_quest", "contact", "code_unep", "nom_source", "nom_source_periode", "nom_exploitant", "code_unite_taux_activite") ' On appelle la procédure de copie DupliquerEnregistrement Me, avarChamps End Sub
Tous les champs mentionnés ici appartiennent à mon formulaire principale et la duplication fonctionne parfaitement pour le formulaire principale. Si j'essaye de rajouter des noms de champs de mon sous formulaire 1 dans avar Champs, la copie ne fonctionne que pour les champs du formulaire principale... J'ai essayé d'intégrer un second bouton DupliquerElement dans mon sous formulaire 1 en lui reformulant les champs souhaités du sous formulaire 1 mais toujours sans succès (message d'erreur).
J'ai regardé la FAQ et notamment l'article dupliquer un élément en cascade dans un formulaire mais je ne comprends pas du tout le code VBA utilisé et n'arrive pas à l'adapté à ma propose base (je n'y connais rien en VBA).
L'ideal pour mon projet serait d'avoir un seul bouton DupliquerElement permettant de dupliquer les champs voulu de mon formulaire principales ainsi que ceux de mon sous formulaire 1.
Comment intégrer cette exigence pour le sous formulaire 1 dans le code VBA que j'utilise ?
Je pense qu'il doit être possible de rajouter une ligne avarChamps2 pour mon sous formulaire 1 et une seconde ligne pour la procédure de copie mais je bloque...
Bonne journée
Partager