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 :

VBA: une requete SQL


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Points : 99
    Points
    99
    Par défaut VBA: une requete SQL
    Bonjour,

    voila, je n'arrive pas à excuter uen requete SQL sous VBA (fourni ds ACCESS)

    voila ma requete:
    Dim SQL As String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        SQL = "INSERT INTO ListeStagiaires VALUES(NumRAC,NomStagiaire.Value,LieuFormation.Value,Secteur.Value,DateInRAC,DateOutRAC,DateInFormation,DateOutFormation,Employeur.Value,NomFormateur.Value,NextInFormation,DateVCA,ResponsableFormation.Value);"
     
        DoCmd.RunSQL SQL
    J'utilise des zone de txt et des liste
    ou encore celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim SQL As String
     
     SQL = "SELECT * FROM Stagiaire"
     
     DoCmd.RunSQL (SQL)
    J'ai un message du genre:
    "Erreur d'exécution '2342'
    Une action ExécuterSQL nécissite un argumentconsistant en une instruction SQL"

    L'erreur pointe sur le DoCMS.runSQL(SQL)

    MERCI DE VOTRE AIDE

    PS: lorsque j'exécurer la requete normalement (en créanr une requete hors VBA), sa fonctionne en donnant les valeurs exacte

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    on ne peut pas exécuter un SQL de sélection, ça ne marche que pour les SQL Action :
    • INSERT
    • UPDATE
    • DROP
    • ALTER
    • etc. (si j'en ai oublié)

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Points : 99
    Points
    99
    Par défaut
    Merci

    Mais pour le select, j'avais juste fait ca pour tester (mais si tu me dis que ca sert a rien )

    Mais celle que j'essaie de faire est la premiere (INSERT)

    Merci d'avance pour votre aide

  4. #4
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    Pour commencer ta requête d'insertion ne peut pas fonctionner pour la bonne raison que les valeurs que tu lui dis d'insérer sont des variables...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "INSERT INTO ListeStagiaires VALUES(" & NumRAC & ", '" & NomStagiaire.Value & '", etc.....)
    Ca fonctionnera déjà mieux comme ça mais je ne pense pas que ce soit à l'origine de ton probleme (quoique...)

  5. #5
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 67
    Points
    67
    Par défaut
    Si tu dis où tu veux mettre les choses, ça peux aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO TableDest(ChampDest)
    VALUES ('ValeurInitiale');

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Ton SQL d'INSERT est faux.

    Tu mélanges variable et chaîne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO Table Values (UneVariable, UnControl)"
    va planter ...

    Tu augmentes tes chances en faisant comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.RunSQL "INSERT INTO Table Values (""" & UneVariableChaine & """, " & _
      UneVariableNumerique & ")"
    Il faut sortir les variables de la chaine SQL pour que leur valeur soit évaluée.

Discussions similaires

  1. passer en parametre le nom d'un champ d'une requete sql en vba
    Par alexkickstand dans le forum VBA Access
    Réponses: 9
    Dernier message: 12/02/2009, 15h59
  2. traduction d'une requete sql en vba
    Par nadia123456 dans le forum VBA Access
    Réponses: 12
    Dernier message: 01/09/2008, 15h30
  3. compter avec une requete SQL dans VBA
    Par michael1971 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/01/2008, 09h20
  4. [Vba-Excel] Exécuter une requete SQL sur une feuille de donnée
    Par Spacy_green dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2006, 09h27
  5. Réponses: 23
    Dernier message: 19/09/2006, 11h33

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