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 :

Rafraîchissement automatique des liaisons des tables attachées


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut Rafraîchissement automatique des liaisons des tables attachées
    Bonjour

    J'aimerais trouver un script qui permet de mettre à jour les liaisons, sauf que cela fonctionne via un puisque c'est le cas où on à un front office et un back office. (http://www.3stone.be/access/articles.php?lng=fr&pg=28)

    Or, mon fichier(unique) comporte des tables lieés et d'autres non , donc j'aimerais qu'au démarrage du formulaire, les liaisons soient automatiquement remises à jour ( un bon refresh quoi ^^ ) pour que le WSID s'adapte au PC sur lequel le fichier est lancé.

    Merci beaucoup

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2007
    Messages : 184
    Points : 188
    Points
    188
    Par défaut
    bonjour,
    Fais un essai avec ce code.
    Je l'utilise tous les jours (Access97 - 2000 - 2003)

    Usage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Function ModifAttache(lechemincompletdelabase)

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Function fGetLinkPath(strTable As String) As String
    Dim dbs As Database, stPath As String
     
        Set dbs = CurrentDb()
        On Error Resume Next
        stPath = dbs.TableDefs(strTable).Connect
        If stPath = "" Then
            fGetLinkPath = vbNullString
            'can change this to currentdb.name
        Else
            fGetLinkPath = Right(stPath, Len(stPath) _
                            - (InStr(1, stPath, "DATABASE=") + 8))
        End If
        Set dbs = Nothing
    End Function
     
     
    Function ModifAttache(strDBPath)
    ' Modification simple des attaches
    ' sur le modèle de fGetLinkPath de Dev Ashish
    ' 21/07/2005
        Dim vieuxnom As String, stPath As String
        Dim loTd As TableDef
        Dim dbs As Database
        Dim I As Integer, nb As Integer
        I = 0
        CurrentDb.TableDefs.Refresh
        ' nb de table
        nb = CurrentDb.TableDefs.Count
     
     
        For Each loTd In CurrentDb.TableDefs
            On Error Resume Next
           stPath = dbs.TableDefs(loTd.Name).Connect
           If stPath = Null Then
            Else
                I = I + 1
                vieuxnom = fGetLinkPath(loTd.Name)
                loTd.Connect = ";Database=" & strDBPath    
                loTd.RefreshLink
            Debug.Print loTd.Name; " "; fGetLinkPath(loTd.Name); " à la place de : "; vieuxnom
     
            End If
        Next loTd
        Set loTd = Nothing
        CurrentDb.TableDefs.Refresh
        MsgBox "Terminé." & vbCrLf & I & " tables attachées pointent désormais vers la base de données " & strDBPath, vbOKOnly, "Procédure terminée avec succés"
    End Function
    cordialement,
    FEVEC

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Merci mais je ne suis pas sur que cela me corresponde.

    Mes tables liées sont sur un serveur SQL 2000.

    En fait dans Access je peux "mettre à jour" les liaisons et cela correspond à ce que je cherche mais j'aimerais l'automatiser, pour ne pas que l'utilisateur ait à le faire lui même.


  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2007
    Messages : 184
    Points : 188
    Points
    188
    Par défaut
    Bonjour,
    si j'ai bien compris la situation...

    A chaque démarrage, Par une macro Autoexec (par exemple), lancement du code qui réattache les tables avec la source de données.

    cordialement,
    fevec

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par fevec Voir le message
    Bonjour,
    si j'ai bien compris la situation...

    A chaque démarrage, Par une macro Autoexec (par exemple), lancement du code qui réattache les tables avec la source de données.

    cordialement,
    fevec
    Tout à fait. J'ai la moitié des tables qui sont sur Server SQL donc j'aimerais qu'il réattache ces tables à chaque lancement de programme.

    Merci

  6. #6
    Membre régulier Avatar de 5GPCISAS1
    Inscrit en
    Novembre 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Novembre 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Moi j'utilise ce code dans un module que j'applique sur l'ouverture de mon formulaire d'entrée (version 2003);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function Initialisation()
     
        Dim SQL As String
        Dim SQL1 As String
     
        SQL = "DELETE [Ta_Table].* FROM [Ta_Table]"
        SQL1 = "INSERT INTO  SELECT [Table_Liée].*  FROM [Table_Liée] IN 'Chemin_de_la-Table_Liée.mdb'"
     
        DoCmd.RunSQL SQL
        DoCmd.RunSQL SQL1
     
    End Function
    J'espère que ça peut t'aider

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par 5GPCISAS1 Voir le message
    Moi j'utilise ce code dans un module que j'applique sur l'ouverture de mon formulaire d'entrée (version 2003);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function Initialisation()
     
        Dim SQL As String
        Dim SQL1 As String
     
        SQL = "DELETE [Ta_Table].* FROM [Ta_Table]"
        SQL1 = "INSERT INTO  SELECT [Table_Liée].*  FROM [Table_Liée] IN 'Chemin_de_la-Table_Liée.mdb'"
     
        DoCmd.RunSQL SQL
        DoCmd.RunSQL SQL1
     
    End Function
    J'espère que ça peut t'aider
    Merci mais ca n'est pas du tout mon problème

    En fait j'aimerais parvenir au même résultat que si je fais :
    outils->utilitaire de base de données->gestionnaire des tables liées

    Mêttre à jour sans l'intervention de l'utilisateur

Discussions similaires

  1. [AC-2003] Perte des liaisons de table au démarrage
    Par stigma dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/06/2009, 11h49
  2. Résultats avec des liaisons de table.
    Par kro001 dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/10/2007, 12h29
  3. Export des commentaires des champs de table en mode création
    Par zigzagzoug dans le forum Modélisation
    Réponses: 5
    Dernier message: 11/10/2007, 17h50
  4. Numérotation automatique et liaison de table
    Par idic0 dans le forum Modélisation
    Réponses: 1
    Dernier message: 25/06/2007, 11h40
  5. Réponses: 2
    Dernier message: 06/10/2006, 10h16

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