relations entre tables

Discussions et dépannage concernant Access (Toutes versions).

Modérateur : Modérateurs

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

relations entre tables

Message par Leehan » 22 oct. 2005, 11:49:42

bonjour,

j essaie de faire une BDD appliquée à l archéologie.
Je n ai recu q'un simple vernis quant au fonctionnement des BDD en général et d'Access en particulier.
JE me tourne vers vous car je requiers votre aide :
Dans la bdd dont l adresse figure en dessous, je voudrais que la table "description log" soit aussi liée à la table "tranchée" (par champ nb log?). C a d que l'on puisse "choisir" la table à ouvrir à partir de la table "tranchée" : "structure" ou "description log". Il faudrait que la manip soit reversible, que l'on puisse remonter facilement à la table "tranchée" à partir de "structure" ou "description log". Sachant qu'il faut d'abord remplir la table tranchée à lors de la saisie des enregistrements, mon souhait est il réalisable ?

je reformule en esperant etre le plus clair possible : J aimerai accéder aux tables "structure" et "description log" directement à partir de la table "tranchée". Faisable ?
Merci de votre attention :)

BASE_DIAG

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 23 oct. 2005, 06:05:36

slt,
Avant de dire quelle relation il faut faire et comment accéder aux tables, tu pourrais préciser quelques petites choses, svp
Voici ce que j'ai compris :
il y a des "tranchées" (numéro tranchée, longueur, largeur, prof min, prof max,[résutat, nb log, nb sac])
séparées en "Structures" (numéro struct, n° tranchée, long struct, largeur struct, diamètre, prof struct, [intepretation, matériel], datation, num dessin, photo)
dans ses structures on récupère du "matériel" (numéro mat, num structure, [ceram, métal, TCA, monnaie, torchis])
ce qui est en marron me pose les questions suivantes :
tranchée : que mets tu dans résultat, nb log et nb sac
idem pour structures avec champ matériel et interprétation et pour matériel

et enfin on a description log et j'avoue que j'ai dû mal à comprendre à quoi cela correspond - qu'est donc un log ?
><>

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 23 oct. 2005, 10:11:48

bien...

dans une tranchée, il peut y avoir 0 ou n structures. Dans une structure, il peut y avoir 0 ou n sac (materiel).
D'un autre coté, une tranchée a 1 ou n logs. C'est cette derniere donnée que je voudrais à lier a la table tranchée au même titre que la table structure.

tranchée : résultat = "positif" ou "négatif" ; nb de log = "1" ou "n" ; nb sac = "0" ou "n".
structure : interpretation = une liste de choix (mur, four,...) ; materiel = cas a cocher.
materiel = case a cocher

si tu telecharges la BASE_DIAG, tu peux te rendre compte plus precisemment, plus clairement de tou cela :)

un Log (ou colonne stratigraphique en francais) est simplement une description des couches de terre du terrain ds lequel on creusé.

J Espere que j ai clarifié les choses :)

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 23 oct. 2005, 21:07:24

slt,
j'avais déjà téléchargé(mais pas regardé les listes de choix) et oui tu as bien clarifié
donc
table tranchée reliée à table structure par N°tranchée c'est OK
table tranchée reliée à table descript log par n° tranchée également
dans la table description log :
- ne pas mettre nb log sinon ca n'a plus de sens
- n° log et id me semble correspondre à la même chose donc virer id et mettre n°log en clé primaire
table matériel : n° sac et id me paraisse également correspondre à la même chose, virer id et garder n°sac en clé primaire
table structure : évite d'utiliser les mêmes nom de champ que table tranchée : changer longueur par longueurS (par exemple), idem pour largeur.
table tranchée : Résultat - change la longeur de ton champ 7 caractères

et enfin, pour gérer tout ça deux beaux formulaires

1 formulaire (utilise l'assistant) avec la table tranchée et la table structure
1 formulaire avec la table tranchée et la table description log

si tu veux un formulaire pour gérer les 3 tables tranchée, structure et matériel, il faudra le faire en manuel l'assistant ne gère pas plus de 2 tables - si tu veux de l'aide...

><>

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 24 oct. 2005, 21:29:32

ok merci :)
je regarde de plus près toout ca asap :)

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 28 oct. 2005, 15:27:30

Apres avoir lu tes commentaires et retravailler la base, voici le résultat ICI.
Probleme relevé pr le moment à partir des formulaires :
Je ne comprends pas pourquoi on ne retrouve pas ds la table [description colonne stratigraphique] le n° de tranchée deja saisi ds [tranchée] alors qu'elles sont liées pr le champ n° de tranchée :| (c clair ca ? :P)
Idem ds le formulaire [tranchée pr structure] et [structure], le n° de tranchée ne se repete pas : il faut le resaisir. Ce n est pas normal me semble t il non plus :s
Cela m oblige a resaisir la meme info +sieurs fois...ce qui n est pas vraiment la philosophie du modèle relationnel :P

Alors, ou le bas blesse t il ? :)
Merci

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 29 oct. 2005, 12:17:59

slt,

tu viens de découvrir la différence entre des formulaires attachés et des sous formulaires.
un form attaché ne sert qu'à synchoniser deux formulaires (donc access filtre le second formulaire par rapport au premier). Si on l'utilise pour faire de la saisie, il devient nécessaire de taper l'élément qui sert de lien.
Donc en principe on l'utilise juste pour consultation
Dans ton cas il vaut mieux utiliser des sous formulaires.
je t'ai envoyé un exemple sur ton mail de ce que tu peux faire (tu n'as qu'à cliquer sur Tranchée 1 - les autres sont les sous formulaires.
principe de construction :
1 formulaire colonne avec table tranchée
1 formulaire tabulaire pour les autres tables
modification du formulaire tranchée :
ajout d'une zone d'onglet dans le détail
sélectionner et couper les champs déjà en place et les coller dans la 1ère page d'onglet (clic sur le nom de l'onglet pour le sélectionner)
avec le bouton droit souris (à côté du dernier onglet) ajouter autant d'onglet que nécessaire
réduire la taille de la fenêtre pour visualiser à la fois le formulaire en mode création et la fenêtre base de données où tu as créer les formulaires tabulaires
transporter (glisser avec la souris) le formulaire 2 dans le 2ème onglet...

les sous formulaires sont liées par les champs père et fils (à voir dans les propriétés)
j'ai dû bidoullier sur l'onglet matériel puisque le fils et lié à un père en sous formulaire et non pas en formulaire principal et ajout d'un macro pour synchronisation de structure et matos...

ha ! j'ai aussi modifier des clés

><>
Modifié en dernier par nouv le 09 nov. 2005, 19:09:01, modifié 1 fois.

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 01 nov. 2005, 13:54:27

merci bcp, je regarde ca asap :)

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 02 nov. 2005, 12:36:54

wow ! ben dis donc beau travail. Sur la forme comme sur le fond :razz:

mais...(y a tjs un mais :P) les numeros de structures, de tranchée et de sac doivent etre uniques pour éviter au max les erreurs d'enregistrements et surtout faciliter les tris en tout genre lors de l étude des données et la rédaction des rapports.
D'ou 2 questions : pourquoi avoir changé les clefs primaires ? et pourquoi ne pas appliquer l integrité differentielle ds la base que tu m as envoyée ?

Ensuite, je t avoue que le mot macro déclenche chez moi une panique irraisonée. Faudrait y aller molo avec ca :P

Sinon, l ergonomie, la convivialité sont carrément bonnes. Je me pose cependant la question de savoir comment afficher simplement un tri sur plusieurs tranchées par exemple : repasser sous forme de tableau, ...?
mais ca pour l instant me semble moins crucial qu'une base correspondant à nos besoins. :)

merci bcp pr ton aide. J apprends bcp :)

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 02 nov. 2005, 20:30:02

slt,
tu dis :
les numeros de structures, de tranchée et de sac doivent etre uniques

pour les tranchées pas de problème, pour les structures et les sacs (et comme je connais pas grand chose à ta manière de travailler), je m'étais dis que pour la tranchée 1, tu pouvais avoir 3 structures (1,2 et 3) et pour la tranchée 2, tu pouvais avoir 3 structures (1, 2 et 3 également) et donc qu'on pouvais avoir les mêmes numéro de structures sur des tranchées différentes - pour les numéros de sac même démarche.
mais si ce n'est pas le cas, il suffit de virer les champs n°structure et n°sac (il ne servent pas aux relations) et garder id structure et id matériel (quitte à les renommer)

pour l'intégrité référentielle personnellement je ne l'utilise que pour faire des mises à jour en cascade pour simplifier les suppressions mais tu peux la mettre ça ne pose aucun problème

et enfin la macro n'est utilisée dans ce cas là que pour synchroniser le formulaire matériel avec le formulaire structure. Elle est obligatoire si l'on veut mettre les 4 tables dans le même formulaire (et j'ai même pas eu besoin de la taper, je me suis contentée de faire un formulaire avec l'assistant et les 3 tables "tranchée, structure et matériel), access m'a créer la macro je l'ai recopier et fais mon formulaire)

et enfin concernant les tris
alors là tu as plusieurs solutions, tu peux faire les tris directement dans la table ou tu peux créer des requêtes, les données sont sous forme de tableaux automatiquement

n'hesite pas pour d'autres questions..

à+
><>

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 04 nov. 2005, 13:06:18

j integre tes reponses ds ma petite tete puis ds la base et je reviendrai poster asap.
merci pr tes reponses :)
A+

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 07 nov. 2005, 11:59:01

re :)

J'ai tenté de retravailler la base suivant les conditions enoncées plus haut.
(Resumé :
les numeros de structures, de tranchée et de sac uniques ;
une tranchée a "1" ou "n" logs ;
une tranchée a "0" ou "n" structures
une structure a "0" ou "n" sacs de materiel)

Apres avoir effectué les modif que tu as decrites, une correction de la macro doit etre vraisemblablement faite car le programme me demande sans arret l "id structure". De plus, impossible d avoir plusieurs sacs pr une structure...

J espere etre clair et que ce ne sera pas trop laborieux :)

merci

Faut il la base que j ai retravaillée ou mabase.mdb suffit ?

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 08 nov. 2005, 19:20:46

slt,
la bonne nouvelle c'est que ce n'est pas dans la macro qu'il faut faire la modification mais dans le formulaire
la table stucture et matériel ont un champ commun qui sert de relation, pour ma part j'avais mis id structure,
donc les onglets structure et matériel du formulaire sont toujours liés par ce champ qui n'existe plus.

il faut donc modifier le formulaire :
sélectionne le formulaire tranchée 1
clic sur Modifier
clic sur l'onglet 4 (matériel)
clic dans le sous formulaire puis sur l'outil Propriété
dans l'onglet "toute" tu as deux lignes à modifier :
champ fils : correspond au nom de champ de liaison entre crochet
ex dans mon cas : [id structure]
champ père : correspond au nom de champ de liaison du formulaire précédent
ex dans mon cas : [structure 3].Form![id structure]
tu as juste à remplacer id structure par le nom de ton champ de liaison
cela devrait résoudre ton problème


><>

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 08 nov. 2005, 21:02:34

je suis au regret de t annoncer que maintenant le programme me demande le "n° de structure" des que je l ouvre...

Image

si je clique sur ok alors sac n° = 0 ds le "compteur" que tu as crée (les lettres en rouge)
si je clique sur Annuler alors sac n° = #err dans...

Qu' en dis tu ?

Leehan
Membre récent
Membre récent
Messages : 19
Enregistré le : 02 juin 2005, 23:00:00

Message par Leehan » 08 nov. 2005, 21:36:11

je me demandais s il ne serait pas mieux de recréer des formulaires de zero à partir des tables modifiées ? si jamais ca bug encore :)

Répondre

Retourner vers « Access »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités