Dupliquer un enregistrement

srogers Messages postés 7 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 14 février 2005 - 3 juil. 2004 à 02:28
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004 - 6 juil. 2004 à 08:14
Bonjour,
Sur Access 2000
j'aimerai pouvoir dupliquer (vers un nouvel enregistrement) certains champs d'un enregistrement d'un formulaire.
Le bouton "Dupliquer" créé par l'assistant provoque des erreurs au regard de la complexité du formulaire.
Je pensai alors enregistrer sur des variables les champs à copier, ajouter un enregistrement vide et reporter le contenu des variables dans les champs respectifs dans le nouvel enregistrement.
Je ne trouve pas la solution pour programmer cette fonction.
Je precise que la clef est un numéro d'ordre de type entier long (n'est pas un numéro automatique)
Je remercie d'avance les personnes qui me répondent
rogers

3 réponses

carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
5 juil. 2004 à 09:56
bonjour,

l'idée de mémoriser certains champs de ton enreg est la bonne.

il te suffit ensuite, si tu es en ADO de faire :

with rs
.addnew array("champ1", "champ2", "champ3", ...; _
array(mémo1, mémo2, mémo3, ......)
.update ' ajoute un enreg
end with

où camp1, champ2, champ3 sont les noms de champs de ta table et mémo1, mémo2, mémo3 sont les zones que tu as précedemment mémorisées.

attention aux clefs ! N'oublie d'incrémenter ton n° d'ordre de sorte que la clef soit unique !

attention aussi à la définition de tes champs dans ta table : si la valeur nulle est interdite sur 1 des champs, il te faudra y mettre quelque chose.

Colibri
0
srogers Messages postés 7 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 14 février 2005
5 juil. 2004 à 20:52
Merci beaucoup pour ta réponse qui me parait excellente.
Je suis un peu novice (je ne l'avais pas précisé plus haut),
aussi j'aimerai compléter ta réponse tout d'abord en te demandant comment je dois déclarer 'rs' dans le module et ensuite, pour le numero d'ordre (clef) comment je peux le définir dans le module (y a t il un moyen de connaitre le nombre d'enregistrements d'une table par le moyen d'une fonction par exemple). Si tu as les réponses je t'en remercie d'avance.
rogers
0
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
6 juil. 2004 à 08:14
Dim Rs as New Adodb.recordset
Dim Cnn as New Adodb.connection
Dim strsql as string

set Cnn = Currentproject.connection ' par exemple

strsql = "select * from table" ' par exemple

Rs.open strsql,cnn

pour déterminer le n° d'un enregistrement :
Rs.Movelast ' pour le dernier
numero = rs.count

Colibri
0
Rejoignez-nous