Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2007, 14h26   #1
Invité de passage
 
Inscription : août 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 19
Points : 1
Points : 1
Par défaut Gérer des disponibilités

Bonjour,

Mon Intitulé ne vous "cause" pas forcement, mais je n' ai pas trouvé comment formuler mon problème.

Voila je travaille dans une entreprise qui dispose d' un parc de pc portable de prêt,les reservations étaient jusque là répertorié dans un fichier excel.

Ne trouvant pas ce fichier très agréable visuellement et à l' utilisation , j' ai décidé de réaliser une petite application sous access.

Grand challenge parce que grand débutant.

La FAQ de ce site m' a tout appris cependant je bloque sur un point.

Pour faire cette application pour reserver des portables j' ai fait :

4 tables: -Portable
-reservation
-site
-utilisateur.

Crée une requete et un petit formulaire qui me permettent de renseigner mes tables des informations suivantes : date d' emprunt , date de retour , portable selectionné ,nom, prénom ,n° de tel , site ( lieu de l' entreprise).

Tout cela est fonctionnel et je suis assez content de moi par contre je ne sais pas comment gérer les disponibilités des portables.
Dans l' état actuel des choses, si je reserve un portable dans mon appli à une date donnée, je peux encore reserver ce même portable à la même date avec un autre utilisateur.
Je voudrais arriver à afficher seulement les portables disponibles par date ou qu' il y ai un message d' erreur si le portable est déja reservé pour une date.

Je ne sais pas si je me suis bien exprimé mais si quelque personne bien attentionné pouvait me mettre sur la voie.

D' avance merci
mat76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2007, 23h52   #2
Membre Expert
 
Inscription : mars 2006
Messages : 1 331
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 1 331
Points : 1 460
Points : 1 460
Bonsoir et Bienvenue,

Il manque une confirmation de retour par une case à cocher Oui/non.
Ce qui permet dans les requêtes de sélectionner ou d'éliminer selon besoin.
Ce qui est bien c'est d'avoir des dates. On peut de suite faire une requête genre :
Code :
1
2
3
4
SELECT tblPortables.date_demprunt, tblPortables.date_de_retour, 
tblPortables.portable_selectionné,DateDiff("d",Date(),[date_de_retour])
 AS DiffEmprunt, IIf([DiffEmprunt]<0,"Non dispo","Disponible") AS Etat
FROM tblPortables
Cordialement
__________________
Questions techniques par MP
Le peu que je sais, c'est à mon ignorance que je le dois.
...............................................................................Sacha Guitry
francishop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 08h16   #3
Invité de passage
 
Inscription : août 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 19
Points : 1
Points : 1
Bonjour et merci de votre réponse francishop.

Si j' ai bien compris , je dois rajouter dans une de mes tables un champ oui/non.
Je pense que le mettre dans la table portable est le plus approprié?

Par contre comment saisir manuellement un requete?

En effet je n' ai toujours fais qu' utiliser l' assistant pour en générer.

Puis- je éventuellement vous envoyer ma base par mail ( non pas pour travailler à ma place mon but premier étant de comprendre ) mais pour que vous m' indiquiez la marche à suivre.

Slts

EDIT:Voici ma base mit en ligne pour simplifier les choses

EDIT2:Je vais fouiller , Bon week-end prolongé
mat76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 08h25   #4
Membre Expert
 
Inscription : mars 2006
Messages : 1 331
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 1 331
Points : 1 460
Points : 1 460
Bonjour,

On ouvre la requête en mode création, y apparaît notre table. On fait glisser le champ désiré vers une colonne de la requête.
S'effectuera par la suite, si besoin, des tries sur colonne.(Peut-être -1 ou 0 sur notre colonne Oui/non.)

Cordialement.

Ps : Pendant 4 jours je suis aux abonnés absents. Dans la voiture Top Départ -45 mn Et--> Bonjour La Rochelle!
__________________
Questions techniques par MP
Le peu que je sais, c'est à mon ignorance que je le dois.
...............................................................................Sacha Guitry
francishop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 11h37   #5
Membre habitué
 
Inscription : avril 2003
Messages : 192
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 192
Points : 141
Points : 141
La structure de la base n'est pas vraiment conforme aux canons en vigueur!!

Un schéma plus conforme dans le fichier attaché.

Philippe
Philippe PONS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 15h32   #6
Invité de passage
 
Inscription : août 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 19
Points : 1
Points : 1
Merci Philippe,

Je me doutais bien que ma base était mal organisé.
J' en conclu donc que dans la base réservation il y a deux clés primaire :N°portable et n°utilisateur?
Mon champ numéro de réservation ne sert plus à rien donc?

En ce qui concerne la gestion des reservations, je n' ai toujours pas trouvé comment faire pour ne pas réserver le même portable à la même date.
mat76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 17h28   #7
Membre habitué
 
Inscription : avril 2003
Messages : 192
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 192
Points : 141
Points : 141
Oui, dans la TABLE (soyons précis!) Réservation, il y UNE clé primaire composite.
Une réservation c'est un couple (N° portable, N° utilisateur).

