Bonjour à tous,
Je souhaite établir une connexion ODBC à ma base oracle pour y faire une requête sql qui renvoie l'info dans la case E2. Pour cela, j'ai un client oracle10 d'installé avec un tnsnames.ora. (Pour infos mon sqldevelopper et mon sql+ fonctionnent nickel avec l'alaias de base. Mais dans Excel il ne veut pas... Bon trêve de bavardage... Voici mon code :
Et cela plante à l'open, voici mon message d'erreur :
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
27
28
29
30
31
32
33
34
35
36
37
38 Sub MacroTest() '¤¤¤¤¤¤¤¤¤Déclaration des variables¤¤¤¤¤¤¤¤¤¤ Dim cNx As ADODB.Connection Dim oRS As ADODB.Recordset Dim sSQL As String '¤¤¤¤¤¤¤¤¤FIN Déclaration¤¤¤¤¤¤¤¤¤¤ 'On déclare le nouvel objet connexion Set cNx = New ADODB.Connection 'Chaine de connexion cNx.ConnectionString = "ODBC;DRIVER={Oracle dans Ora10_2_0_3};SERVER={AliasBDD};UID=User;PWD=MDP" cNx.Open 'On lance la requête SQL sSQL = "Select name from datatable;" Set oRS = New ADODB.Recordset oRS.Open sSQL, cNx, adOpenStatic 'On vérifie le retour de requête MsgBox IIf(oRS.EOF, "Il n'y a aucun enregistrement", "Il y a au moins un enregistrement") 'On implémente la case excel avec le résultat de la requête With ThisWorkbook.Worksheets("Feuil1") .Range("E2").ClearContents .Range("E2").CopyFromRecordset oRS End With 'On ferme le tout ! oRS.Close cNx.Close Set oRS = Nothing Set cNx = Nothing End Sub
Pour finir, le nom du driver a été récupéré sur Excel :
En clair je ne voit pas ce que je fais de mal... Merci de votre aide par avance.
Partager