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 :

VBA Excel et Oracle


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut VBA Excel et Oracle
    Bonjour,

    Je souhaite requêter dans une base de données Oracle à partir d'une macro VBA Excel. J'utilise la méthode avec le composant ADO (ActiveX Data Object).

    La connexion ne s'effectue pas. En effet, je n'ai pas de message d'erreur (via une boite de dialogue) qui s'affiche mais lorsque je place un espion sur la variable associée à la connexion, j'ai le message suivant :
    Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué." : String : Module1.FonctionSQ
    Le code que j'utilise est le suivant :
    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
    Sub FonctionSQL()
     
    Dim cnx As ADODB.Connection
    Dim rst As ADODB.Recordset
     
    Set cnx = New ADODB.Connection
    Set rst = New ADODB.Recordset
     
    cnx.ConnectionString = "DSN=NOM_DSN;PWD=MotDePasse;"
     
    cnx.Open
     
    rst.Open "SELECT champ FROM table WHERE predicat = valeur", cnx
     
    MsgBox rst("champ")
     
    rst.Close
    cnx.Close
     
    End Sub
    J'ai au préalable configurer un DSN nommé NOM_DSN dans Microsoft ODBC Administrator avec comme pilote : {Oracle in OraHome92}. Dans ce module, un clic sur le bouton "Test connection" renvoie le message "connection successful".

    Je me suis aidé du site http://drq.developpez.com/vb/tutoriels/ADO/ mais sans succès.

    Quelqu'un peut-il m'aider ?

    Merci d'avance.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Dans le tuto auquel tu fais référence, on parle aussi de l'identifiant utilisateur (UID) et je ne le vois pas dans ton code.

    PGZ

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    J'ai spécifié le nom d'utilisateur en ajoutant une nouvelle source de données utilisateur dans le module "Administrateur de source de données" que l'on trouve dans "Démarrer --> tous les programmes --> Oracle OraHome92 --> Network Administration".

    Je viens de faire également un test avec la chaine de connexion suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSN=NOM_DSN;UID=NomUtilisateur;PWD=MotDePasse;
    Pouvez-vous m'aider ?

    Merci.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Et sans DSN, tu as essayé?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cnx.ConnectionString = "UID=" + NomUtilisateur & ";PWD=" & MotDePasse & ";" & "DRIVER=msdaora;Server=" & NomServeur & ";Database=" & NomBaseDeDonnées & ";"
    Voici une Connection String que j'utilise pour une base Oracle Application Express:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.xxx.xx.xxx)(PORT=1521)))(CONNECT_DATA=(SID=xe)(SERVER=DEDICATED)));User Id=xxx;Password=xxx;"

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonsoir,

    J'ai trouvé où était le problème : je n'utilisais pas le bon schéma.

    Bonne soirée et bonne nuit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/05/2014, 18h26
  2. création de DNS et connexion oracle en VBA EXCEL
    Par sami117 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2008, 14h05
  3. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  4. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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