IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Copier un enregistrement et ajouter à la table


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Points : 22
    Points
    22
    Par défaut Copier un enregistrement et ajouter à la table
    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

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 55
    Points
    55
    Par défaut
    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)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Points : 22
    Points
    22
    Par défaut
    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

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 55
    Points
    55
    Par défaut
    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:


    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)
    Sin je n'ai pas fait de faute cela doit marcher...
    cgodefrw

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Points : 22
    Points
    22
    Par défaut
    Peu importe la forme, Je retiens le fond. Cela m'a l'air excellent.

    Une fois de plus, merci.

    cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier un enregistrement dans une même table
    Par slammer dans le forum Langage SQL
    Réponses: 11
    Dernier message: 04/05/2010, 23h17
  2. Réponses: 4
    Dernier message: 21/06/2007, 19h14
  3. Copier un enregistrement d'une table à une autre ?
    Par cadman dans le forum Access
    Réponses: 5
    Dernier message: 21/02/2007, 13h44
  4. Copier un enregistrement d'une table vers une autre
    Par le lynx dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/01/2006, 09h56
  5. Copier un ensemble d'enregistrement dans la meme table
    Par SergeF dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/07/2004, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo