|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
Bonjour à tous,
Dans l’optique de transposer une « base de donnée » actuellement sous Excel à une BDD sous Access, je me pose quelques questions et je suis devant certains points que je ne peux résoudre tout seul. Information sur la base de données : Cette base permet de regrouper, trier et stocker toutes les données concernant les demandes d’analyses chimiques de mon service. Une demande d’analyse comporte un numéro unique (qui s’incrémente à chaque nouvelle demande), chaque demande peut avoir de 1 à X échantillons différents. Chaque échantillon d’une même demande subit le même type d’analyse (même éléments), mais d’une demande à l’autre les éléments ne sont pas forcément les même. Chaque échantillon est identifié par un repère donné par le demandeur et par repaire de mon laboratoire, ce dernier s’incrémente à chaque nouvel échantillon (C-0001, C-0002, etc…). Exemple : -------------------------------------------------------------------------- N° de demande 1 Nb d’échantillon 3 Repère initial C-0001 Repère final C-0003 Eléments à analyser C, S, Mn, Al, Si -------------------------------------------------------------------------- N° de demande 2 Nb d’échantillon 1 Repère initial C-0004 Repère final C-0004 Eléments à analyser C, S, O, N -------------------------------------------------------------------------- Actuellement j’ai déjà commencé à créer la BDD. J’ai pour cela créé plusieurs tables. La première « t_demandes_listing », qui regroupe les informations concernant la demande : - N° de demande, - Demandeur - Nb d’échantillons - Eléments à analyser (case à cocher) La deuxième « t_echantillons_listing », qui regroupe les informations concernant les échantillons de la demande : - Repère demandeur - Repère laboratoire - Nuance - Code - Coulée Et une troisième « t_echantillons_analyse », qui regroupe les résultats des analyses pour les échantillons. Afin de mener à bien ce projet j'ai quelques questions et j'espère sincèrement que vous aurez des réponses pour moi Questions diverses (et variées...): 1/. Est-il possible lorsque je créé une nouvelle demande avec la première table d'incrémenter dans la deuxième table les nouveaux échantillons (une ligne par échantillon avec le bon repère)? Si cela est possible comment peut-on faire? 2/. Etant donné que pour une demande donnée les éléments sont les même pour tous les échantillons est-il possible de créer automatiquement (avec des cases à cocher) le même listing d'éléments pour chaque échantillons de la demande? Si oui comment? Pour le moment c'est tout pour les questions, je suis désolé d'avoir été aussi long, mais ce projet est assez important pour moi et je n'ai plus fait de base avec Access ou Excel depuis un bail et je suis perdu... En espérant que cela inspire quelqu'un, merci! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Mandrake57,
Avant d'attaquer le process (tes "questions diverses et variées"), il faut bétonner la base de données (liste des tables, relations). Plusieurs remarques : t_demandes_listing (demandes) : - N° de demande (numéro auto - clé primaire) - Demandeur - Nb d’échantillons ==> le nombre d'échantillon n'a pas besoin d'être stocké dans la table : nous avons cette information, en temps réel, via la table t_echantillons_listing. Il s'agit, si j'ai bien compris, d'un nombre à saisir pour générer automatiquement le nombre de ligne dans la table t_echantillons_listing. - Eléments à analyser (case à cocher) ==> si tu as beaucoup d'éléments fluctuants susceptibles d'être analysés, la gestion par "case à cocher" ne convient pas (à chaque nouvel élément tu devra ajouter un champ dans cette table). Il serait, peut-être, plus judicieux de créer une table des éléments (avec un identifiant) que tu lierais avec les demandes. t_echantillons_listing : - Repère laboratoire ("C" + numéro auto - clé primaire) - N° demande (pour liaison avec t_demandes_listing) - Repère demandeur - Nuance - Code - Coulée t_echantillons_analyse : - N° analyse (numéro auto - clé primaire) - Repère laboratoire (pour liaison avec t_echantillons_listing) - etc... Si j'ai bien compris.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
Effectivement je n'ai pas assez détaillé mes tables...
Elles sont effectivement construites sous la forme que tu présentes. Je suis ouvert à une autre solution que des cases à cocher pour la sélection des éléments à afficher en fonction de ceux qui doivent être analysés. Mais par contre je ne sais pas comment faire... Merci pour ton aide!
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Donc, il faut, en plus :
t_Elements (liste des éléments à analyser) : - Id_element (n° auto - clé primaire) - Code (C, S, Mn, etc...) - libellé (nom en clair de C, S, Mn, Mn...) t_Liaison_Demande_Element (liaison entre les demandes et les éléments concernés) : - Id_liaison (n° auto - clé primaire) - Id_demande - Id_element ==> index unique Id_demande/Id_element (un seul couple possible) ; ==> t_demandes_listing 1--->N t_Liaison_Demande_Element, via Id_demande ; ==> t_Elements 1--->N t_Liaison_Demande_Element, via Id_element. > Observation : cette table de liaison est nécessaire car 1 demande peut avoir plusieurs éléments à analyser et 1 éléments susceptible d'être analysé peut l'être dans plusieurs demandes. Concernant les tables déjà évoquées : t_demandes_listing (demandes) : - Id_demande (numéro auto - clé primaire) - Demandeur - etc... t_echantillons_listing : - Id_Repere_laboratoire ("C" + numéro auto - clé primaire) - Id_demande (pour liaison avec t_demandes_listing) - Repère demandeur - Nuance - Code - Coulée ==> t_demandes_listing 1--->N t_echantillons_listing, via Id_demande. t_echantillons_analyse : - N° analyse (numéro auto - clé primaire) - Id_Repere_laboratoire (pour liaison avec t_echantillons_listing) - etc... ==> t_echantillons_listing 1--->N t_echantillons_analyse, via Id_Repere_laboratoire. Attention, cette étape est primordiale. L'analyse présentée est-elle juste ? A ta disposition pour d'éventuelles précisions.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
La table t_listing_elements existe déjà, je vais tester avec la table de liaisons.
Je te tiens au courant dans la soirée (au cas où tu serais encore là!). Merci |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
Peux-tu me rappeler les paramètres pour obtenir les liaisons 1->N comme tu me les présentes?
En fait pour les deux premières liaisons (avec t_liaison_demandes_elements) j'obtiens des liaisons 1->1, alors que les autres c'est bon... Une fois les relations créées, as-tu une idée de comment continuer (je suis tellement rouillé qu'il me faut vraiment une aide pour cette partie, après je pense que pour le reste de la base je commencerais à m'en sortir un peu mieux...). Désolé pour toutes ces questions |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Impossible !
As-tu lié avec les bons champs ? Au besoin, fais une image écran de tes relations.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
Voila le screen
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Vérifies l'index unique Id_demande/Id_element de t_Liaison_Demande_Element ?
Il faut les deux champs sous le même nom d'index.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
Précise moi comment faire un index unique, je dois effectivement calé, j'ai pas du faire tout correctement...
|
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Supprimes la relation, d'abord, et supprime l'index, ensuite. Ceci dans un premier temps : nous recréerons l'index plus tard plus tard.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
J'ai supprimé les deux relations de la table liaison et j'ai supprmié les deux index N°Demande et IDElement
|
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
OK.
Si tu recrées la relation entre t_demandes_listing et t_Liaison_Demande_Element en faisant glisser Id_demande de t_demandes_listing vers t_Liaison_Demande_Element, tu devrais voir "un à plusieurs".
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
non toujours 1 à 1...
Edit; C'est bon il y avait une erreur dans la table.... |
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Supprimes la table de liaison de la fenêtre Relations, sort en sauvegardant, ré-ouvres Relations, ajoutes la table liaison, refais la liaison.
OK ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
Oui c'est bon.
Que vois-tu à présent pour progresser par rapport aux questions du premier post? |
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Pour finir de bétonner la base, il faut créer l'index unique sur les deux champs :
- table liaison en mode création ; - bouton index ; - donner un nom d'index ; - indiqier le nom du 1er champ ; - sur la ligne suivante, sans remplir le nom de l'index, indiquer le second champ. ==> sauvegarder. OK ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#18 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
Euh j'ai pas suivit, j'ai jamais fait cette manip (ou alors j'utilise pas les mêmes termes).
Peux-tu préciser les champs que tu veux que j'indique (afin que je comprenne bien l'intérêt)? |
|
|
00
|
|
|
#19 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Rappel :
Citation:
2ème champ : Id_element. OK ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#20 |
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 103 ![]() |
J'ai cliquer sur le bouton index (un éclair) dans le nom j'ai mis N°Demande/IDElement, dans le champ j'ai mis N°Demande et dans le champ juste en-dessous j'ai mis IDElement et j'ai mis oui pour unique et j'ai fermer la boîte de dialogue et sauvegarder.
Est-ce cela que tu voulais que j'effectue, car après je vois pas où il apparaît et à quoi cela sert. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com