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

Requêtes et SQL. Discussion :

Requete SELECT dans un INSERT


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut Requete SELECT dans un INSERT
    Bonjour,

    Je souhaiterais introduire une requête SELECT en tant que valeurs à insérer dans la table. Pour être plus précis voici l'expression que je voudrais exécuter. D'après ce que j'ai lu dans le forum ça me semble tout à fait possible, mais à l'exécution de cette expression j'ai un message d'erreur: "Erreur de syntaxe dans la requête : 'SELECT 36'", 36 étant la valeur de ma colonne 0.

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    list = "INSERT INTO TBLTAMPON "
        list = list & "(QID, MCSerial, ActionName, Groupe) "
        list = list & "Values (SELECT " & Me.lstchoice.Column(0, i) & ", " & Me.lstchoice.Column(3, i) & ", "
        list = list & "QUOTED_ACTIONS.ActionName, ACTIONS.Groupe "
        list = list & "FROM ACTIONS, QUOTED_ACTIONS "
        'list = list & "WHERE QUOTED_ACTIONS.QID = " & Me.lstchoice.Column(0) & " "
        list = list & "WHERE QUOTED_ACTIONS.QID = " & Me.lstchoice.Column(0, i) & " "
        list = list & "AND QUOTED_ACTIONS.ActionID = ACTIONS.ActionID);"
    CurrentDb.Execute list
    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    Dans l'aide d'Access (Référence SQL Microsoft Jet) on trouve ceci :
    Requête Ajout avec plusieurs enregistrements :
    INSERT INTO TableCible [(champ1[, champ2[, ...]])] [IN basededonnéesexterne]
    SELECT [source.]champ1[, champ2[, ...]
    FROM expressiontable

    Requête Ajout avec un seul enregistrement :
    INSERT INTO TableCible [(champ1[, champ2[, ...]])]
    VALUES (valeur1[, valeur2[, ...])
    On choisi entre l'une ou l'autre des deux formes, mais on ne peut pas faire un mélange des deux.

    A+

  3. #3
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    Ok. Merci de ta réponse. mais c'est bien domage !

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut Tintou,
    Ok. Merci de ta réponse. mais c'est bien domage !
    je ne comprends pas ce qui te chagrine:
    LedZeppII (salut ) t'a dit:
    On choisi entre l'une ou l'autre des deux formes, mais on ne peut pas faire un mélange des deux.
    dans ton cas tu retires le VALUES et tu auras une requete de cette forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO TBLTAMPON (QID, MCSerial, ActionName, Groupe) SELECT
    Me.lstchoice.Column(0, i),
    Me.lstchoice.Column(3, i),
    QUOTED_ACTIONS.ActionName,
    ACTIONS.Groupe
    FROM ACTIONS, QUOTED_ACTIONS
    WHERE QUOTED_ACTIONS.QID = Me.lstchoice.Column(0, i) AND QUOTED_ACTIONS.ActionID = ACTIONS.ActionID);
    soit une table à 4 champs alimenté par un select à 4 champs qui semble être du bon type donc, il n'y a pas de pb.
    je vois pas ton soucis.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    Merci pour ta réponse.

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

Discussions similaires

  1. Requete SELECT dans INSERT
    Par Heytabernak dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/11/2008, 17h40
  2. SELECT dans un INSERT
    Par todier dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/04/2007, 15h44
  3. requete select dans une text box
    Par galaad666 dans le forum IHM
    Réponses: 5
    Dernier message: 29/11/2006, 13h55
  4. [SQL] SELECT dans un INSERT
    Par macben dans le forum Oracle
    Réponses: 3
    Dernier message: 28/12/2005, 09h40
  5. [ASE]probleme memoire: select dans une insert
    Par SegmentationFault dans le forum Sybase
    Réponses: 2
    Dernier message: 16/08/2005, 12h20

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