OVH Cloud OVH Cloud

duplication dans une table

2 réponses
Avatar
nweus
Bonjour,
comment puis-je dupliquer une ligne dans une table ?
Pour le moment, je récupere la ligne par Set Rs2 =
CurrentDb.OpenRecordset("select * from Matériel where ID_Menu=" &
Id_cle_obj), le récupére taous les champs un a un dans des variables, et
créé une nouvelle ligne.

Il y a certainement + simple. J'ai vu que Rs2.clone existait mais je
n'arrive pas a en tirer grand chose.

2 réponses

Avatar
Raymond [mvp]
Bonjour.

tu peux passer par une requête ajout. Le problème restant la clé primaire.
il ne faut pas placer le champ numauto dans la requête, access s'en charge
tout seul. si la clé n'est pas un numauto il faudra le charger dans la
requête. ce qui pourrait donner ceci:
avec clé primaire numauto:
INSERT INTO table1 ( Pays, Région, Téléphone )
SELECT table1.Pays, table1.Région, table1.Téléphone
FROM table1 WHERE (((table1.Numéro)S));
avec clé primaire personnelle:
INSERT INTO table1 ( Pays, Région, Téléphone, Numéro )
SELECT table1.Pays, table1.Région, table1.Téléphone,
[Formulaires]![Formulaire1]![Numéro] AS Expr1
FROM table1 WHERE (((table1.Numéro)S));

bien penser de faire un Me.requery après avoir exécuté la requête ajout pour
retrouver tous les enregistrements.
ceci est valable pour le formulaire simple ou le formulaire principal. Si tu
as un ou des sous-formulaires il faut faire parail, peut-être, pour
dupliquer les enregistrements ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"nweus" a écrit dans le message de
news:40f55501$0$30108$
Bonjour,
comment puis-je dupliquer une ligne dans une table ?
Pour le moment, je récupere la ligne par Set Rs2 > CurrentDb.OpenRecordset("select * from Matériel where ID_Menu=" &
Id_cle_obj), le récupére taous les champs un a un dans des variables, et
créé une nouvelle ligne.

Il y a certainement + simple. J'ai vu que Rs2.clone existait mais je
n'arrive pas a en tirer grand chose.





Avatar
nweus
Merci. Je vais adopter cette solution, plus propre que la mienne. Je pensais
cependant qu'il y avait plus simple

"Raymond [mvp]" a écrit dans le message de
news: O#
Bonjour.

tu peux passer par une requête ajout. Le problème restant la clé primaire.
il ne faut pas placer le champ numauto dans la requête, access s'en charge
tout seul. si la clé n'est pas un numauto il faudra le charger dans la
requête. ce qui pourrait donner ceci:
avec clé primaire numauto:
INSERT INTO table1 ( Pays, Région, Téléphone )
SELECT table1.Pays, table1.Région, table1.Téléphone
FROM table1 WHERE (((table1.Numéro)S));
avec clé primaire personnelle:
INSERT INTO table1 ( Pays, Région, Téléphone, Numéro )
SELECT table1.Pays, table1.Région, table1.Téléphone,
[Formulaires]![Formulaire1]![Numéro] AS Expr1
FROM table1 WHERE (((table1.Numéro)S));

bien penser de faire un Me.requery après avoir exécuté la requête ajout
pour

retrouver tous les enregistrements.
ceci est valable pour le formulaire simple ou le formulaire principal. Si
tu

as un ou des sous-formulaires il faut faire parail, peut-être, pour
dupliquer les enregistrements ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"nweus" a écrit dans le message de
news:40f55501$0$30108$
Bonjour,
comment puis-je dupliquer une ligne dans une table ?
Pour le moment, je récupere la ligne par Set Rs2 > > CurrentDb.OpenRecordset("select * from Matériel where ID_Menu=" &
Id_cle_obj), le récupére taous les champs un a un dans des variables, et
créé une nouvelle ligne.

Il y a certainement + simple. J'ai vu que Rs2.clone existait mais je
n'arrive pas a en tirer grand chose.