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 :

Mettre à jour une attache table


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de PtitGénie
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 231
    Points : 88
    Points
    88
    Par défaut Mettre à jour une attache table
    Bonjour !

    Mon problème : j'ai attaché à mon projet (à ma base de donnée) une table provenant d'une autre base.
    J'aimerais que cette attache soit mise à jour à l'ouverture d'une formulaire (ou à l'ouverture du projet) via un code VBA.
    J'ai trouvé sur Internet comment attacher une table en VBA, mais pas comment faire cette actualisation en code...

    J'espèce avoir été clair ^^

    Merci d'avance !

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,


    Pour créer une nouvelle relation, tu peux utiliser la méthode ou utiliser en DAO la propriété Connect d'un objet Tabledef nouvellement créé, comme proposé dans la faq http://access.developpez.com/faq/?pa...#RetablLienTbl.


    Si tu souhaites uniquement mettre à jour le lien d'une table liée existante, il te suffit de mettre à jour la propriété Connect sur un objet tabledef existant. Il te faudra alors simplement forcer le rafraichissement de cette table attachée pour une prise en compte immédiate, avec la méthode RefreshLink.

    Quelque chose du genre:

    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
    Sub MAJLienTableAttachée(sLinkedTableName As String, sDBFullName As String)
     
        'sLinkedTableName = nom de la table attachée, supposé le même que celui de la table source liée
        'sDBFullName = nom et chemin complet du fichier de base de données contenant la table (supposé ici non protégé par un mot de passe)
     
     
        Const cstPrefixeAttache As String = ";DATABASE="
     
        Dim oTbl As DAO.TableDef
        Dim odb As DAO.Database
        Set odb = CurrentDb
     
     
        Set oTbl = odb.TableDefs(sLinkedTableName)
     
        oTbl.Connect = cstPrefixeAttache & sDBFullName
        oTbl.RefreshLink
     
        Set odb = Nothing
    End Sub
    Il faudrait bien sur adapter ce code à tes besoins et compléter en ajoutant une gestion d'erreur et des commentaires...

  3. #3
    Membre régulier Avatar de PtitGénie
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 231
    Points : 88
    Points
    88
    Par défaut
    Merci de ta réponse ^^

    Le problème, c'est que je n'ai pas de chemin d'accès, ce n'est pas une base Access que je lie. Je faais Fichier / Données externes / Lier les tables !

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par PtitGénie Voir le message
    Merci de ta réponse ^^

    Le problème, c'est que je n'ai pas de chemin d'accès, ce n'est pas une base Access que je lie. Je faais Fichier / Données externes / Lier les tables !


    Le principe reste le même... il te faut simplement adapter le contenu de la propriété connect.

  5. #5
    Membre régulier Avatar de PtitGénie
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 231
    Points : 88
    Points
    88
    Par défaut
    Ah oki...

    J'ai donc tenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        oTbl.Connect = "COG_T_VENDEUR;pwd=truc;DATABASE=HORIZONSQL"
        oTbl.RefreshLink
    Sans succès :/ => la fenêtre pour lier une table s'ouvre à présent o_O

    J'ai aussi tenté "DATABASE=HORIZONSQL.dsn" '-'

  6. #6
    Membre régulier Avatar de PtitGénie
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 231
    Points : 88
    Points
    88
    Par défaut
    J'approche, j'approche '-'

    J'ai fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim TblDef As DAO.TableDef
    Dim myDB As DAO.Database
     
    Set myDB = CurrentDb
    Set TblDef = myDB.TableDefs("COG_T_SALARIE")
    TblDef.RefreshLink
    myDB.TableDefs.Refresh
    Ca lance la mise à jour, seulement cela demande le mot de pass -_-
    (ce que je voulais éviter, d'où le topic ^^)

Discussions similaires

  1. Mettre à jour une table attachée
    Par micth dans le forum Access
    Réponses: 5
    Dernier message: 15/05/2012, 09h53
  2. Comment mettre à jour une attache de table en VBA ?
    Par guidav dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/06/2007, 19h54
  3. Réponses: 1
    Dernier message: 23/01/2006, 18h53
  4. Prb mettre à jour une table via un fichier excel
    Par antier dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 10h31
  5. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08

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