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.