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 :

[VBA] ouvrir une table distante


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 59
    Points
    59
    Par défaut [VBA] ouvrir une table distante
    Bonjour à tous!
    Je connais le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.opentable "Nom_table"
    pour ouvrir une table de la base de donnée courante, mais comment je fais pour faire ouvrir une table d'une base access distante?

    En espérant que ma question soit claire
    Merci.

    ps : quand je dis faire ouvrir la base, c'est faire ouvrir une fenêtre permettant je visionner les enregistrements qu'elle contient.

  2. #2
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    tu peux faire une requête comme ça :
    http://access.developpez.com/faq/?pa...tes#ReqTablExt

    et tu l'ouvres avec DoCmd.OpenQuery

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    Alors j'ai testé pas mal de truc et à chaque fois y'a une erreur.
    2 exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim req as string
    dim rec as recordset
     
    req ="select * from Nom_table In 'C:\.....\base.mdb' "
    set rec = currentdb.OpenRecordset(req)
    docmd.openquery rec
    ça me met cette erreur pour la derniere ligne : Le type d'une expression entrée pour un des arguments est incorrect

    ou j'essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim rec As Recordset
    Dim db As Database
     
    Set db = OpenDatabase("C:\....\base.mdb")
     
    Set rec = db.OpenRecordset("Nom_Table")
    DoCmd.OpenQuery rec
    et j'ai la meme erreur toujours sur le DoCmd.OpenQuery rec


    j'ai aussi fait directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenQuery "select * from nomtable in c:\ ... \ base.mdb"
    et là il me met objet introuvable.

  4. #4
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 162
    Points : 197
    Points
    197
    Par défaut
    bonjour

    remplace par A+

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    RunSQL est dédié aux requêtes Action

    Pourquoi :
    set rec = currentdb.OpenRecordset(req)
    ?

    Enfin, docmd.OpenQuery ouvre une requête enregistrée via son nom dans le paramètre.

    Plusieurs techinques :

    1. Lier la table. Tu travailles ensuite dessus comme ci elle était dans ta base de données courante
    2. Enregistrer une requête SELECT * FROM .. IN, et l'appeler avec docmd.OpenQuery
    3. Enregistrer dynamiquement la requête dans le code avec les objets DAO QueryDef et l'appeler avec docmd.OpenQuery

  6. #6
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    Le runsql ne fonctionne pas avec des instruction sql commençant par SELECT.

    Et puis de toute façon je pense que cette instruction aurait exécuté mon sql, mais ne m'aurait pas ouvert la table.
    Merci quand même.

  7. #7
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    Ok tofalu, c'est surtout ton choix 2 ou 3 qui m'interessent, le premier étant impossible dans mes conditions.

    pourquoi il me met Impossible de trouver l'objet [et là il me donne mon instruction sql] lorsque j'écris ça alors ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    req = "select * from Nom_Table In C:\...\Base.mdb"
    DoCmd.OpenQuery req

Discussions similaires

  1. [AC-2010] VBA - sauvegarder une table ACCESS en format EXCEL sans ouvrir EXCEL
    Par LiseUEMPT dans le forum Access
    Réponses: 2
    Dernier message: 22/05/2015, 17h23
  2. Ouvrir une table en vba comme une fenêtre indépendante.
    Par rob1son76 dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/01/2011, 13h24
  3. VBA Access, ouvrir une table et effacer les données
    Par Joselito2 dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/05/2010, 10h22
  4. Réponses: 1
    Dernier message: 02/03/2006, 10h52
  5. Réponses: 4
    Dernier message: 13/10/2005, 15h44

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