(.Net) Jointure tables ACCESS: stratégie

senpiet Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 10 mars 2005 - 11 août 2004 à 22:33
cs_chris81 Messages postés 589 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 avril 2008 - 12 août 2004 à 22:45
Bonsoir à tous,

Voilà, ma question serait plutot une question de stratégie. J'ai une DB access du genre "dossiers médicaux". Dedans, imaginons deux tables: "dossiers" et "interventions".

Un dossier médical correspond à un patient avec toutes ses données perso. J'ai fait l'application .Net (VB) qui permet de mettre à jours ces dossiers (INSERT DELETE UPDATE).

Maintenant, j'aimerais pour un dossier encodé (qui existe donc déjà dans la DB), ajouter 0 -> n "interventions". Seulement, tout devrait se passer dans le même FORM (avec un dossier en cours d'édition). Je pensais mettre la partie d'encodage des interventions dans un nouvel onglet d'un TabControl (enfin soit...). [Donc, un onglet avec un formulaire de données perso et un onglet avec un formulaire + buttons de navigation pour ajouter, supprimer et mettre à j. des interventions]

Seulement, je m'y perds un peu avec DataSet, DataAdapter, etc. Quelqu'un pourrait-il m'aider à structurer la démarche ? Combien dois-je en créer... comment les faire interagir entre eux, qui doit correspondre à quoi :-S

Je ne demande pas de code mais plutot quelques mots de stratégie. Pour le code, j'apprendrai... c'est encore ce qu'il y a de plus cool.

Merci d'avance.

6 réponses

senpiet Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 10 mars 2005
11 août 2004 à 22:36
Ah oui,
j'ai oublié de dire:

Il existe des boutons de navigation entre les dossiers de la DB (hors des onglets). Ces boutons doivent toujours rester opérationnels (enfin, devrait mais ce n'est pas une obligation stricte). Bref, si en cours d'édition d'une intervention, je décide de passer au dossier suivant, ça doit être possible. Dans ce cas, l'intervention n'est pas sauvegardée...

merci encore
0
cs_mestari Messages postés 29 Date d'inscription samedi 19 avril 2003 Statut Membre Dernière intervention 12 mars 2006
12 août 2004 à 04:09
Bon je n'ai pas très bien compris le problème mais vu que je suis moi méme en train de réaliser la méme application que toi je voulais d'exposer mon aprroche
-tu as une relation 1 à *(ou n) donc fais un formulaire qui représente les infos sur le patient (selectionné auparavant d'une manière ou d'une autre) avec un bouton qui permet de voir les interventions relatives au patient dans un autre formulaire. tu es donc debarasser des risques de changement de patient en cours d'édition (ah oui un conseil: eviter de donner trop de libérté à l'utilisateur qui ne connait pas le fonctionnement interne de ton appli)
-ensuite je te signale que l'utilisateur ne devrait pas logiquement avoir la possiblité de modifier les anciennes interventions ni de les supprimer et ce pour garantir un suivi fidèle de l'évolution de l'état du patient
-enfin pr la prog stricte je te conseille de te passer de dataset et autres fioritures et de travailler en mode connecté SI ET SEULEMENT SI TU N'AS QUE TRES PEU D'UTILISATEUR c plus sur et plus simple avec des commandes qui te retirent ce que tu veux de la BD pour peu que tu connaisses SQl (ce que je te conseille vivement si compte faire des truc plus élaborés)
Bon voila quelques reflesions et bonne chance
Pour plus d'aide précise un peu plus ta question
et n'oublies jamais que le tout est de COLLER AU BESOIN DE L'UTILISATEUR alors demandes lui.
A+
et bonne chance
0
cs_chris81 Messages postés 589 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 avril 2008 2
12 août 2004 à 09:11
salut,
voila mes conseils, j'ai dvlpe quelques appli en .net et je te conseille de garder un dataset (bcp plus rapide et pas d'occupation du reseau pour rien), en plus tu as le dataset.select(WHERE....) qui aide bien, tu peux ajouter retirer modifier en appelent une seule fois la Bdd.

de plus utilise un connection transactionnel (par securite)

mestari a raison essaie de rapprocher le plus de la demande de l'utilisateur

Ta jointure entre table doit se faire par l'ID du patient

tu peux faire une DataRelation c'est a dire une relation entre 2 dataset comme si tu travailler en mode connecté.

pour plus d'info n'hesite pas a demander
a+

http://www.tarnweb.com
http://www.correzeweb.com
0
senpiet Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 10 mars 2005
12 août 2004 à 19:25
ah oui, ok merci. Je commence à voir un peu.

Question utilisateurs, je m'attends à en avoir un bon nombre. Du coup, je vais sans doute opter pour garder mes datasets. J'organiserai un brainstorming avec les utilisateurs pour en retirer tous leurs desiderattas.

Finalement, je vois bien la stratégie d'un autre formulaire pour les interventions. Seulement, cela ne risque-t-il pas de créer une multitudes de fenêtres qui s'ouvrent dans le cas où d'autres jointures avec d'autres tables apparaissent. Par exemple, des tables de facturation, de visites médicales, etc ?

Cette solution me plait cependant. Je suppose que je peux "masquer" l'existence de plusieurs formulaires en cachant le premier (avec les infos générales du dossier) lorsque j'ouvre le deuxième (avec les interventions)?

Maintenant, une dernière question... supposons que j'aie le formulaire du dossier avec un "type" de dossier à choisir. Seulement, ces différents types se trouvent dans une table séparée. Je fais quoi ? Je crée un nouveau dataset pour aller chercher ces types et créer un droplist avec le résultat de ce nouveau dataset ou bien existe-t-il une solution magique (parce qu'à priori je ne devrai pas modifier cette liste... juste en extraire les éléments. un Dataset est sans doute alors trop lourd ?)

QUID ?

PS: sorry pour la longueur de la question... :-S
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mestari Messages postés 29 Date d'inscription samedi 19 avril 2003 Statut Membre Dernière intervention 12 mars 2006
12 août 2004 à 22:43
Pour le combo il est bcp plus performant de mettre un datareader qui est rempli par une commande mais ce n'est pas pour toi car tu travailles en mode deconnecté
dans ce pas besoin de créer un nouveau dataset ajoute juste une table à l'ancien qui contiendra les diff types de dossier que tu recupère dans le combo pour le code je ne sais pas car je ne travaille rarement avec les datasets et leurs foutues lignes et colonnes.
Pour la multitude de fenetres je ne vois pas l'incovénient maintenant tu peux créer un "ensemble de controles" de facon dynamique pour résumer toutes les interventions ou factures ou... dans un mm formulaire mais c un peu plus compliqué à programmer.
enfin je pense que tu as surtout un prob d'imagination sur la présentation graphique (comme moi !) donc insipires toi d'autres applis.
Et quand tu finiras tout ca fais nous profiter de qques bouts de code sur le site.
0
cs_chris81 Messages postés 589 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 avril 2008 2
12 août 2004 à 22:45
tu peux creer en dataset ce qui n'est pas genant car une fois rempli tu n'a plus besoin de te connecter tu le gazrde en memoire.
apres tu peux remplir ton combobox avec dataset

http://www.tarnweb.com
http://www.correzeweb.com
0
Rejoignez-nous