Bonjour,
N'étant pas satisfait de la fonction de duplication d'enregistrements offerte par access (recopie de la clef primaire et recopie intégrale de tous les champs) je cherche à réaliser une fonction de clonage...
Cette fonction doit être applelée par clic à partir du formulaire me permettant de visualiser tous les enregistrements.
Cette fonction doit permettre d'eviter la copie de certains champs (grace à leur) numéro et doit permettre d'ecrire sur le nouvel enregistrement qu'il s'agit d'une copie d'un enregistrement existant (qui pourra ensuite être utilisé pour créer un nouvel enregistrement avec quelques modification mineures).
Enfin, tout celà sonne bien mais mon code ne fonctionne pas...
Alors si vous avez des iindications ou une idée plus simple...
PS Field(0) est sauté car c'est mon Id d'enregistrement (Num Auto).
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 Private Sub Clone_Click() Dim dbBaseDonnées As Database, recopie As Recordset Set dbBaseDonnées = DBEngine.Workspaces(0).Databases(0) Set recopie = dbBaseDonnées.OpenRecordset("Off", DB_OPEN_TABLE) Dim db As DAO.Database Dim rec As DAO.Recordset Set db = CurrentDb() Set rec = db.OpenRecordset("SELECT * FROM OFF WHERE [OffCod] = " & Forms!Off.[OffCod] & ";", dbOpenSnapshot) recopie.MoveLast recopie.AddNew rec.MoveFirst For i = 1 To (rec.Fields.Count - 1) Select Case i Case 2 recopie!(rec.Fields(i)).Name = "Copie de la fiche " & rec.Fields(0).Value Case Else recopie!(rec.Fields(i)).Name = rec.Fields(i).Value End Select Next i recopie.Update recopie.Close Set recopie = Nothing rec.Close Set rec = Nothing Set db = Nothing End Sub
Merci d'avance
Partager