Une remarque cependant:
La clé primaire doit avoir des valeurs uniques. On ne peut donc pas avoir 2 lighne de réservation avec le couple (N° portable, N° utilisateur) de même valeur. Donc un même utilisateur ne pourra pas réserver 2 fois le même portable: c'est gênant!!
Pour résoudre ça: il faut mettre aussi la date de réservation(Date d'emprunt) dans la clé primaire composite!

Le champ [N° réservation] peut être utilisé pour enregistrer un numéro de réservation, celui qui sera communiqué à l'utilisateur par exemple. Son type sera donc texte, mais pas numéro auto!

Philippe
Philippe PONS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 18h09   #8
Invité de passage
 
Inscription : août 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 19
Points : 1
Points : 1
Citation:
Envoyé par Philippe PONS
Oui, dans la TABLE (soyons précis!) Réservation, il y UNE clé primaire composite.
Une réservation c'est un couple (N° portable, N° utilisateur).

Une remarque cependant:
La clé primaire doit avoir des valeurs uniques. On ne peut donc pas avoir 2 lighne de réservation avec le couple (N° portable, N° utilisateur) de même valeur. Donc un même utilisateur ne pourra pas réserver 2 fois le même portable: c'est gênant!!
Pour résoudre ça: il faut mettre aussi la date de réservation(Date d'emprunt) dans la clé primaire composite!

Le champ [N° réservation] peut être utilisé pour enregistrer un numéro de réservation, celui qui sera communiqué à l'utilisateur par exemple. Son type sera donc texte, mais pas numéro auto!

Philippe
Qu' entendez vous par clé primaire composite?

je suis désolé mais je n' ai pas encore assimilé tout le vocabulaire...

j' en déduis alors que N° portable, N° utilisateur sont donc tous 2 en numéro auto?
mat76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 18h25   #9
Membre habitué
 
Inscription : avril 2003
Messages : 192
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 192
Points : 141
Points : 141
Utilisateur.[N° Utilisateur] et Portable.[N° portable] sont en NuméroAuto, MAIS
Réservation.[N° Utilisateur] et Réservation.[N° portable] sont en numérique.

Une clé primaire composite, c'est une clé primaire composé de 2 ou plusieurs champs de la table.
Pour la déclarer pratiquement: dans la fenêtre conception de la table Réservation:
1- sélectionner les 2 champs N° Utilisateur et N° portable
2- cliquer sur l'icone clé primaire

Ca va aller?

Philippe
Philippe PONS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 18h40   #10
Invité de passage
 
Inscription : août 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 19
Points : 1
Points : 1
Oui et j' ai rajouté Date d'emprunt comme vous me l' avez conseillé.
Je suis entrain de plancher sur ma requete en ce moment même.
Et pour l' instant je tourne en rond. MAIS je ne désespère pas
mat76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 19h20   #11
Membre habitué
 
Inscription : avril 2003
Messages : 192
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 192
Points : 141
Points : 141
Alors pour t'aider une requête qui liste les portables qui sont prêtés:
Code :
1
2
3
4
5
 
SELECT Portable.[N° portable], Portable.Marque, Portable.Parkline, Max(Réservation.[Date d'emprunt]) AS [MaxDeDate d'emprunt], Réservation.[Date de retour]
FROM Portable INNER JOIN Réservation ON Portable.[N° portable] = Réservation.[N° portable]
GROUP BY Portable.[N° portable], Portable.Marque, Portable.Parkline, Réservation.[Date de retour]
HAVING (((Réservation.[Date de retour]) Is Null));
Philippe PONS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 19h23   #12
Invité de passage
 
Inscription : août 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 19
Points : 1
Points : 1
Je dois être fatigué parce que je n' arrive pas à reproduire ce que j' avais fais avec mon bazard initial dans mes tables ^^.

Question: vous êtes la deuxième personne qui me donne du code SQl, hors lorsque j' effectue mes requêtes cela est fait en mode graphique.. comment basculer en mode "code"?
mat76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 19h37   #13
Membre habitué
 
Inscription : avril 2003
Messages : 192
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 192
Points : 141
Points : 141
Je l'ai fait avec l'éditeur graphique(QBE), mais on ne peut copier que le code SQL.

Pour mettre le code sql dans le QBE:

1-Ouvrir le QBE
2- fermer la fenêtre de sélection des tables
3- cliquer sur l'icone SQL en haut à gauche
4- l'éditeur sql s'ouvre, y coller le code que je t'ai passé
5- revenir au QBE eb cliquant sur l'icone équerre verte
Philippe PONS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 19h45   #14
Invité de passage
 
Inscription : août 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 19
Points : 1
Points : 1
c' etait devant mes yeux .
Merci.

Je vais sans doute abuser de votre générosité mais depuis que j' ai réorganisé mes tables comme vous me l' avez conseillé, cela a dù troubler ma petite logique mais je n' arrive plus à faire mon formulaire de réservation....
Serait-ce abusé de vous demander comment vous, vous feriez?
mat76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h54.


 
 
 
 
Partenaires

Hébergement Web