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 :

Données externes et intégrité référentielle


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut Données externes et intégrité référentielle
    Bonjour,
    j'ai actuellement 2 bases de données Access qui contiennent des tables (Produits et Clients) identiques et des tables différentes. Le problème est bien évidemment que lorsque je dois faire une modification sur la table Produits ou Clients d'une de ces 2 bases, je dois aussi la faire sur l'autre

    J'ai donc mis ces 2 tables (communes aux 2 bases) dans une 3ieme base de donnée où seraient centralisées ces données puis je les ai liées via Fichier->Données externes->Lier les tables.

    Le problème est que je ne peux plus appliquer l'intégrité référentielle entre les tables externes et les tables des bases 1 et 2.
    Y'a-t-il un moyen pour y remedier ??

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Effectivement l'intégrité référentielle est grisée dans ce cas.
    Mais si les différentes saisies sont réalisées via des formulaires et que dans ces formulaires tu ne proposes que les clients disponibles dans la table Client (idem pour les produits) il n'y a pas de problème.

    Autre piste tu met en place un mécanisme qui à chaque lancement d'une des deux bases va récupérer la dernière version des tables Client et Produits et les importe (au lieu de les lier).
    Ex : dans chaque base tu met en place une nouvelle table avec deux champs : Nom table|N° version
    à chaque lancement tu compares le n° de version, s'il est différent => importation de la table
    Le contrôle sur le n° de version n'est intéressant à mettre que si les tables client et produit sont de taille importante et/ou qu'elles ne changent pas souvent. Autrement il est plus performant de copier systématiquement les tables sans se poser de question.
    Dans ce cas il te faudra également prévoir un mécanisme de mise à jour des tables.

    @+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Mais si les différentes saisies sont réalisées via des formulaires et que dans ces formulaires tu ne proposes que les clients disponibles dans la table Client (idem pour les produits) il n'y a pas de problème.
    Dans mon cas, aussi étrange que cela puisse paraitre, les références des produits sont parfois modifiées et c'est là que l'intégrité référentielle est crutiale...

    Sinon l'autre solution a l'air bien compliquée juste pour éviter un copier/coller... Tanpis...

    Merci pour ta réponse en tout cas Nohant
    Et si qqun voit une alternative...

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par bozolozo
    Dans mon cas, aussi étrange que cela puisse paraitre, les références des produits sont parfois modifiées et c'est là que l'intégrité référentielle est crutiale...
    ben non c'est le cas de 99% des appli
    à partir du moment où dans tes formulaires les menus déroulants (ou autres) sont basées sur les données présentes dans ta table produit tu respectes l'intégrité.

    Par en ailleurs en toute bonne logique on ne supprime jamais un produit (ou client), éventuellement on ne le propose plus au catalogue => sinon pb par ex pour les factures avec des produits n'existant plus ...

    ça dépend de ton niveau de connaissance sur Access, mais ma suggestion n'a rien de compliqué
    tout dépend aussi de qui met à jour la table et comment. Si c'est toi pas de pb. Si tu veux permettre aux utilisateurs de le faire ça risque d'être plus problématique (rien d'oubli dans une des deux bases ...)

    je dirai qu'il ne faut simplement réfléchir en terme de simplicité mais également de pérennité. Aujourd'hui tu sais qu'il faut à chaque fois mettre à jour la même table dans deux applis, mais demain ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Nohant, tout d'abord merci pr tes réponses.
    Mais je ne suis pas sûr de suivre.
    Dans la BDD 1, j'ai donc une table "Produits" qui contient un produit dont la référence est "BB-125a". Si je change cette référence en "BB-125b", je ne vois pas comment je peux automatiser ce changement dans ma BDD 2 :
    - en utilisant un mode "replace", comment savoir que c'est bien la référence BB-125a qui doit être modifiée par BB-125b et non pas une autre ?
    - en utilisant un mode "update", j'aurais alors 2 références distinctes (BB-125a et BB-125b), ce qui ne fait pas mon affaire non plus...

    Par contre, ta piste intéressante pour les nouveaux produits: ca serait bien de créer un bouton "Mettre à jour" qui permette de recherche dans la BDD 1 les produits et clients qui ne sont pas dans la BDD 2 et de les y ajouter directement.
    Si quelqu'un a une piste sur la manière de faire ca...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Je ferme ce post, je vais en ouvrir un nouveau...
    (mais parfois le bouton résolu n'apparait pas chez moi...)

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/01/2006, 10h27
  2. [données externes] liaison de tables
    Par tiptop dans le forum Access
    Réponses: 9
    Dernier message: 21/10/2005, 17h57
  3. Base de données externe free.fr
    Par hamtary dans le forum WinDev
    Réponses: 1
    Dernier message: 28/06/2005, 14h06
  4. Types de tables - Support des Intégrités référentielles
    Par danuz dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 11/12/2004, 15h43
  5. Base de données externe
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/04/2003, 14h09

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