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 :

attachement : chemin absolu / chemin relatif pour BD fractionnée [AC-2016]


Sujet :

Access

  1. #1
    Membre du Club Avatar de ninon
    Femme Profil pro
    Programmeur
    Inscrit en
    Décembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Décembre 2004
    Messages : 68
    Points : 68
    Points
    68
    Par défaut attachement : chemin absolu / chemin relatif pour BD fractionnée
    Bonjour

    Je crée une base de données partagée sur un espace dropbox.
    Pour distribuer la base de données frontale entre plusieurs utilisateurs, j’ai fractionné la base et créé donc une BD principale qui contient les données.

    J’ai un souci avec l’attachement de ces tables : dans le gestionnaire d’attaches de ces tables, c’est un chemin absolu qui s’affiche de la forme :
    maTable (C:\Users\Proprietaire\Dropbox\repertoireDedie\maBase.accdb)

    Avec Proprietaire en clair : en l’occurrence moi qui suis gestionnaire de la BD.

    Alors qu’il faudrait avoir [Proprietaire] différent pour chacun des utilisateurs.

    Donc ça coince car les formulaires recherchent les données sur mon espace dropbox.

    Si je pouvais modifier, en vba, l’attachement pour remplacer C:\Users\Proprietaire\Dropbox\repertoireDedie
    par CurrentProject.Path
    l’attachement de toutes les tables seraient alors correct.

    Cet attachement figure dans la table MSysObjects, mais la table n’est pas editable.

    Je ne souhaite pas verrouiller d’avantage l’accès à cette base, dans la mesure où très peu d’utilisateurs vont la partager, chacun ayant son rayon d’action. Je ne tiens pas à créer une usine à gaz pour ce cas de figure.

    Est-ce qu’il existe une solution simple à mettre en œuvre ?

    Merci de m’éclairer sur le sujet.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    Bonjour.

    Access se réfère toujours à une adresse fixe donc il faut refaire tes liens.
    La connexion est dans la propriété Connect.
    Demande l'affichage de la valeur actuelle et tu vas facilement voir ce qu'il faut modifier.

    Ici un code générique à adapter à ta réalité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim db as dao.database:set db=currrentdb
     
    dim t as dao.tabledefs:for each t in db.tabledefs
     
       if t.connect<>"" then
          t.connect="Ici la nouvelle connexion"
          t.refreshlink
       end if
     
    next t
     
    db.close: set db=nothing
    A+

  3. #3
    Membre du Club Avatar de ninon
    Femme Profil pro
    Programmeur
    Inscrit en
    Décembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Décembre 2004
    Messages : 68
    Points : 68
    Points
    68
    Par défaut
    Merci Marot-r pour cette réponse rapide.
    J'ai donc testé le bout de code indiqué, hélas, il bloque sur t.connect en me disant :
    "Membre de méthode ou de données introuvable"
    Effectivement, quand je tape t. il ne me propose que append, count, delete et refresh

    D'ailleurs, il bloque aussi sur
    For Each t In db.TableDefs
    En me disant "incompatibilité de type"

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    OOps.

    pas de "s" à la fin.

    A+

  5. #5
    Membre du Club Avatar de ninon
    Femme Profil pro
    Programmeur
    Inscrit en
    Décembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Décembre 2004
    Messages : 68
    Points : 68
    Points
    68
    Par défaut
    Merci marot-r, tu m'avais bien mis sur la voie, j'ai continué mes recherches et j'ai finalisé comme suit, pour ceux que ça intéresse :
    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
     
    ' ------------------------------------------------------------------------------------------
    ' cette procédure modifie l'attachement de la base de données principale
    ' qui contient les données sur dropbox
    ' ------------------------------------------------------------------------------------------
    Sub NomAttachement()
     
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
     
    Set db = CurrentDb
     
      For Each tdf In db.TableDefs
        If (Left(tdf.Name, 1) = "T") Then  'seules les tables qui commencent par T sont concernées dans mon cas
            'pour changer l'attachement :
            db.TableDefs(tdf.Name).Connect = ";DATABASE=" & (CurrentProject.Path) & "\CCHB-bdPrincipale.accdb"
            'pour le rendre effectif
            db.TableDefs(tdf.Name).RefreshLink
        End If
      Next tdf
     
    db.Close
    Set db = Nothing
     
    End Sub
    Maintenant, les utilisateurs voient la base de donnée principale depuis leur "angle" dropbox.

    Il est essentiel de fonctionner avec dropbox en mode synchro ...

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

Discussions similaires

  1. Chemin absolu/chemin relatif et SOAPUI
    Par k3nsou dans le forum Services Web
    Réponses: 0
    Dernier message: 22/11/2010, 18h01
  2. Chemin absolu ou relatif ?
    Par FrontLine dans le forum Langage
    Réponses: 8
    Dernier message: 09/06/2008, 21h09
  3. chemin d'accés relatif pour une photo dans un état
    Par SG2607 dans le forum VBA Access
    Réponses: 13
    Dernier message: 11/01/2008, 14h03
  4. Problème de chemin absolu et relatif
    Par nabolo dans le forum BIRT
    Réponses: 0
    Dernier message: 07/11/2007, 17h34
  5. Réponses: 1
    Dernier message: 28/09/2006, 13h09

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