Planifier des menus sur un cycle de quatre semaines avec Access

Claude Leloup

Reste à faire

- Titre : Planifier des menus sur un cycle de quatre semaines avec Access

- Auteur : Claude Leloup

- Parution : 13 mars 2018

- Mise à jour : 2 avril 2018

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2018 Claude Leloup. 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. Le cahier des charges

- II. Pour exprimer qu'un ingrédient est disponible

- III. Pour exprimer que tel plat relève de tel type et contient tels ingrédients

- IV. Pour déterminer qu'un plat est disponible durant tel mois

- IV-A. Une 1re requête pour déceler les ingrédients NON disponibles

- IV-B. Une 2e requête pour en déduire les plats NON disponibles

- IV-C. Et enfin la requête qui ramène les plats disponibles

- V. Un formulaire pour planifier le type (variable) de plat

- VI. Le formulaire fPrepaMenu

- VI-A. La structure

I - Le cahier des charges

On voudrait un formulaire avec des listes déroulantes qui permettent de composer des menus du lundi au vendredi pour un cycle de quatre semaines.

Le menu journalier comporte :

- une entrée
avec féculent, avec protéines ou une combinaison des deux ;

- le choix entre trois plats principaux
deux « poils/plumes » : bœuf, veau, porc, agneau, volaille, œufs…
un « poisson » ;

- un féculent ;

- un légume ;

- un fromage ou yaourt ;

- le choix entre deux desserts ;

- un yaourt ou un fruit ;

- un bar avec quatre salades.

Pour l'entrée et les plats « poils/plumes », l'utilisateur pourra définir pour chacun des vingt jours, la caractéristique des mets qui figureront dans les listes déroulantes.
Exemple, pour le mardi de la 2e semaine : une entrée avec protéines, le plat1 avec bœuf et le plat2 avec œufs.

Les listes déroulantes ne proposeront que les mets dont tous les ingrédients sont disponibles à cette période de l'année.
Le programme contrôlera pour chaque jour, l'absence de doublon dans les mets sélectionnés.

Cliquez sur l'image pour l'agrandir

II - Pour exprimer qu'un ingrédient est disponible

On convient que l'ingrédient est disponible en tout temps si la colonne Disponibilite est vide.

Les numéros des mois pendant lesquels l'ingrédient est disponible sont séparés par un espace.

III - Pour exprimer que tel plat relève de tel type et contient tels ingrédients

Cliquez sur l'image pour l'agrandir

Le formulaire fPlats (père) contient sfIngredients (fils).

Si la technique des formulaires pères/fils ne vous pas familière, voyez ce tutoriel : Comment classer les données dans des tables liées et construire un formulaire père/fils.

N.B. Les fonctionnalités de ce formulaire sont rudimentaires. Au besoin, on pourrait y ajouter :

- des notions de prix de revient ;

- une photo du plat ;

- la progression de la recette ;

- des filtres pour faciliter la consultation ;

- etc.

Voyez un exemple de réalisation dans ce tutoriel : Outils pour la gestion d'un restaurant.

IV - Pour déterminer qu'un plat est disponible durant tel mois

IV-A - Une 1re requête pour déceler les ingrédients NON disponibles

Cliquez sur l'image pour l'agrandir

IV-B - Une 2e requête pour en déduire les plats NON disponibles

IV-C - Et enfin la requête qui ramène les plats disponibles

V - Un formulaire pour planifier le type (variable) de plat

Dans le menu journalier, l'entrée et les deux plats « poils/plumes » relèvent de plusieurs types :
Entrée : « avec féculent », « avec protéines » ou « avec féculents et protéines » ;
Plat 1 et Plat 2 : « bœuf », « veau »…

Par contre, les autres items n'ont chacun qu'un seul type :
Plat 3 : toujours « Poisson » ; Féculents : toujours « Féculents »…

Le formulaire fParam permet de planifier le type pour chacun des 20 menus du cycle :

Cliquez sur l'image pour l'agrandir

VI - Le formulaire fPrepaMenu

VI-A - La structure

Cliquez sur l'image pour l'agrandir

Le formulaire fPrepaMenu est indépendant : il n'a pas de source.

À l'ouverture, la zone de texte txtDateDepart affichera soit ce lundi, soit le lundi le plus récent.

Les deux boutons permettent de reculer ou d'avancer d'un lundi.

Cinq zones de texte NumJouri (i = 1 à 5) contiennent la valeur 1 à 5, correspondant au rang du jour dans une semaine.

Les contrôles CNTRsfMenui (i= 1 à 5) sont des conteneurs de sous-formulaires qui seront chacun fils de fPrepaMenu.
Remarquez que les sous-formulaires ne sont pas encore désignés. Par contre les propriétés Champs fils et Champs pères sont déjà définies.