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:
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 :
Citation:
Erreur d'exécution
'-2147217904 (80040e10)'
Erreur Automation
l'erreur provient de la ligne :
Code:
Set Resultat = Connexion.Execute(texte_SQL)
Pas très explicite. je vais donc voir l'aide :
Citation:
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.