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 :

Comment relier des tables qui n'ont pas le même nom ?


Sujet :

Access

  1. #1
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut Comment relier des tables qui n'ont pas le même nom ?
    Salut,

    Voilà, j'ai un p'tit problème à vous soumettre.

    Je reprends une appli. vraiment mal foutu au niveau de la conception mais c'est ainsi .

    Bon, le problème, c'est que je dois faire pointer celle-ci sur une base ou l'autre en fonction du choix de l'utilisateur.

    Pointer sur la base toto pour la société toto, et la base titi pour la société titi.

    Le problème, c'est que le précédent développeur n'a pas utilisé les mêmes noms de tables, pour l'une ou l'autre des sociétés.

    Ainsi, dans la base toto, nous avons la table "_Journal_Prog_Ng" (log des facturations).

    Dans la base titi, cette table se nomme "_Journal_FSA" (log des facturations).

    Le problème, c'est que si je renomme tout simplement la table comme j'en avais l'intention au début, c'est que je vais vers des problèmes si celle-ci est utilisée ailleurs.

    Je souhaiterais donc savoir comment je peux utiliser la table "_journal_prog_ng" si je suis dans la base toto, ou dans l'autre cas ?

    J'ai un formulaire qui permet de relier celles-ci, jet je fais un RefreshLink. Peut-être y-a-t-il quelque chose à faire à ce niveau ?

    Merci par avance.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    je pense qu'il faute renommer la table liée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Base locale                                Base partagée 
    frontale (front-end)                       dorsale (back-end) 
    ------------------------                   -------------------------------------
    Table liée : LogFacuture ---pointe sur---> table : _Journal_Prog_Ng de base toto
    Table liée : LogFacuture ---pointe sur---> table : _Journal_FSA de base titi
    Dans ton cas tu lies la table _Journal_Prog_Ng ou _Journal_Prog_Ng de l'une ou l'autre des deux bases.
    La table liée aura le même nom que la table vers laquelle elle pointe.
    Tu renommes ce lien avec le nom qui est utilisé et reconnu dans ton application.

    Voila, je ne sais pas si c'est clair.
    La meilleure analogie me semble être le raccourci windows.
    On donne le nom qu'on veut au raccourci, mais il pointe toujours sur le même fichier.

    Bon courage

  3. #3
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Salut,

    Merci pour la réponse.

    Le problème, c'est que je ne vois pas comment faire pour relier la table soit sur l'un soit sur l'autre.

    En fait, quand il s'agit de la base titi, comment je dit à la base locale de pointer sur _Journal_FSA & quand c'est la base toto de pointer sur _Journal_Prog_Ng ?

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    voila comment le faire avec une fonction VBA
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function LierTable(strNomLocalTbl As String, _
             strNomDistantTbl As String, strNomDistantDB As String)
     
    On Error Resume Next
    DoCmd.DeleteObject acTable, strNomLocalTbl
    On Error GoTo 0
     
    DoCmd.TransferDatabase acLink, "Microsoft Access", strNomDistantDB, acTable, _
          strNomDistantTbl, strNomLocalTbl
     
    End Function
    Exemple d'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Remplacer C:\....\ par le chemin adéquat
     
    ' Cas 1
    LierTable "_Journal_Prog_Ng", "_Journal_Prog_Ng", "C:\....\toto.mdb"
    ' Cas 2
    LierTable "_Journal_Prog_Ng", "_Journal_FSA", "C:\....\titi.mdb"
    Dans le Cas 1, on lie dans la base en cours la table "_Journal_Prog_Ng" de la base toto.mdb
    Elle s'appellera "_Journal_Prog_Ng"

    Dans le Cas 2, on lie dans la base en cours la table "_Journal_FSA" de la base titi.mdb
    Elle s'appellera "_Journal_Prog_Ng"

    A+

Discussions similaires

  1. comparer des variables qui n'ont pas le même attribut
    Par stagolee dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/02/2008, 11h14
  2. Comment relier des tables sous PHPmyAdmin
    Par BigDavid dans le forum Débuter
    Réponses: 1
    Dernier message: 26/07/2006, 14h14
  3. Réponses: 4
    Dernier message: 08/06/2006, 13h18
  4. la liste des clients qui n'ont pas acheter aucun article ...
    Par TéBeSsI dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/02/2004, 14h57

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