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 :
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 :
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
l'erreur provient de la ligne :Erreur d'exécution
'-2147217904 (80040e10)'
Erreur Automation
Pas très explicite. je vais donc voir l'aide :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set Resultat = Connexion.Execute(texte_SQL)
Je ne comprend pas grand chose. C'est quoi l'objet Err ? Et comment est ce qu'on accède à ses propriétés ?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 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.
Partager