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

Access Discussion :

Liaison Access Oracle


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut Liaison Access Oracle
    Bonjour,

    Je travail sous access 2000.
    Je dois faire une base access exact copie de ma table oracle.(pour des utilisateurs landa puissent aller récupérer ces informations)
    Sous oracle une personne à déjà créer une procédure pour que je puisse aller récupérer les informations voulue.
    Il ne me reste plus qu'à créer de mon coté une macro VB access pour appeler la procédure, lui passer des parametres, et récupérer les informations.

    Le probleme est que je ne sais pas trop comment m'y prendre avec vb pour appeler ma procédure stockée sous oracle.
    J'ai tout de meme chercher sur le net et à priori on peut le faire en passant par la technologie ADODB.
    Je bloque surtout sur comment envoyer mes trois parametre à ma procédure sachant que mes paramètres envoyer sont
    - le curseur contenant les résultats (je pense q'uen déclarant un recordset ca devrait aller)
    - ma date de début de période
    - ma date de fin de période


    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
     
    Sub MAJ_Table_Dashboard()
    ' Declaration des constantes
     
    ' Declaration des variables
    Dim Conn As ADODB.Connection
    Dim Cmd As ADODB.Command
    Dim strConnOLEDB As String
     
    Set Conn = createobjet("ADODB.Connection")
    Set Cmd = createobjet("ADODB.Connection")
    Set Cmd.ActiveConnection = Conn
     
    ' Creation / Ouverture de la connexion access-oracle
    strConnOLEDB = "UID=ebiz_stats;PWD=ebiz;DRIVER=msdaora;Server=OPAR5BAH01;Database=" & NomBaseDeDonnées & ";"
    Conn.Open strConnOLEDB
     
    ' Creation / Ouverture de la procédure stockée
    Cmd.CommandType = adCmdStoredProc
    Cmd.CommandText = "PSTAT_QUOTEMONITOR"
     
     
     
     
     
    'Préparation du paramètre
    prm1.Name = "nom" 'Nom du champ correspondant
    prm.Type = adVarChar 'Type du champ
    prm.Direction = adInput 'Type de paramètre : Entrée, Sortie, Entrée/Sortie
    prm.Size = 40 'Taille maximale du champ
    prm.Value = "Dupond" 'Valeur du paramètre
     
    'Exécution de la requête
    Set rst = Cmd.Execute
    End Sub
    Merci pour vos commantaires.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    salut à toi

    ta procedure tu peux lappeler depuis une requete sql non?
    si c' le cas tu ecrire cette requete sql et la lancer depuis access avec sql direct...

  3. #3
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Une question: pourquoi ne pas lier simplement les tables oracle dans ta base Access ?

    Ensuite, tu pourras faire des requêtes sur les tables liées, sans te casser la tête à faire des procédures stockées.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    juste quelques commentaires sur le code.

    Tu as écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Cmd = createobjet("ADODB.Connection")
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Cmd = createobjet("ADODB.Command")
    et je pense que cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Cmd.ActiveConnection = Conn
    devrait être après le commentaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ' Creation / Ouverture de la procédure stockée
    Pour ORACLE je ne sais pas, mais avec SQL Serveur je n'ai pas besoin d'ajouter les paramètres à la collection Parameters.
    remplit la collection et je n'ai plus qu'à mettre les valeurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Paramètre VARCHAR(3) dont le nom est @PBG
    Cmd.Parameters.Item("@PBG").Value = "PT1"
    Bon courage

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    Merci pour vos conseil je prends note, je test et je vous reviens.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    j'utilise la comande Cmd.Parameters comme ca? Parce que je ne sais pas vraiment pour le recordset.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Cmd.Parameters.Item("Parametre1")= MonRst
    Cmd.Parameters.Item("Parametre2").Value = "DateDebut"
    Cmd.Parameters.Item("Parametre3").Value = "DateFin"
    Merci

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    salut à toi

    tu crées dabord une DSN systeme avec Microsoft ODBC for Oracle
    ensuite avec access 2003, dans requetes--->Spécifique SQL--->sql direct
    tu spécifies dans propriétés de la barre d'outils les propriétés de la DSN enfin tapes ta requete oracle telle qu'elle est avec les procedures stockées et autres...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par esthr
    salut à toi

    tu crées dabord une DSN systeme avec Microsoft ODBC for Oracle
    ensuite avec access 2003, dans requetes--->Spécifique SQL--->sql direct
    tu spécifies dans propriétés de la barre d'outils les propriétés de la DSN enfin tapes ta requete oracle telle qu'elle est avec les procedures stockées et autres...
    EXCUSE MOI je viens de voir que tu travailles avec access 2000
    merci

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    Commen fait-on pour passer un "pointeur"? (curseur qui contiendra les données)

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    Quelle librairie faut-il que j'active pour pouvoir créer des objet en VBA?

  11. #11
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    La récupération des enregistrements dans un recordset se fait par la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Exécution de la requête ou procédure stockée
    Set rst = Cmd.Execute
    C'est comme ça que ja fais avec une procédure stockée SQL Serveur.
    Je ne renseigne que les paramètres en entrée.

    A+

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    l'ennuis c'est que je dois envoyer mon recordset en parametre.
    Comment faire?

    J'ai aussi une erreur a ma ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Conn.Open strConnOLEDB
    à cause de l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strConnOLEDB = "Provider=MSDAORA;Data Source=OPAR5BAH01;InitialCatalog=Oracle;User ID=ebiz_stats;Password=ebiz"
    Je soupsonne que se soit cette partie qui soit fausse:

  13. #13
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    Voila celle que j'utilise au boulot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "PROVIDER=MSDAORA;Data Source=ALIAS_SERVER;" & _
    "User ID=MonID;Password=MonMotDePasse;"
    'Client Oracle' est installé sur mon PC.

    ALIAS_SERVER correspond à une entrée dans le fichier tnsnames.ora qui lui même se trouve dans C:\oracle\ora81\network\ADMIN
    Je ne peux pas t'en dire vraiment plus la dessus.

    Bon courage

Discussions similaires

  1. Migration Access / Oracle
    Par Sylvestre_[ADF] dans le forum Oracle
    Réponses: 5
    Dernier message: 14/06/2006, 12h09
  2. Réponses: 5
    Dernier message: 15/11/2005, 08h57
  3. migration de access à oracle 9i
    Par andy josy dans le forum Access
    Réponses: 1
    Dernier message: 20/09/2005, 11h54
  4. [access][oracle]exporter une table
    Par thief dans le forum JDBC
    Réponses: 10
    Dernier message: 14/07/2005, 13h34
  5. Plantage Access==>Oracle 9i
    Par newsbibi dans le forum Oracle
    Réponses: 4
    Dernier message: 09/02/2005, 13h55

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