Bonjour,
J'aimerais connaître la technique élégante qui consiste à copier un enregistrement d'une table puis l'ajouter dans cette même table.
Une commande SQL, DAO, VBA me conviendrait. Sauf du genre CtrlC, CtrlV...lol.
merci
Bonjour,
J'aimerais connaître la technique élégante qui consiste à copier un enregistrement d'une table puis l'ajouter dans cette même table.
Une commande SQL, DAO, VBA me conviendrait. Sauf du genre CtrlC, CtrlV...lol.
merci
Salut, je ne sais pas si c'est élégant, mais il suffit de faire comme ça:
Dim res as DAO.recordset
Dim SQL as String
'récupération de l'enregistrement
SQL = "SELECT * FROM TaTable WHERE ConditionQuiTePermetDeRetrouverLenregistrement"
res = CurrentDb.openrecordset(SQL)
'ajout de l'enregistrement
SQL = "INSERT INTO tatable (Nomchamp1, NomChamp2) Value (" & res.field("NomChamp1").value & ", "& res.field("NomChamp1").value &")"
CurrentDb.execute(SQL)
merci pour ta réponse.
La première partie est top car c'est rapide. N'y a t'il pas un moyen de faire un "Insert" avec une variable type recordset. Cela m'éviterait d'écrire une flopée de champs à la main, vu que les données à copier sont les mêmes ( à part l'index...).
Cordialement
Je ne pense pas que cela soit possible, mais j'ai une iéde pour te dépanner:
tu peux construire la chaine de caractère de ta requête automatiquement avec une boucle:
quelque chose du genre:
Sin je n'ai pas fait de faute cela doit marcher...
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 Dim Sql as String Dim res as DAO.reccordset set res = CurrentDb.openRecordset("LaRequeteSelectPourSelectionnerTonEnregistrement") Sql = "insert Into Tatable (" for i = 1 to res.Fields.Count if i < res.Fields.Count then Sql = sql & res.fields(i).name & "," else Sql = sql & res.fields(i).name & ")" next i Sql = Sql & "VALUES (" for i = 1 to res.Fields.Count if i < res.Fields.Count then Sql = sql & res.fields(i).value & "," else Sql = sql & res.fields(i).value & ")" next i CurrentDb.execute(SQL)
cgodefrw
Peu importe la forme, Je retiens le fond. Cela m'a l'air excellent.
Une fois de plus, merci.
cordialement
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager