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

Requêtes et SQL. Discussion :

Afficher lien entre les tables


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chargée de projet
    Inscrit en
    Septembre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargée de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut Afficher lien entre les tables
    Bonjour,
    On m'a importée une base de données sous Access 2010.
    Je cherche à faire ce que je pensais être quelque chose de simple, c'est à dire voir les liens entre mes tables.
    Tout simplement comme sur l'image par exemple. Nom : relation.png
Affichages : 10093
Taille : 140,5 Ko

    Au lieu de ça, je vois toutes mes tables les unes après les autres, sans relations/liens apparents.

    Il y a sûrement une manière simple, je débute totalement sous access.

    Merci pour votre aide !

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Bonjour,

    Les liens ne sont ni nécessaires ni obligatoires. Certains pensent qu'il faut en mettre le plus possible et les définir précisément pour garantir l'intégrité des données indépendamment du logiciels, d'autres au contraire pensent que c'est au logiciel qui remplit les données de faire en sorte qu'elles soient cohérentes (il ne peut de toute façon pas y échapper). Il semble qu'on soit ici dans le 2e cas !

  3. #3
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Ci joint en prime un bout de code qui parcourt toutes les relations d'une base :

    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
    '*********** relations d'une table - 12.8 : export txt - 14.4b ajout index
    'source http://warin.developpez.com/access/dao/?page=partie_4#L4.4.4.2
    Public Sub ChampsDansRelation()
    Dim odb As DAO.Database, oRlt As DAO.Relation, oFld As DAO.Field, oTbl As DAO.TableDef, oind As DAO.Index
    Dim FSO As New Scripting.FileSystemObject, FileText As Scripting.TextStream
    Dim T As String, c As String, i As Integer, OK As Boolean, n As Integer
     
    '100 Set wrk =
    102 Set odb = DBEngine.Workspaces(0).OpenDatabase(Client_path & Planet_db, False, False, "MS Access;PWD=" & DB_pwd)
        'table & champ à chercher - à modifier aussi ligne 144 !!
    104 n = 0: T = "": c = "code"
    105 If T = "" Then Set FileText = FSO.OpenTextFile(Client_path & "R_" & Planet_cli & ".txt", ForWriting, True)
     
        'Parcourt les relations
    106 For Each oRlt In odb.Relations
    108   If oRlt.table = T Or T = "" Then
    110     For Each oFld In oRlt.Fields
              'MsgBox "Table=" & oRlt.table & " " & oRlt.Name & "] lié à [" & oFld.ForeignName & "]"
    111       If T = "" Then
    112         If Left(oRlt.Name, 1) = "{" Then
    '113           oRlt.Name = oFld.Name & "_" & oFld.ForeignName
    114           odb.Relations.refresh
                End If
    115         n = n + 1
    116         FileText.WriteLine Left(oRlt.Name & "                                ", 38) & "= " & Left(oRlt.table & "." & oFld.Name & "            ", 20) & "> " & oRlt.ForeignTable & "." & oFld.ForeignName
              Else
    117         MsgBox Left(oRlt.Name & "                                 ", 38) & "= " & Left(oRlt.table & "." & oFld.Name & "            ", 20) & "> " & oRlt.ForeignTable & "." & oFld.ForeignName
              End If
            Next oFld
          End If
        Next oRlt
    118 If T = "" Then FileText.WriteLine n & " relations.": n = 0
    ...

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Chargée de projet
    Inscrit en
    Septembre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargée de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Merci pour votre retour. Je ne suis pas certaine d'avoir compris.
    Je sais que mes tables ont des liens (puisque quand je regarde via Filemaker que je connais mieux je les vois apparaître). Vous voulez dire qu'Access fait le choix de ne pas les afficher...?

    Comment puis-je utiliser ce code ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faudrait que tu expliques comment tu as importé tes tables, est-ce d'un autre SGBD ?

    Si c'est le cas c'est à toi de refaire les liaisons, car je ne penses pas qu'elles soient importées.

    Philippe

  6. #6
    Modérateur

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

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

    Vous voulez dire qu'Access fait le choix de ne pas les afficher...?
    La permiere remarque de nico84 indiquait que le programmeur de l'appli aurait pu decider de ne pas mettre de relations entre les tables mais de faire ces relations par code ou requetes.

    Dans Access pour voir si une table a bien des relations, tu peux dans la fenetre des relations cliquez droit sur la table puis dans le menu choisir "Afficher les relations directes".

    Tu peux aussi demander d'afficher toutes les relations d'un coup mais ca fait generalement un affreu plat de spagethis a l'ecran.

    A+

Discussions similaires

  1. lien entre les tables d'une base de données Mysql
    Par chifa dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/10/2007, 12h42
  2. lien entre les tables
    Par Nacera dans le forum Oracle
    Réponses: 2
    Dernier message: 23/07/2007, 15h11
  3. Liens entre les tables
    Par zevince dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 25/10/2005, 15h25
  4. lien entre les tables
    Par cedric12 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 03/10/2005, 23h39
  5. lien entre les table de paradox
    Par salim_intic1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/05/2004, 16h00

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