CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Access 2007] Insertion multiple requête

[R]Viper
[R]Viper
Niveau 10
18 juillet 2011 à 01:27:49

Désolé pour le titre, j'ai pas assez de place pour tout écrire. Ce serait donc : [Access 200] Insertion multiple via une seule requête.

J'ai un fichier .sql qui contient tout le code pour la création des tables ainsi que l'insertion des données d'un projet que j'avais fait il y a quelques temps dans un cadre scolaire. J'aimerais le refaire, mais via Access dans le but d'apprendre un peu ce logiciel.

J'ai par exemple cet extrait de code.

INSERT INTO TYPE_CHA VALUES('1S', '1 lit simple', '1')
INSERT INTO TYPE_CHA VALUES('2S', '2 lits simples', '1')
INSERT INTO TYPE_CHA VALUES('3S', '3 lits simples', '1')

Quand je le met dans Access, ça me dit qu'il manque un point-virgule à la fin de l'instruction. Et si je mets des point-virgules, ça me dit
:d)Caractère trouvés après la fin de l'instruction SQL.

Comment faire pour ajouter toutes les données? Si j'y vais une ligne à la fois, ça fonctionne. Mais pas plusieurs ligne en même temps. Quel est la solution? Mon fichier fait plus de 200 lignes, j'ai pas vraiment envie d'y aller ligne par ligne.

Merci d'avance et bonne soirée (s'il y en a qui sont du Québec ici).

takamura_san
takamura_san
Niveau 10
18 juillet 2011 à 01:52:27

Hum hum hum j'ai pas la réponse car je n'utilise pas access mais étant dba je vais te faire une petite liste de problèmes de ce style que j'ai pu rencontrer.

Au lieu de séparer par des ; essaie de séparer par des /
Attention au retour charriot essaie de les remplacer par des espaces.
Par exemple au lieu d'écrire

INSERT INTO MACHIN(TRUC,BIDULE) VALUES('TRUC1','BIDULE1');
INSERT INTO MACHIN(TRUC,BIDULE) VALUES('TRUC2','BIDULE2');

Tu écris
INSERT INTO MACHIN(TRUC,BIDULE) VALUES('TRUC1','BIDULE1');INSERT INTO MACHIN(TRUC,BIDULE) VALUES('TRUC2','BIDULE2');

Bon par contre il faut quand même un espace entre le ; et le INSERT.

Evite aussi d'écrire le INSERT INTO et le VALUES sur deux lignes différentes.
Bref laisse la machine gérer toute seule les retour chariots.

Ceci dit je ne suis pas certain que ce que tu essaie de faire soit possible. En tous les cas bonne chance.

[R]Viper
[R]Viper
Niveau 10
19 juillet 2011 à 14:05:48

Takamura_San :d) Tout d'abord, merci pour ta réponse. Malheureusement, même en suivant ce que tu m'as dit, ça ne fonctionne pas plus. Ça me donne toujours les même erreurs comme quoi il y a quelque chose après le ;.

Par contre, ta dernière phrase m'intrigue : «Ceci dit je ne suis pas certain que ce que tu essaie de faire soit possible.» Pourquoi donc cela serait impossible? Access sert bien comme base de données non?

Un peu hors-sujet, mais ça m'intrigue. Tu dis que tu es VBA. Est-ce une genre de certification de Microsoft?

takamura_san
takamura_san
Niveau 10
19 juillet 2011 à 14:21:17

De rien j'ai pas dis que j'étais VBA j'ai dis que j'étais DBA, seulement depuis quelques mois mais bref ca c'est mas vie et ca aidera pas à faire avancer le schmilblik.

Oui en théorie access c'est comme les autres sgbd mais en théorie seulement la dernière fois que j'ai utilisé access c'était avec la version 2003 et il y avait pas mal de requête qui n'était pas prise en compte.

Bref une autre solution serait peut être d'utiliser un petit outil, perso moi j'utilise Visual studio, même un enfant de 5 ans saurait l'utiliser et si on peut le connecter à access(je ne suis pas sur que l'on puisse) là c'est sur tu ne te fera pas jeter puisque c'est toi qui détermine quels sont tes séparateur entre tes requêtes. Le seul inconvénient c'est que la version que j'utilise est payante, cela dit ca ne m'étonnerait pas qu'il existe des version gratuite.
A toi de te renseigner en tout cas je te conseille vivement de te procurer un produit de ce type car ca te re servira à chaque fois que t'auras des requêtes à faire.

Pour ton problèmes j'ai pas d'autres solutions.

takamura_san
takamura_san
Niveau 10
19 juillet 2011 à 14:27:35

Mea Culpa je viens de te dire une bêtise plus grosse que moi.
Je voulais dire aqua studio et non visual studio.

Bonne chance ;)

godrik
godrik
Niveau 30
19 juillet 2011 à 19:48:20

La majorite des SGBD ont des posibilite d'insertion massive de donne a partir d'un fichier, par exemple au format CSV. Regarde si une telle option existe pour access.

chris87az
chris87az
Niveau 4
20 juillet 2011 à 12:01:05

Et si tu essaies de faire :

INSERT INTO TYPE_CHA VALUES('1S', '1 lit simple', '1'), ('2S', '2 lit simple', '1');

Ça marche sous MySQL donc ça devrait normalement fonctionné sous Access.

godrik
godrik
Niveau 30
20 juillet 2011 à 20:16:22

"Ça marche sous MySQL donc ça devrait normalement fonctionné sous Access."

Non, pas forcement! MySQL est connu pour sortir BEAUCOUP de la norme. Un comportement etrange constate sur MySQL est souvent pas reproductible sur un autre SGBD.

[R]Viper
[R]Viper
Niveau 10
08 août 2011 à 01:23:18

chris87az
Posté le 20 juillet 2011 à 06:01:05
Et si tu essaies de faire :

INSERT INTO TYPE_CHA VALUES('1S', '1 lit simple', '1'), ('2S', '2 lit simple', '1');

Ça marche sous MySQL donc ça devrait normalement fonctionné sous Access.

:d) Malheureusement, ça ne fonctionne pas. =(

Point-virgule absent à la fin de l'instruction SQL.

Je commence à penser que j'vais devoir tout insérer manuellement... ce que je trouve bizarre venant d'un SGDB.

godrik
godrik
Niveau 30
08 août 2011 à 01:35:21

je vais me repeter, mais tu ne peux pas inserer des donnees dnas une table a partir d'un format binaire ou d'un format csv ?

[R]Viper
[R]Viper
Niveau 10
09 août 2011 à 14:03:25

Je vais essayer de regarder ça pour le CSV. J'vais vous en redonner des nouvelles.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment