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 :

[DEB] Probleme de liaison entre tables


Sujet :

Access

  1. #1
    Membre du Club Avatar de ip203
    Inscrit en
    Mars 2002
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 132
    Points : 59
    Points
    59
    Par défaut [DEB] Probleme de liaison entre tables
    Bonjour,

    Je travaille sur un formulaire de saisie. Ce formulaire vu le nombre de données à rentrer (560 données) est composé de 10 sous formulaire afin d'éviter d'atteindre le nombre de controle max par formulaire. Voilà l'organisation:
    le formulaire principal est lié a une table 1 (200 champs) (Clé primaire sur un champs appelé NumRef et qui est en AutoNum). 7 sous formulaires sont liées à une table 2 (200 champs) et 3 sous formulaires liés à une table 3 (160 champs).
    Le sdonnées pour une saisie sont sur une seule ligne mais répartie entre les 3 tables. Chaque ligne sera différenciée par le NumRef (Autonum).
    Ce que je ne sais pas faire c'est lier ces tables par le numéro généré automatiquement dans la table1 (NumRef).
    Quels champs et type de champs dois-je insérer dans les deux autres tables et surtout comment recopier (?) la valeur de NumRef dans les autres tables pour ainsi liée les données ?

    D'avance merci de votre patience et de votre science !!!

  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
    Bigre, c'est assez gros ton truc, tu es sur que tu n'as pas un pb de conception du genre des éléments qui pourrait être répartie dans des tables (les dates d'un calendrier par exemples).

    Bon pour répondre à ta question j'essayerai deux trucs : un qui change la structure de ta base et l'autre un astuce de programmation.

    Je suis sur que le 1er marche mais j'ai pas testé le second.

    1) Avec modif de la base
    - Ajouter un table qui ne contient QUE la cef primaire autoincrémentée
    - Definir les clefs de tes tables comme des 'Entier Long'
    - Crée une raltion entre la table Clef et les autres tables
    - Faire un formulaire qui affiche la clef et des sous-fourmulaires liés par la clef primaire pour chacune de tes 3 tables.

    2) Par prog :
    - Creer une fonction qui récupère le num de la première table, un bout de code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function LireCLefPrimaire() as long
       LireClefPrimaire=forms("NomMomForm")![ClefTable1]
    end function
    - Assigner LireClefPrimaire comme valeur par défaut de [ClefTable2] et [ClefTable3] qui doivent être définis comme des entiers longs.

    A+

  3. #3
    Membre du Club Avatar de ip203
    Inscrit en
    Mars 2002
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Merci pour ta contribution...
    Je vais effectivement essayer ces astuces.
    Ce qui est drôle c'est que tu n'es pas le seul à me dire que ma conception est bizarre mais malheureusement je ne peux pas faire autrement car je travaille sur des questionnaires épidémiologiques et cliniques énormes (des centaines de questions !!!) et chaque question doit avoir un champs, pour qu'on puisse après y faire des stats.
    En tout cas merci je vais essayer cela demain et je te tiens au courant

    Bonne soirée

  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
    Tu pourrais adopter la conception suivante mais cela pourrait te poser des pbs pour les stats et l'écran de saisie.

    Table Repondant :
    -----------------
    IdRepondant
    NomRepondant
    TousAutresRenseignementUtilsesSurLeRepondant

    Table Questionnaire :
    --------------------
    IdQuestionnaire
    NomQuestionnaire
    TousAutresRenseignementUtilsesSurLeQuestionnaire

    Table Question :
    ----------------
    IdQuestionnaire
    IdQuestion
    TexteQuestion

    Table Reponse :
    ---------------
    IdQuestionnaire
    IdQuestion
    IdRepondant
    TexteReponse

    Comme cela tu diminue sérieusement le nombre de champs et tu accrois la réutilisabilité de ton appli. En faite tu peux traiter TOUTES tes études avec le même prog. Il suffit de changer questionnaire et question.

    De plus avec un tout petit peu de code il est facile de générer des fichiers plats ou un enr correspond à toutes tes réponses mises bout à bout.

    A+

  5. #5
    Membre du Club Avatar de ip203
    Inscrit en
    Mars 2002
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Alors il faut que je t'explique:

    J'ai 7 questionnaires. Les plus gros font dans les 150 questions plus les options qui rajoute énormément de champs. Non la question n'est malheureusement pas là, c'est vraiment la liaison des tables qui pose un gros soucis, car comment faire une liaison entre table avec un numéro qui n'existe pas encore ???

    Et visiblement je suis un peu seul dans ce cas... Snif !!!

    En tout cas merci pour ton aide

Discussions similaires

  1. Probleme de liaison entre deux tables d'une base de donnees
    Par blondelle dans le forum C++Builder
    Réponses: 32
    Dernier message: 12/04/2007, 18h09
  2. [Access 2003]Problème de liaison entre table
    Par steeves5 dans le forum Access
    Réponses: 3
    Dernier message: 12/06/2006, 09h40
  3. Liaison entre tables
    Par Thierry69800 dans le forum Access
    Réponses: 1
    Dernier message: 20/11/2005, 23h19
  4. Probleme de liaison entre une requete et un objet...
    Par actibluelevrai dans le forum Access
    Réponses: 4
    Dernier message: 20/11/2005, 20h26
  5. Problèmes de liaisons entre tables ...
    Par Mangun dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2005, 11h35

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