Copier une ligne dans access

AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005 - 22 juin 2004 à 16:33
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006 - 24 juin 2004 à 09:47
Bonjour,
l'info que je cherche se trouve surement cachée qq part vu la richesse du forum, mais meme aprés une longue recherche je n'ai rien trouvé.

Voici mon probleme:
Pour simplifier on va dire que j'ai un table "Monsieur" avec comme champs :
id_monsieur (clé primaire)
nom_monsieur
prenom_monsieur

Je fais:
SQL = "Select * from Monsieur where nom_monsieur='" Dupond"'"
Set RS = DB.OpenRecordset(SQL, dbOpenSnapshot)

Dans RS je recupere dc l'enregistrement de Mr Dupond

J'aimerai creer un nouvel enregistrement dans la table en donnant moi meme le nouvel id et en recuperant le reste des champs automatiquement

Voila ce que j'ai essayé (enfin, j'ai pas essayé que ca lol):

Set RS2=DB.OpenRecordset("Monsieur")
RS2.AddNew
(**il me manque cette ligne ou je créé l'affectation**)
RS2.fields("id_monsieur")=3

Merci bcp a celui (ou celle) qui se penchera sur mon tit probleme,
Mathieu.

Absolut Beauty

3 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
22 juin 2004 à 16:45
Set RS = DB.OpenRecordset("Select * from Monsieur where nom_monsieur='" Dupond"'")
if RS.recordcount<>0 then
Set Ajout = DB.OpenRecordset("Select * from Monsieur)
Ajout.Addnew
Ajout("Id_Monsieur")=MaNouvelleValeur
Ajout("nom_monsieur")=RS("nom_monsieur)
Ajout("prenom_monsieur")=RS("prenom_monsieur)
Ajout.update
End if
Set Ajout=nothing
Set RS=nothing

It@li@
0
AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005
23 juin 2004 à 08:23
Oui, en dernier recours il me reste cette solution bien entendu, mais le nombre de champs est trés important, et j'ai cette operation a réaliser sur plusieurs tables...je vais vite arriver a une centaine d'affectations de ce type, d'ou mon envie de copier/coller directement toute la ligne.
En tout cas merci, et si tu es un fan de foot tte mes condoléances pour hier soir :D
Mathieu.
0
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
24 juin 2004 à 09:47
Bon alors si j'ai bien compris, tu veux récupérer une ligne dans ta table, créer une ligne dans ta table avec les mêmes nom et prénom mais avec un id différent.

Si c'est bien ca alors je te fais en une fois avec une seule requête:

Dim sql as string
sql "INSERT INTO Monsieur (Id_Monsieur,nom_Monsieur,prenom_Monsieur) Select " & MaNouvelleValeur & ", nom_Monsieur, prenom_Monsieur FROM Monsieur WHERE nom_Monsieur '" & LeNomSouhaité & "'"

Docmd.RunSQL(sql)

Et voilà

Si c'est pas ca que tu veux, explique moi ce que tu veux exactement

:big) Ah l'informatique c'est bien quant même :big)
0
Rejoignez-nous