Afficher la disponibilité du matériel de location dans une liste de choix

Denis Hulo

Objectif : afficher la disponibilité du matériel de location avant de le choisir dans une liste déroulante.

Niveau requis : débutant.

Commentez cet article : Commentez

- Titre : Afficher la disponibilité du matériel de location dans une liste de choix

- Auteur : Denis Hulo

- Parution : 12 octobre 2020

- Public visé :

- Licence : Copyright ® 2020 Denis Hulo. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Tables nécessaires

- II-A. T_Materiel

- II-B. T_Location

- II-C. T_Detail_Location

- III. Requêtes nécessaires

- III-A. R_Materiel_Loue

- III-B. R_Materiel

- IV. Liste de choix du matériel

- V. Conclusion

- VI. Base de données à télécharger

- VII. Remerciements

I - Introduction

Après avoir saisi dans un formulaire les dates de début et de fin de la location, on souhaiterait savoir quel matériel est disponible en magasin durant cette période.

Pour cela, on va l'indiquer dans la liste de choix du matériel. On réduira ainsi les risques d'erreurs de saisie.

liste_choix_materiel

II - Tables nécessaires

Commençons pas décrire la structure des tables principales.

II-A - T_Materiel

Table permettant d'enregistrer les informations concernant le matériel.

Nom du champ

Type de données

Description

IdMateriel

NuméroAuto

Identifiant du matériel

RefMateriel

Texte

Référence du matériel

DesignationMateriel

Texte

Désignation du matériel

PrixHT

Monétaire

Prix hors taxe;

...

...

...

II-B - T_Location

Table permettant d'enregistrer les informations relatives à la location, comme la période d'emprunt de l'article ou l'identifiant du client.

Nom du champ

Type de données

Description

IdLocation

NuméroAuto

Identifiant de la location

DateDemande

Date/Heure

Date de la demande du client

IdClient

Entier long

Identifiant du client

DateDebut

Date/Heure

Date de début de la location

DateFin

Date/Heure

Date de fin de la location

...

...

...

II-C - T_Detail_Location

Les données concernant le détail de la location, comme la liste des matériels empruntés et leur prix, sont enregistrées dans une table supplémentaire.

Nom du champ

Type de données

Description

IdDetailLocation

NuméroAuto

Identifiant du détail de la location

IdLocation

Entier long

Clé étrangère liée au champ IdLocation de la table T_Location

IdMateriel

Entier long

Clé étrangère liée au champ IdMateriel de la table T_Materiel

...

...

...

III - Requêtes nécessaires

III-A - R_Materiel_Loue

Commençons par décrire la requête permettant de sélectionner le matériel non disponible durant la période saisie dans le formulaire.

Elle est basée sur les tables T_Location et T_Detail_Location, reliées entre elles par les champs IdLocation. Elle sélectionne uniquement le matériel dont la période de location est comprise entre les dates de début et de fin saisies dans le formulaire.

r_materiel_loue

Paramètres de la requête permettant de filtrer les données sur une période donnée

Paramètre

Type

Description

Forms!F_Location!DateDebut

Date/Heure

Zone de texte située sur le formulaire F_Location liée au champ DateDebut de la table T_Location

Forms!F_Location!DateFin

Date/Heure

Zone de texte située sur le formulaire F_Location liée au champ DateFin de la table T_Location

...

...

...

Expressions conditionnelles

Expression

Colonne

Description

<=nz(Forms!F_Location!DateFin;#01-01-3000#)

DateDebut

nz renvoie une date très lointaine si le paramètre est à null. Cela revient donc à ne pas mettre de condition.

>=nz(Forms!F_Location!DateDebut;#01-01-1000#)

DateFin

nz renvoie une date très ancienne si le paramètre est à null. Cela revient donc à ne pas mettre de condition.

III-B - R_Materiel

Décrivons maintenant la requête permettant d'afficher la disponibilité du matériel durant la période choisie sur le formulaire.

Elle comporte une jointure gauche entre la table T_Materiel et la requête R_Materiel_Loue, et affiche une croix en face de chaque matériel loué.

r_materiel

Le champ calculé permettant d'afficher une croix en face de chaque matériel loué :

Loué: VraiFaux(EstNull([R_Materiel_Loue].[idMateriel]);"";"X")

Si la valeur de la colonne idMateriel, du côté de la table T_Materiel, n'est pas présente dans la requête R_Materiel_Loue, le champ idMateriel de cette requête est à null, et dans ce cas on affiche une chaîne vide, sinon, on affiche une croix.

IV - Liste de choix du matériel

La liste de choix cmbMateriel située dans le sous-formulaire affiche les disponibilités du matériel pour la période choisie sur le formulaire.

liste_choix_materiel

Propriétés principales de la liste déroulante :

Propriété

Valeur

Description

Source contrôle

IdMaterie

Champ de la table T_Detail_Location lié à la liste déroulante

Contenu

R_Materiel

Requête alimentant la listen

Nbre colonnes

4

Nombre de colonnes prise en compte dans la liste

Colonne liée

1

Indice de la colonne liée au champ source de la liste

Largeurs colonnes

0cm;3cm;10cm;2cm

Largeurs des colonnes, la 1re colonne étant masquée

Vaide si

[cmbMateriel].[Column](3)=""

La saisie est acceptée si le matériel choisi n'est pas marqué d'une croix.

Message si erreur

Matériel indisponible !

Si le matériel choisi est marqué d'une croix on affiche "Matériel indisponible !".

La 1re colonne étant masquée, on est contraint pour ne pas effacer l'information concernant la référence de l'article choisi, d'afficher tous les matériels dans la liste.

On prévoira également de rafraîchir cette liste de choix après la mise à jour des dates de début et de fin de la location, mais aussi sur activation d'un enregistrement :

Private Sub Form_Current()
Me.SF_Detail_Location.Form!cmbMateriel.Requery
End Sub

V - Conclusion

Ce type de liste est donc relativement facile à réaliser et offre en plus une indication importante à l'utilisateur. A noter que suivant le même principe on aurait pu aussi afficher la disponibilité de chambres d'hôtel ou de voitures de location.

VI - Base de données à télécharger

La base jointe est au format accdb, elle contient le formulaire permettant la saisie du matériel de location.

VII - Remerciements

Je tiens à remercier ... pour m’avoir conseillé pour la réalisation de cet article, ainsi que ... pour sa relecture.