Base De Données ACCESS

cs_Luana Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 29 septembre 2007 - 29 sept. 2007 à 13:25
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 29 sept. 2007 à 22:43
Bonjour,
je dois traiter une étude de cas à savoir la gestion d'une bibliothèque.
J'ai donc créee mes formulaires, mes tables (étudiant, prêt (entités: date de sortie, de retour, n°etud, n°doc, n°prêt), document ...), définit les relations, les contraintes d'intégrités...
Mais il y a un problème que je ne parviens pas à résoudre: logiquement un étudiant ne doit pouvoir emprunter qu'un seul document à la fois de même qu'un document ne peut être emprunté qu'une fois sauf si la date du nouvel emprunt est supèrieure à la date de l'emprunt précédent et je n'arrive pas à définir ces contraintes dans ma base.
Le formulaire accepte un enregistrement dans la table lorsque par ex pour un doc et un étudiant la date de retour est infèrieure à la date de sortie, plutôt illogique à mon avis...

En vous remerciant d'avance pour votre aide

Luana

15 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 sept. 2007 à 19:34
Salut,
certaibes règles de gestion ne peuvent être gérées que par code.
Pour le prêt, à toi de vérifier, lors de la saisie, que le "bon sens" est respecté.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
cs_Luana Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 29 septembre 2007
29 sept. 2007 à 20:18
Merci pour ta réponse mais je n'arrive pas à concevoir que de telles erreurs soient acceptées par la base. Il doit bien y avoir un moyen de définir ces contraintes...
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 sept. 2007 à 20:53
il faut juste revoir ta structure de la table pret.
Suggestion:
N°Pret (identifiant , unique)
Etudiant
Doc
Date_Pret
Rendu (Boolean : pae défait=False)
Date_Retour (au choix:String par defaut "", ou Date , Null au depart)


Lorsqu' un Doc est rendu,
-tu te pointe sur n°Pret
-tu met Rendu à true
-tu enregistres la date_Retour en veillant
à ce qu' elle soit supérirure  à Date_Pret


Pour annuler un retour
-tu te pointes sur n°Pret
-tu mets Rendu à false et date_Retour à Null





<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 sept. 2007 à 20:56
il ne faut pas chercher à ce que de telles erreurs soient accéptées par la base. C' est contraire à "l' éhique" de la programmation !

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0

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

Posez votre question
cs_Luana Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 29 septembre 2007
29 sept. 2007 à 21:02
D'accord et comment à partir de là faire que le doc ne puisse être réemprunter que lorsqu'il a été rendu c'est à dire lorsque il y a "true" dans le champ "rendu".
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 sept. 2007 à 21:08
tu vérifies si le doc en question ne se trouve pas
dans la liste des Docs qui n' ont pas encore été rendus.
Ou bien tu vérifies si le doc en question se trouve
dans la liste des Docs qui sont disponibles.
(ceux qui n' ont jamais été empruntés+ceux qui ont été rendus)

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
cs_Luana Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 29 septembre 2007
29 sept. 2007 à 21:13
Donc c'est à moi de vérifier... Imaginons que je commette une erreur et que je tape le titre d'un document qui a déjà été emprunter et qui n'a pas été rendu alors aucun message ne pourra m'avertir de cette erreur?
0
cs_Luana Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 29 septembre 2007
29 sept. 2007 à 21:14
N'est il pas possible^par exemple d'actualiser à chaque enregistrement une liste de documents empruntables?
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 sept. 2007 à 21:45
la liste de documents empruntables est obtenue à partir d' une
requete non correspondance faite sur :
Table_Doc liée à une requete qui retourne les docs non_rendus

Docs                Non_rendus
IdDoc     -----> IdDoc

la requete non correspondence recherche dans la table Dobs les documents qui se trouvent dans celle ci et ne se trouvent pas dans les non rendus.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 sept. 2007 à 21:47
pour avoir les docs non rendus il suffit de faire une selection sur la table Prets avec le critère Rendu=false

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
cs_Luana Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 29 septembre 2007
29 sept. 2007 à 22:16
Oui mais dans ce cas là c'est une requête et cela ne me sert pas dans ma saisie de données...


 
0
cs_Luana Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 29 septembre 2007
29 sept. 2007 à 22:19
Je voudrais définir des conditions qui stipulent par exemple qu'il est impossible d'emprunter un document déjà emprunté ou qu'il faut pour pouvoir effectivement l'emprunter que la date du nouvel emprunt soit supèrieure à la date de remise du doc par le précédent emprunt... Bref que je ne puisse pas ajouter dans ma table des enregistrements incohérents...
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 sept. 2007 à 22:22
bien sûr que c' est une requete qui ne sert qu' à vérifier !
Pour la saisie tu utilises ta table Prets.
Ce n' est que lorsque le doc est disponible que tu peux effectuer un Pret.Sinon tu l' interdit.
Tout celà est dans le but de respecter les règles de gestion.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
cs_Luana Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 29 septembre 2007
29 sept. 2007 à 22:35
Oui, enfin, je pensais définir un triggers mais je ne sais pas si c compatible.
Enfin, je te remercie pour tous ces renseigements...
 
Bonne soirée.
Luana
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 sept. 2007 à 22:43
Je ne sais pas pour les triggers, mais personnellement je prèfère une gestion controlée par code.Ainsi ton prog gardera la main,
et tu peux renseigner l' utilisateur et le redirriger.
 Bonne continuation et bonne fin de soirée.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
Rejoignez-nous