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

Contribuez Discussion :

Utiliser un fichier accdb en dao


Sujet :

Contribuez

  1. #1
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut Utiliser un fichier accdb en dao
    Bonjour

    J'ai moi-même été confronté 2-3 fois au problème, et j'apporte ici le résultat de mes expérimentations.

    On ne peut pas accéder directement à un fichier .accdb à partir d'Excel en utilisant le DAO.
    La "bonne" solution consiste à utiliser l'ADO, comme indiqué par exemple ici.

    Mais dans certains cas (exigence du client, question d'un stagiaire, ...), on doit passer par le DAO.

    Un accès direct (avec le programme suivant) donnera un msg "format de base de données ... non reconnu"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub AvecDao()
        Dim db As DAO.Database
        Dim rst As DAO.Recordset
     
        Set db = DAO.DBEngine.OpenDatabase("c:\LaBase.accdb")
        Set rst = db.OpenRecordset("LaTable")
        Debug.Pring rst("LeChamp").Value
        rst.Close
        db.Close
     
    End Sub
    L'astuce consiste alors, en partant d'Excel, à passer par Access pour ouvrir la base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub AvecDAO_ViaAccess()
        Dim db As DAO.Database
        Dim acApp As New Access.Application
        Dim eng As DBEngine
        Dim rst As Recordset
     
        Set db = acApp.DBEngine.OpenDatabase("c:\MaBase.accdb")
        Set rst = db.OpenRecordset("LaTable")
        Debug.Pring rst("LeChamp").Value
        rst.Close
        db.Close
        Set acApp = Nothing
     
    End Sub
    En espérant que cette astuce pourra servir à qqu'un d'autre...

    Yvan

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2020
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Hello Yvan,

    Merci pour l'astuce ça m'a bien aidé

    Bien à toi

    Lucy

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