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

Macros et VBA Excel Discussion :

[VBA]Requete Excel vers BDD Acces


Sujet :

Macros et VBA Excel

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut [VBA]Requete Excel vers BDD Acces
    Bonours,

    j'execute des requetes à partir d'excel pour recupérer des données dans une BDD Acces

    j'ai testé ces deux requetes :
    MaRequete = "SELECT * FROM Essai"
    MaRequete = "SELECT * FROM Essai WHERE Reference='Réf2'"
    => je n'ai pas de problème

    par contre en essayant celle-ci, j'ai un message d'erreur
    MaRequete = "SELECT * FROM Essai LIMIT 0,20"
    => j'en ai donc déduit que LIMIT n'est pas reconnu

    Quels sont les Requetes qui sont reconnues ?

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Je ne suis pas franchement une pointure en SQL, mais LIMIT, ça existe? C'est la première fois que j'en entends parler...

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut Re: [VBA]Requete Excel vers BDD Acces
    Bonjour,
    Citation Envoyé par Emcy
    Bonours,
    par contre en essayant celle-ci, j'ai un message d'erreur
    MaRequete = "SELECT * FROM Essai LIMIT 0,20"
    => j'en ai donc déduit que LIMIT n'est pas reconnu
    Le "dialecte SQL" d'Access reconnaît le prédicat TOP.

    Pour ne récupérer que les 15 premiers enregistrements:Pour ne récupérer que 15 % des premiers enregistrements:=JBO=

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    merci.

    tu n'aurais pas un site qui ressence le "dialecte SQL" d'Access

    pour changer un element, je fais :
    UPDATE MaTable SET MaColone1 = 'MaValeur1' WHERE MaColonne2 = 'MaValeur2'
    comment faire pour changer une ligne complete ?

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Hello,
    je ne comprend pas ta question. Tu peux modifier toute une ligne avec la commande UPDATE. Il suffit de donner les nouvelles valeurs de chaque colonne que tu veux modifier avant la clause WHERE.
    Par contre, je ne connaissais pas TOP, ni PERCENT... Ça pourrait bien m'être très utile, merci JBO.

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    je veux le faire avec une ligne de commande : c'est possible ?

  7. #7
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Si tu écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE MaTable Set MaColonne1 = 'MaValeur1', MaColonne2 = 'MaValeur2', MaColonne3 = 'MaValeur3' WHERE MaColonne4 = 'MaValeur4'
    ça te permet de modifier toutes les valeurs que tu veux en une seule commande.
    C'est bien ce que tu cherches à faire?

  8. #8
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    merci,

    désolé pour ces questions stupides mais je commence juste à apprendre le SQL.

    Est-ce possible de recupérer le nom des tables dans une BDD en ne connaissant que le chemin d'acces de la BDD ?

    Est-ce possible de recupérer le nom des champs dans une Table en ne connaissant que le chemin d'acces de la BDD et le nom de la table ?

  9. #9
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Oui, et oui.
    Mais je n'ai plus le code en tête. Un coup de Google...

  10. #10
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    je trouve pas

    pour l'update, on ne peut pas faire un truc du genre (sans avoir à rentrer le nom des champs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE MaTable Set VALUE ('MaValeur1', 'MaValeur2', 'MaValeur3') WHERE MaColonne1 = 'MaValeur2'

  11. #11
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Je n'ai pas ce qu'il faut sous la main pour tester, mais est-ce que la vue USER_TABLES ne contient pas ce que tu cherches?
    Je crois qu'on peut omettre le nom des colonnes, à condition de respecter l'ordre choisi lors de la création de la table, mais ça n'est pas très prudent.

  12. #12
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    Je n'ai pas ce qu'il faut sous la main pour tester, mais est-ce que la vue USER_TABLES ne contient pas ce que tu cherches?
    => ça veut dire quoi la vue USER_TABLES (je suis débutant) ?

    Je crois qu'on peut omettre le nom des colonnes, à condition de respecter l'ordre choisi lors de la création de la table, mais ça n'est pas très prudent.
    => c'est à dire ? a quoi doit ressembler ma requete ?
    => pourquoi n'est-ce pas prudent si on connais l'odre des champs (on peut avoir des surprises ?) ?

  13. #13
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par Emcy
    tu n'aurais pas un site qui ressence le "dialecte SQL" d'Access
    Guide de référence Microsoft Jet SQL (en français)
    http://office.microsoft.com/fr-fr/as...526881036.aspx

    Fundamental Microsoft Jet SQL for Access 2000 (en anglais)
    http://msdn.microsoft.com/library/de...l/acintsql.asp

    Intermediate Microsoft Jet SQL for Access 2000 (en anglais)
    http://msdn.microsoft.com/library/de...l/acintsql.asp

    Bonne lecture !

  14. #14
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Pour info, Developpez.com dispose d'un forum Access et éventuellement d'un forum SQL . La plupart des questions posées ci-dessus n'ont pas de lien avec VB ...
    Et si tu débutes en Access, je te conseille d'aller vois sur la page des tutoriels Acces !

    Pour info, omettre le nom des champs dans un Update est impossible, et fortement déconseillé dans un Insert. C'est une l'économie d'huile de coude absurde qui rendra ton code illisible et obsolète à la prochaine évolution du MCD !

    USER_TABLES est une table système (ou une vue en Access ?), çàd que ça s'utilise comme un table en lecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (mesChamps) FROM USER_TABLES

  15. #15
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    merci pour vos reponses


    Pour info, omettre le nom des champs dans un Update est impossible, et fortement déconseillé dans un Insert. C'est une l'économie d'huile de coude absurde qui rendra ton code illisible et obsolète à la prochaine évolution du MCD !
    => ce n'est pas si absurde que ça, je voulais créer un code générique où l'on utilise une collection pour dire ce qu'on veut inserer dans ma table (donc possibilité d'avoir des tables de tailles différentes avec le même code)

    pour infos voici mon code :
    http://www.developpez.net/forums/vie...350489#2350489

  16. #16
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par Emcy
    je voulais créer un code générique où l'on utilise une collection pour dire ce qu'on veut inserer dans ma table (donc possibilité d'avoir des tables de tailles différentes avec le même code)
    Dans ce cas, il te suffit de créer une autre collection en parallèle, contenant les noms de champs : une requête UPDATE ou INSERT se construit alors aisément avec une simple boucle

  17. #17
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    c'est ce que je pensais aussi faire mais pour que mon code soit générique il fallait que je detecte automatiquement le nom des champs d'une table (j'ai poser la question dans un autre poste : je n'ai pas bien eu le temps de m'attarder dessus)

    merci pour ton aide

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

Discussions similaires

  1. Fichier excel vers bdd (cas particulier)
    Par Sha-ka dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/03/2008, 20h01
  2. [VBA]Transfert Excel vers Bloc-Note
    Par Look dans le forum Excel
    Réponses: 2
    Dernier message: 05/05/2007, 16h33
  3. [VBA-E]Excel vers powerpoint : copier/coller spécial
    Par illight dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/09/2006, 12h41
  4. pb requete excel vers BDD
    Par Jean-Matt dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/11/2005, 16h42

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