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 :

Connection par ADO au fichier Access en cours [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut Connection par ADO au fichier Access en cours
    Bonjour.

    Pour se connecter a une base Access dans laquelle on execute le programme VBA par ADO, il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim oConn As ADODB.Connection, oRS As ADODB.Recordset
    Set oConn = New ADODB.Connection
    oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
              "Data Source=" & CurrentProject.FullName & ";"
    oConn.Open
    'Jet ne semble plus fonctionner avec Access 2007 lorsque le fichier est en format accdb et non mdb
     
    'puis ouverture de la table
    Set oRS = New ADODB.Recordset
    oRS.CursorLocation = adUseClient
    oRS.Open "select * from Matable", oConn, adOpenDynamic, adLockOptimistic, adCmdText
    Le probleme, c'est que :
    - dans la version complete d'Access, si je me trouve sur le formulaire en mode modifications et que je repasse en mode saisie, bien souvent Access me signale que la base est deja ouverte.
    - le probleme ne se pose pas si j'ouvre le formulaire (je n'etais pas en mode modifications) dans cette meme version complete d'Access
    - lorsque j'ouvre le formulaire avec le runtime Access, la connection a la base par ADO (les lignes indiquees ci-dessus) lui pose probleme, le programme est ferme pour cause d'erreur.

    Sachant que, par DAO, lorsque je cherche a ouvrir une table qui se trouve dans le meme fichier que le module VBA, je me contente d'ouvrir la table en indiquant "Currentdb" comme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Dim Tb as dao.recordset
    set tb=currentdb.openrecordset("matable",dbopendynaset)
    J'ai essaye de faire la meme chose par ADO en remplacant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    oRS.Open "select * from Matable", oConn, adOpenDynamic, adLockOptimistic, adCmdText
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    oRS.Open "select * from Matable", CurrentProject.FullName , adOpenDynamic, adLockOptimistic, adCmdText
    'j'ai remplace oConn par CurrentProject.FullName
    ou par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    oRS.Open "select * from Matable", CurrentDb , adOpenDynamic, adLockOptimistic, adCmdText
    'j'ai remplace oConn par CurrentDb
    Access me signale qu'il n'a pas pu se connecter a la base. Erreur signalee :
    "Method 'Open' of object '_Recordset' failed".

    Comment peut on faire pour ouvrir une table et travailler dessus par ADO sans ouvrir d'abord un acces a la base Access deja ouverte ?

    Merci.
    Cdlt.

  2. #2
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    Bonjour,

    Pour utiliser la base ouverte ds laquelle tu as ton code, il faut utiliser ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oConn As ADODB.Connection
    'Connection à la Base Access
    Set oConn = CurrentProject.Connection
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

  3. #3
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut
    Bonjour.

    Merci pour la reponse qui a resolue mon probleme.

    Cdlt.

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

Discussions similaires

  1. [XL-2010] Connection a un fichier Access protégé par un mot de passe
    Par fusee2013 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/08/2013, 03h36
  2. download un fichier accessible par ftp
    Par diamonds dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 22/01/2007, 11h12
  3. Réponses: 3
    Dernier message: 18/09/2006, 16h42
  4. Réponses: 9
    Dernier message: 19/08/2004, 11h03
  5. Comment lire un fichier DB en cours d'utilisation par 1 autr
    Par jbat dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/03/2004, 11h06

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