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

VBA Access Discussion :

Lier tables Oracle sans ODBC


Sujet :

VBA Access

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut Lier tables Oracle sans ODBC
    Bonjour,

    Depuis 2 jours, j'essaye de lier des tables Oracle avec ODBC mais sans succès...(j'y suis presque arrivé mais il doit y avoir un truc qui m'échappe...enfin passons j'abandonne cette méthode).

    Donc vu le temps que ça m'a pris et que je ne comprends pas pourquoi ça ne marche pas, j'ai essayé une autre méthode : je me connecte sur la base grâce à ADODB. Et là ça marche : je peux faire des requêtes, afficher les résultats ou même les insérer dans une table locale.

    Mais je préfèrerais lier la (ou les) table(s) dont j'ai besoin pour éviter à mon utilisateur de cliquer sur un bouton afin de mettre à jour les données en local.

    Existe-t-il donc un moyen de lier les tables sans ODBC, via ADODB par exemple ?

    Voici mon code permettant de me connecter à la base :
    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
    Private conn As ADODB.Connection
    Private cmdSql As ADODB.Command
     
    Private Sub btn_connection_Click()
     
        Set conn = New ADODB.Connection
        Set cmdSql = New ADODB.Command
     
        conn.ConnectionString = "Provider=msdaora;" & _
                               "Data Source=MaBase;" & _
                               "user id=monLogin;" & _
                               "password=monPass"
        conn.Open
        cmdSql.ActiveConnection = conn
     
    End Sub

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Mars 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonsoir,

    J'ai également une application MS Access (2010) avec des tables liées Oracle. Ma question est un peu différente: est-il possible d'utiliser ADODB pour lire dans des tables liées ?

    Merci !

  3. #3
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonsoir,

    J'ai une base appli access qui communique avec une base Oracle. J'utilise 2 cas qui marchent bien :

    1. SANS LIAISON, avec ADODB. Exemple de procédure :
    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
    Public Function Get_description(n)
    On Error GoTo err
    Dim connect As ADODB.Connection 'connect = crée connection vers base oracle
    Dim Cmd As ADODB.Command 'effectue commande sur la base
    Dim rso As ADODB.Recordset 'recordset pour base Oracle
     
    Get_description = ""
    If Reseau And Not IsNull(n) Then
      Set connect = New ADODB.Connection ' créer connection sur oracle
      connect.Open "MaBase", "MonLog", "MonPwd"
      connect.CursorLocation = adUseClient
      Set Cmd = New ADODB.Command
      Cmd.CommandType = adCmdText
      Set Cmd.ActiveConnection = connect
     
      Cmd.CommandText = "SELECT ref, libelle FROM article where ltrim(id_article)='" & n & "';"
      Set rso = Cmd.Execute
      If Not rso.EOF Then Get_description = rso!ref & " - " & rso!libelle
      rso.Close: Set rso = Nothing
      Set connect = Nothing
    End If
    err:
    End Function
    Ca marche aussi en écriture ou en modification...

    2. AVEC LIAISON : une fois les tables rattachées à ma frontale Access, elles se comportent comme des tables Access... Par contre dans certains cas les temps de réponse sont très mauvais, en particulier sur les requêtes qui mixent tables Oracle et tables Access. Pour faire la liaison j'avais trouvé sur le net un bon tuto dont je n'ai plus la référence.

    J'ai aussi essayé une liaison OO4O qui marchait bien en lecture mais pas en écriture donc je n'ai pas insisté.

Discussions similaires

  1. Lier tables MySQL aux ODBC Sage integrale Ligne 500
    Par Klemsy78 dans le forum MySQL
    Réponses: 0
    Dernier message: 14/10/2009, 13h32
  2. [AC-2003] Lier des tables sans ODBC
    Par stigma dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/06/2009, 08h08
  3. Réponses: 2
    Dernier message: 15/07/2008, 09h00
  4. Réponses: 3
    Dernier message: 31/01/2008, 17h48
  5. Réponses: 3
    Dernier message: 09/09/2006, 13h24

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