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 :

[Table liée]Pointer sur le repertoire courant ou une adresse


Sujet :

Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [Table liée]Pointer sur le repertoire courant ou une adresse
    Bonjour,

    L'administrateur de mon entreprise réorganise l'emplacement de ses bases de données. De nombreuses bases font référence à des tables liés. Il souhaite savoir si il est possible que le lien de la table lié pointe sur le répertoire courant ou sur une adresse dans l'arborescence du serveur.

    Certaines bases sont énormes et n'utilise pas de code vba. Je dis ça car j'ai vu qu'il était possible de lier une table à une connection d'une base de données. Et de connexion par le code il n'y en a pas.

    Comment faire ???

  2. #2
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    En un mot mot il voudrait connaitre l'adresse des tables liées? c'est ça?
    @+

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    L'adresse des tables liés je peut facilement la retrouver dans le gestionnaire de tables liés. Maintenant il aimerait modifier le lien pour qu'il pointe sur le repertoire courant pour ensuite déplacer ou ça lui chante ...

    Exemple :
    au lieu d'avoir une adresse de ce genre :
    G:\Production\Lot.mdb\designation

    il voudrai :
    ..\Lot.mdb\designation
    ou peut etre :
    currentproject & designation

    Je ne vois pas ou il serai possible de renseigner ça !

  4. #4
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    si c'est possible avec la propriété connect de la table liée et de refreshLink
    tu cherches un peu de ce coté là pendant que je code un truc pour toi si possible.
    @+

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci pour l'aiguillage ...
    J'ai une solution possible :

    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
    Function LiaisonTable()
    Dim BD As DAO.Database
    Set BD = CurrentDb
    Dim chemin As String
     
    chemin = "MS Access;PWD=motdepasse;DATABASE=" & CurrentProject.Path & "\TABLE1.mdb"
     
    BD.TableDefs("nomdelatable").Connect = chemin
    BD.TableDefs("nomdelatable").RefreshLink
    BD.TableDefs("nomdelatable").Connect = chemin
    BD.TableDefs("nomdelatable").RefreshLink
     
    chemin = "MS Access;PWD=motdepasse;DATABASE=" & CurrentProject.Path & "\TABLE2.mdb"
     
    BD.TableDefs("nomdelatable").Connect = chemin
    BD.TableDefs("nomdelatable").RefreshLink
    BD.TableDefs("nomdelatable").Connect = chemin
    BD.TableDefs("nomdelatable").RefreshLink
    BD.TableDefs("nomdelatable").Connect = chemin
    BD.TableDefs("nomdelatable").RefreshLink
     
    End Function
    J'ai répété 5 fois car j'ai 5 tables liés. 2 sur une base et 3 autres sur une autre base.

    J'enregistre cette fonction dans un module. Je crée une macro qui l'exécute au démarrage et ... le tour est joué.

    Maintenant je crois que je vais m'amuser à faire ça dans chaque base ... il y en prés de 200 ... avec un peu de chance peu d'entre elles auront des tables liées ...

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    tu peux automatiser cela ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function UpDateLinks()
    Dim BD As DAO.Database
    Set BD = CurrentDb
    Dim tb As DAO.TableDef
    For Each tb In BD.TableDefs
        If Left(tb.NAME, 4) <> "MSys" Then
            If Len(tb.Connect) > 0 Then
                    tb.RefreshLink
            End If
        End If
    Next tb
    Set tb = Nothing
    Set BD = Nothing
    End Function
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    cafeine : Je m'attendai un peu à cette réponse ... je me suis inspiré du code que tu viens de me fournir.
    En fait toutes les tables ne pointe pas sur la meme base de données : là le code fait une boucle avec toutes les tables liés sur une même base de données
    .. mais en y repensant le code pourrait aussi être amélioré avec un select case sur le nom de table qui définierait le bon chemin ... enfin bon je ne suis pas sûr que ça en vaut vraiement la peine.

    Par contre tu viens de me rappeler qu'il faut que j'utilise des controles mais aussi que je décharge mes variables.

    En tout c'était du code brut, à peaufiner !!!

  8. #8
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par Didouille
    cafeine : Je m'attendai un peu à cette réponse ... je me suis inspiré du code que tu viens de me fournir.
    En fait toutes les tables ne pointe pas sur la meme base de données : là le code fait une boucle avec toutes les tables liés sur une même base de données
    .. mais en y repensant le code pourrait aussi être amélioré avec un select case sur le nom de table qui définierait le bon chemin ... enfin bon je ne suis pas sûr que ça en vaut vraiement la peine. En tout c'était du code brut, à paufiner !!!
    évidemment, c'est un code générique à adapter à ton cas ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



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

Discussions similaires

  1. pointer sur un repertoire
    Par MarieKisSlaJoue dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2013, 12h10
  2. revenir sur la page courante après une action
    Par Altenide dans le forum Struts 2
    Réponses: 8
    Dernier message: 08/04/2010, 11h41
  3. Réponses: 1
    Dernier message: 14/09/2007, 18h04
  4. [Requete] Inserer une variable ou le repertoire courant dans une requete ?
    Par doudoustephane dans le forum Requêtes et SQL.
    Réponses: 30
    Dernier message: 18/06/2006, 22h21
  5. pointer sur un autre élément d'une liste en codage
    Par rahan_dave dans le forum Access
    Réponses: 3
    Dernier message: 03/02/2006, 13h25

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