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

VBA Access Discussion :

Ajout d'Enrg par VBA/SQL = > Erreur d'exécution '-2147217900 (80040e14)' [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 17
    Par défaut Ajout d'Enrg par VBA/SQL = > Erreur d'exécution '-2147217900 (80040e14)'
    Bonjour,

    j'ai un Formulaire (F_EVALUATIONS) + SF (F_ELEVES_EVALUATIONS).
    En effectuant un clic sur un Bouton dans le formulaire, je souhaite remplir automatiquement le SF avec tous les élèves présent dans une certaine table : T_CLASSES.


    Voici mon code (inspiré du livre "VBA Access 2007 /Ress.Inf. /Michel AMELOT", P.190) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub BP_ajouterTousLesEleves_Click()
     
        Dim cnnX As ADODB.Connection
        Set cnnX = CurrentProject.Connection
        Dim mySQL As String
     
        mySQL = "INSERT INTO J_ELEVES_EVALUATIONS ( ID_EVALUATION, ID_ELEVES ) " _
              & "SELECT T_EVALUATIONS.ID_EVALUATION, J_CLASSES_ELEVES.ID_ELEVES " _
              & "FROM T_EVALUATIONS, T_ELEVES INNER JOIN J_CLASSES_ELEVES ON T_ELEVES.ID_ELEVE = J_CLASSES_ELEVES.ID_ELEVES " _
              & "WHERE T_EVALUATIONS.ID_EVALUATION = 4; " _
              & "WHERE (((T_EVALUATIONS.ID_EVALUATION)=" & Me![ID_EVALUATION] & ")); " _
              & "ORDER BY T_ELEVES.NOM_PRENOMS;"
     
        cnnX.Execute mySQL
     
    End Sub
    Malheureusement...
    lorsque je clic sur le Bouton, j'obtiens le message d'erreur suivant :
    Erreur d'exécution '-2147217900 (80040e14)':
    Caractères trouvés après la fin de l'instruction SQL.
    ... et le débuggeur pointe sur la dernière ligne : cnnX.Execute mySQL

    Quel est le problème ?
    Comment faire pour que cela fonctionne correctement ?

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonsoir,

    Ton instruction SQL n'est pas correcte, tu as un ";" qui traine au milieu.
    On ne peut avoir 2 "WHERE" dans une seule instruction. Quel filtre tu veux utiliser :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE T_EVALUATIONS.ID_EVALUATION = 4;
    ou
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((T_EVALUATIONS.ID_EVALUATION)=" & Me![ID_EVALUATION] & "));

    Cordialement,

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 17
    Par défaut
    SUPER !

    Le point virgule était bien la cause du problème. Merci.

    (Pour les 2 WHERE il s'agit d'une mauvaise retranscription du code. J'ai testé les 2 conditions pour voir, et ai oublié de supprimer l'une des deux en recopiant ici )

    Voilà le code définitif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub BP_ajouterTousLesEleves_Click()
     
        Dim cnnX As ADODB.Connection
        Set cnnX = CurrentProject.Connection
     
        Dim mySQL As String
     
        mySQL = "INSERT INTO J_ELEVES_EVALUATIONS ( ID_EVALUATION, ID_ELEVES ) " _
              & "SELECT T_EVALUATIONS.ID_EVALUATION, J_CLASSES_ELEVES.ID_ELEVES " _
              & "FROM T_EVALUATIONS, T_ELEVES INNER JOIN J_CLASSES_ELEVES ON T_ELEVES.ID_ELEVE = J_CLASSES_ELEVES.ID_ELEVES " _
              & "WHERE (((T_EVALUATIONS.ID_EVALUATION)=" & Me![ID_EVALUATION] & ")) " _
              & "ORDER BY T_ELEVES.NOM_PRENOMS;"
     
        cnnX.Execute mySQL
     
        DoCmd.Requery "F_ELEVES_EVALUATIONS"    'rafraichissement du SF
     
    End Sub
    @++

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

Discussions similaires

  1. [XL-2007] Ajout de colonne par VBA
    Par grenoble87 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/01/2014, 15h45
  2. Automatisation de l'ajout de référence par VBA ?
    Par philoul dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/07/2013, 15h46
  3. [XL-2007] Liaison VBA/SQL en erreur
    Par ridokou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/12/2010, 10h41
  4. ajouter une colonne par code SQL
    Par zalalus dans le forum Développement
    Réponses: 5
    Dernier message: 16/07/2010, 17h32
  5. Erreur d'exécution -2147217900 (80040e14)
    Par reussite dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/02/2007, 09h10

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