Base De Données ACCESS

Signaler
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
29 septembre 2007
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
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

Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
29 septembre 2007

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...
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
29 septembre 2007

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".
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
29 septembre 2007

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?
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
29 septembre 2007

N'est il pas possible^par exemple d'actualiser à chaque enregistrement une liste de documents empruntables?
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
29 septembre 2007

Oui mais dans ce cas là c'est une requête et cela ne me sert pas dans ma saisie de données...


 
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
29 septembre 2007

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...
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
29 septembre 2007

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
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />