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 :

Requête SQL : Erreur Automation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 173
    Par défaut Requête SQL : Erreur Automation
    Bonjour,

    pour récupérer le résultat d'une requête SQL et par soucis de lisibilité de mon code, j'ai créé une fonction qui effectue une requête SQL renvoie l'objet de type RecordSet. Voici cette fonction :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    Private Function contenuSecteur(ByVal nomSecteur As String) As Recordset
        Dim Connexion As ADODB.Connection
        Dim Fichier As String
        Dim texte_SQL As String
        Dim Resultat As ADODB.Recordset
     
        Fichier = "E:\Benchmark\BaseTitres.xls"
     
        Set Connexion = New ADODB.Connection
     
        With Connexion
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Data Source=" & Fichier & ";Extended Properties = Excel 8.0;"
            .Open
        End With
     
        texte_SQL = "SELECT Isin, Nom, Poids FROM [Feuil1$] a, [Feuil4$] b WHERE a.Classification3 = b.Classification3 AND b.NotreClassification = " + nomSecteur
     
        Set Resultat = New ADODB.Recordset
        'On Error Resume Next
        Set Resultat = Connexion.Execute(texte_SQL)
     
        Set contenuSecteur = Resultat
        Connexion.Close
        Set Connexion = Nothing
    End Function
    J'ai utilisé le tutorial de SilkyRoad "Lire et écrire dans les classeurs Excel fermés". Le problème, c'est que lorsque je lance ce code, il m'affiche l'erreur suivante :

    Erreur d'exécution
    '-2147217904 (80040e10)'
    Erreur Automation
    l'erreur provient de la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Resultat = Connexion.Execute(texte_SQL)
    Pas très explicite. je vais donc voir l'aide :

    Erreur Automation (erreur 440)


    Lorsque vous accédez à des objets Automation, des types d'erreur spécifiques peuvent se produire. Cause et solution de cette erreur :

    Une erreur s'est produite lors de l'exécution d'une méthode ou de l'obtention ou de la définition d'une propriété d'une variable objet. L'erreur a été signalée par l'application qui a créé l'objet.
    Vérifiez les propriétés de l'objet Err pour identifier la source et la nature de l'erreur. Tentez également d'utiliser l'instruction On Error Resume Next immédiatement avant d'accéder à l'instruction, puis vérifiez l'absence d'erreurs immédiatement après l'accès à l'instruction.

    Pour plus d'informations, sélectionnez l'élément en question et appuyez sur F1 (sous Windows) ou AIDE (sur Macintosh).
    Je ne comprend pas grand chose. C'est quoi l'objet Err ? Et comment est ce qu'on accède à ses propriétés ?

    Je précise que j'ai essayé de mettre le On Error Resume Next. Quand je le mets, il va un peu plus loin, puis fait une autre erreur, donc je pense que ce n'est pas dans cette direction qu'il faut chercher (je me trompe peut être, d'ailleurs...).

    Je précise aussi que lorsque je clique sur 'Execute' de la ligne qui plante et que je fais F1, j'ai une fenêtre d'aide toute grise qui s'ouvre...donc pas d'aide.

    Quelqu'un peut il m'aider ?

    Je vous remercie.

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Je n'ai pas le temps de regarder de pres, mais le plus probable est une erreur dans l'instruction SQL.

    Cordialement,

    pgz

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 173
    Par défaut
    C'est exact pgz. Je viens tout juste de trouver l'erreur, et je vois qu'entre temps tu as posté ton message. En fait, c'est une erreur toute bête. Il ne faut pas mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte_SQL = "SELECT Isin, Nom, Poids FROM [Feuil1$] a, [Feuil4$] b WHERE a.Classification3 = b.Classification3 AND b.NotreClassification = " + nomSecteur
    mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte_SQL = "SELECT Isin, Nom, Poids FROM [Feuil1$] a, [Feuil4$] b WHERE a.Classification3 = b.Classification3 AND b.NotreClassification = '" + nomSecteur +"'"
    avec des simple quotes autour du nom du secteur. Pas de quoi poster un message sur le forum, mais il faut avouer que l'erreur renvoyée par VBA n'était pas très claire...

    Je te remercie quand même.

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

Discussions similaires

  1. Requête sql / Erreur
    Par peaceandloveman01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/09/2008, 12h46
  2. Pb requête SQL erreur date
    Par swissland dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/04/2008, 15h53
  3. [SQL] Requête SQL erreur de syntaxe
    Par helopme_69 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 05/01/2008, 21h51
  4. Problème de requête SQL - Erreur 3122
    Par Kornikopic dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/06/2007, 10h57
  5. [Requête/SQL]Erreur Syntaxe Access
    Par LAETIAZ dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/04/2007, 12h29

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