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...

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
PS Field(0) est sauté car c'est mon Id d'enregistrement (Num Auto).

Merci d'avance