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 :

Connexion ODBC Oracle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Par défaut Connexion ODBC Oracle
    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 :

    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
    Et cela plante à l'open, voici mon message d'erreur :

    Nom : Capture.PNG
Affichages : 2749
Taille : 7,2 Ko

    Pour finir, le nom du driver a été récupéré sur Excel :

    Nom : Capture2.PNG
Affichages : 2738
Taille : 11,3 Ko

    En clair je ne voit pas ce que je fais de mal... Merci de votre aide par avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Provider=OraOLEDB.Oracle.1;Password=" & Password & ";Persist Security Info=True;User ID=" & User & ";Data Source=" & BASE

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Provider=OraOLEDB.Oracle.1;Password=" & Password & ";Persist Security Info=True;User ID=" & User & ";Data Source=" & BASE
    Merci dysorthographie, j'ai testé et cette fois-ci j'ai ce message d'erreur :

    Nom : Capture4.PNG
Affichages : 2659
Taille : 5,3 Ko

    Dois-je cocher une bibliothèque de plus ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Par défaut
    Je l'ai fait depuis l'outils "Autres sources" dans l'onglet "Données" et cela fonctionne ! Mais ce n'est pas mon but... Je souhaite créer une fonction capable d'interroger une multitude de base juste en récupérant l'alias dans une des case. Je ne veut pas de cette outil.

    Bref voilà mon paramétrage de cette outils au cas où cela puisse vous aider à me dire où est l'erreur dans mon code :

    1. Je choisis "autres sources" et "Provenance : Microsoft Query"
    Nom : Capture05.PNG
Affichages : 2689
Taille : 264,1 Ko

    2.Je choisis "Nouvelle source de données" et je clique sur "ok"
    Nom : Capture06.PNG
Affichages : 2621
Taille : 6,8 Ko

    3. J'indique mon Alias de BDD, utilisateur et mot de passe
    Nom : Capture07.PNG
Affichages : 2639
Taille : 4,2 Ko

    4. J'indique un Libellé à cet éléments que je suis en train de cré, le driver à utiliser et la table avec laquelle je souhaite travailler
    Nom : Capture08.PNG
Affichages : 2703
Taille : 12,1 Ko

    5. J'annule et je ferme les deux fenêtres suivantes
    Nom : Capture09.PNG
Affichages : 2677
Taille : 15,6 Ko
    Nom : Capture10.PNG
Affichages : 2646
Taille : 8,8 Ko

    6. Je clique sur "SQL"
    Nom : Capture11.PNG
Affichages : 2613
Taille : 3,9 Ko

    7. Je mets ma requête
    Nom : Capture12.PNG
Affichages : 2643
Taille : 6,5 Ko

    8. Je fais "OK" à ce message d'erreur
    Nom : Capture13.PNG
Affichages : 2610
Taille : 9,1 Ko

    9. Je ferme la fenêtre à la croix
    Nom : Capture14.PNG
Affichages : 2611
Taille : 9,8 Ko

    10. Je fais "OK"
    Nom : Capture15.PNG
Affichages : 2639
Taille : 10,5 Ko

    11. Et J'obtiens cela :
    Nom : Capture16.PNG
Affichages : 2605
Taille : 2,3 Ko

    Je ne sais pas si cela vous éclaire plus que moi... Mais de mon côté je me dis zut qu'ai je fait de mal dans mon code ?

    Une idée de votre côté ?

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Est-ce que dans le VBE tu as coché la bibliothèque d'objets correspondant dans Outils > Référence ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Par défaut
    Pour moi oui, mais vous qu'en pensez vous :

    Nom : Capture3.PNG
Affichages : 2739
Taille : 22,5 Ko

Discussions similaires

  1. [ODBC] Problème connexion ODBC Oracle 9 / Access 2007
    Par jack554 dans le forum Interfaces de programmation
    Réponses: 0
    Dernier message: 05/06/2009, 16h20
  2. Connexion ODBC à Oracle
    Par Cédric B. dans le forum Accès aux données
    Réponses: 2
    Dernier message: 29/04/2009, 08h52
  3. Réponses: 4
    Dernier message: 27/03/2009, 22h22
  4. Problème de connexion ODBC Oracle
    Par Nary dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 30/01/2008, 15h20
  5. Erreur de connexion ODBC Oracle
    Par Abargadon dans le forum Administration
    Réponses: 1
    Dernier message: 30/04/2007, 09h40

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