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 :

Appliquer l'intégritée référentielle avec une table attachée (ou Liée)


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Appliquer l'intégritée référentielle avec une table attachée (ou Liée)
    Bonjour,

    Voilà j'avais une BDD existante qui gère des fiches de tests....

    Mon but est de créer une BDD de rapport de Tests, pour cela j'ai créé une nouvelle BDD (Rapport) en ayant pris soin de lier toutes les Tables de la BDD existante (Fiches Tests).

    J'ai effectué une liaison entre une table1 interne de la nouvelle BDD (Rapport) et une table2 (clé primaire) la BDD attachée (Tests).
    Le hic vient lorsque je veux appliquer une intégrité référentielle entre elles, c'est impossible ou alors j'effectue une mauvaise manip.

    Si quelqu'un a des billes ? Merci d’avance.

    karim

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Il est impossible de crée une relation d'intégrité entre 2 tables qui en sont pas dans la même BD.

    Je sais c'est rageant !

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    N'y aurait-il pas une astuce, structurelle ou autre pour contourner le problème ?

    A+

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

    Il va falloir que tu gères toi-même le contrôle par du code VBA, par exemple contrôler l'existence d'un client dans une table avant de créer la facture, ce que faisait naturellement l'intégrité référentielle.

    Philippe

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Ce à quoi je pensais :

    Je pars d’une BD1 qui peut varier à tout moment et qui contient des fiches test génériques.

    Celle-ci est liée (attachée) à ma nouvelle base.

    Dans le cadre du processus de test, la première action est de sélectionner les « fiches tests » à jouer (version des fiches évolutives).

    Puis-je créer un simple formulaire qui permet de sélectionner d’après BD1 à l’instant « t » les fiches tests à jouer et de les copier dans ma BD2 dans la table « Fiche Rapports » qui seront joués ?
    1 fiche test = 1enregistrement d’une certaine table + 1 enregistrement d’une table complémentaire.
    1 fiche Rapport = 2 enregistrements de 2 tables différentes de BD1.
    Voir figure sur piècece attachée.

    Cordialement
    karim
    Fichiers attachés Fichiers attachés

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Oui tu peux faire cela mais cela n'est pas de l'intégrité référentielle. Si un test est supprimé dans BD1 il restera visible dans BD2 puisque tu en a fait une copie, de même s'il est modifié.

    Est-ce bien cela que tu veux ?

    A+

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Oui car le test aura été fait avec la fiche test avant suppression.
    merci pour votre conseil.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    La solution la plus simpliste serait de faire un formulaire lié à ta BD2 avec une liste déroulante lié à ta BD1 pour choisir ton test comme cela la copie se fera sans code ou presque.

    A+

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    C’est aussi à ce que je pensais, je précise je suis débutant sous Access.
    Je voudrais vous soumettre mes problèmes, je sais le lieu de la discussion ne s'y prête peut-être pas, mais vous connaissez déjà l’historique.

    Voila hier j'ai créé un formulaire:

    • « Liste déroulante » qui ne montre qu'un seul champ de ma BD1 (le numéro du test à jouer). Permet de sélectionner les enregistrements à insérer.
    • Un bouton 1 pour « Ajouter un test » à « la liste non déroulante ».
    • « Une Liste Non Déroulante » qui permet à l’utilisateur de visualiser le cumul des tests qu’il ajoutera à la BD2.
    • Un bouton 2 pour valider l’insertion des enregistrements contenus dans la liste non déroulante. Cette action doit permettre de copier (insérer) tous les champs concernés des enregistrements sélectionnés de BD1 vers la BD2.
    • Option un bouton 3 pour annuler un enregistrement dans le cas d'une erreur (le choix pourra se faire sur la liste non déroulante puis click sur bouton et suppression de l’enregistrement dans BD2.).


    BD1 : comporte 6 champs
    BD2 : comporte 6 champs + champs additionnels qui serviront pour d’autres contrôle s plus tard, pour l’instant je les maintient vide.
    Descriptif de l’utilisateur :

    Sélectionne dans la liste déroulante le test X à joué.
    Click sur bouton Ajouter, ajout du test X dans la liste non déroulante.
    Sélectionne dans la liste déroulante le test Y à joué.
    Click sur bouton Ajouter, ajout du test Y dans la liste non déroulante.
    ….
    ….
    Utilisateur check Liste Non déroulante pour checker si tous ces test sont présents.
    Si oui Click sur Bouton Valider, tous les champs des fiches test X, Y, … sont insérés dans la BD2.

    Maintenant je bloque sur plusieurs points :
    1. Liste déroulante OK
    2. Bouton 1 « Ajouter »: je cherche une expression qui me permet de copier un des 6 champs dans la liste Non déroulante. (le champ qui identifie l’enregistrement).
    3. Bouton 2 « Insérer »: je cherche une expression qui me permette de prendre tous les items présents dans la liste non déroulante et de les insérer dans BD2.
    4. Dois-je prédéfinir les champs de BD2, afin de pouvoir accueillir les enreg. De BD1 ?

    Merci de votre aide.

    karim

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

Discussions similaires

  1. Problème avec une table attachée
    Par ARFY56 dans le forum Modélisation
    Réponses: 2
    Dernier message: 17/12/2008, 18h23
  2. Réponses: 2
    Dernier message: 07/08/2007, 10h51
  3. Créer une table attachée avec SQL Server 2000.
    Par cadabricadabra dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 21/06/2007, 17h49
  4. Réponses: 4
    Dernier message: 09/05/2006, 11h29
  5. Probleme avec une table vide
    Par king dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/03/2004, 15h24

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