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 :

Insertion d'enregistrements


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : salarié
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Insertion d'enregistrements
    bonjour à tous

    est-il possible d'insérer simultanément plusieurs enregistrements dans une table access par requête insertion ?

    Après plusieurs essais, il semble que access n'accepte que les enregistrements un à un

    Connaissez-vous une astuce/technique de script reconnue par access pr insérer plusieurs enregistrements à la fois par le biais d'une requête insertion ;

    merci de me dire.

    Voici mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Produit1 values ('A001', 'Farine',0.8,65),
    values ('B001', 'Sel',0.5,120),
    values ('A003', 'Huile olive',5.2,9);
    .

    Le motif de refus est : ; absent à la fin de l'instruction SQL. (sous entendu, dès après le 1er enregistrement ; si je place des points virgules après chaque enregistrement, ça n'est pas accepté non plus.

    merci de m'aider

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 777
    Points : 58 179
    Points
    58 179
    Billets dans le blog
    42
    Par défaut
    bonjour,

    en effet avec VALUES on ne peut insérer qu'une seule ligne à la fois avec Access.

    Pour faire ce genre d'insertions, il est parfois plus rapide de passer par un recordset.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : salarié
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    Merci de m'avoir répondu.

    Donc en insérant un script type recordset dans un module de la base, l'enrichissement de la table pourrait se faire ?

    merci de me dire

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Pour insérer plusieurs lignes, les insert into select fonctionne aussi sur Access.
    Mais ce n'est pas adapter à ton exemple.
    Mais la question est quelles sont les lignes à inserer selon quelles modalités.

    PS: dans ta requête tu n'as pas précisé la liste des colonnes, cela n'est pas nécessaire, mais lorsque tu rajouteras une colonne à ta table, le script ne fonctionnera plus.
    A+
    Soazig

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : salarié
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    bonsoir

    Dans l'exemple que j'ai repris, il faudrait notamment insérer les 3 enregistrements ds les 4 champs correspondants.

    Pouvez-vs svp donner un exemple avec INSERT INTO SELECT sur deux enregistrements par exemple.

    Merci d'avance

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    bonjour,
    J'ai dit que le insert into select n'était pas adapté à ton cas.
    Exemple de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Insert into PRODUIT1
    Select CodeProduit,LibelleProduit,Prix
    from Produit2
    Where LibelleProduit like '%sel%';
    Est-ce que tu as essayé cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO Produit1 VALUES ('A001', 'Farine',0.8,65),
    VALUES ('B001', 'Sel',0.5,120);
    NSERT INTO Produit1 VALUES ('A001', 'Farine',0.8,65);
    INSERT INTO Produit1 
    VALUES ('A003', 'Huile olive',5.2,9);
    C'est à dire d'enchainer les 3 inserts en les séparant par des ;

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : salarié
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    bonjour

    voici ce que je tape en me conformant à vos instructions.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Produit1 VALUES ('A001', 'Farine',0.8,65);
    INSERT INTO Produit1 VALUES ('B001', 'Sel',0.5,120);
    INSERT INTO Produit1 VALUES ('A003', 'Huile olive',5.2,9);
    Le motif de rejet est "caractères trouvés à la fin de l'instruction SQL"

    Il semble que access soit perturbé par la présence de plusieurs ;

    Qu'en dites-vs ?

    merci de me dire

  8. #8
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 777
    Points : 58 179
    Points
    58 179
    Billets dans le blog
    42
    Par défaut
    bonjour,

    MySQL par exemple accepte ce genre de syntaxes il me semble:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Produit1 VALUES ('A001', 'Farine',0.8,65),
    VALUES ('B001', 'Sel',0.5,120);

    mais Access, non

    Citation Envoyé par f-leb Voir le message
    ...en effet avec VALUES on ne peut insérer qu'une seule ligne à la fois avec Access.
    donc il faut 3 requêtes:

    1ère requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Produit1(champ1, champ2,champ3,champ4) VALUES ('A001', 'Farine',0.8,65);
    2ème requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Produit1(champ1, champ2, champ3,champ4) VALUES ('B001', 'Sel',0.5,120);
    3ème requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Produit1(champ1, champ2, champ3,champ4) VALUES ('A003', 'Huile olive',5.2,9);

    on peut évidemment exécuter ces 3 requêtes à suivre automatiquement en VBA (voir Faq: Exécuter une requête action (ajout, suppression ou mise à jour))

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : salarié
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    merci Fabien.

    Je vais regarder si une installation de mySQL est possible pr moi

  10. #10
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 777
    Points : 58 179
    Points
    58 179
    Billets dans le blog
    42
    Par défaut
    Citation Envoyé par pppa1 Voir le message
    Je vais regarder si une installation de mySQL est possible pr moi
    Tu ne vas tout de même pas changer de SGBD uniquement à cause de ce petit problème de rien du tout, si ?

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : salarié
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    je vais y réfléchir, mais access présente de nombreuses limites dès que l'on veut utiliser des traitements assez 'avancés'.

    De toute façon, il n'y aurait pas migration de bases, seules les nouvelles seraient le cas échéant ouvertes et traitées avec un nouvel SGBD

    merci encore

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonsoir,

    Il faut trois requêtes dans la plupart des SGBD, à moins de bricoler quelque chose d'infâme.
    Pourquoi le fait d'enchainer trois requêtes t'embêtes, comment sont-elles lancées, à l'aide de quel outils ou de quel code.

    Il y a beaucoup de bonnes raisons pour se passer d'access, mais ne pas pouvoir faire trois insert dans une seule requête est une très mauvaise raison.

    Par ailleurs la syntaxe MYSQL n'est pas standard et me semble abominable.

    A+
    Soazig

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

Discussions similaires

  1. [MFC/ADO] Pb insertion d'enregistrement ?
    Par ddaime dans le forum MFC
    Réponses: 2
    Dernier message: 08/06/2006, 13h28
  2. Insertion d'enregistrement dans un fichier XML
    Par davestar dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 02/04/2006, 17h22
  3. Réponses: 1
    Dernier message: 30/11/2005, 13h44
  4. insertion d'enregistrement avec MySQL Administrator
    Par Lady_jade dans le forum Outils
    Réponses: 1
    Dernier message: 08/09/2005, 16h04
  5. [DW MX2004] formulaire d'insertion d'enregistrement
    Par jiraya_sama dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 30/12/2004, 17h54

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