Apprendre à gérer une cave à vin avec Access
Un tutoriel de Claude Leloup
Le 2017-09-24 17:49:24, par ClaudeLELOUP, Rédacteur/Modérateur
Bonjour,
http://claudeleloup.developpez.com/t...ss/cave-a-vin/
Cette application de gestion de cave à vin n'a pas la prétention de rivaliser avec les logiciels existants, même gratuits, que vous pouvez facilement trouver sur la toile.
Voyez plutôt ceci comme un prétexte pour montrer combien il est facile d'utiliser Access pour réaliser des outils bien pratiques : en l'occurrence, une gestion de stock.
En effet, il s'agit de décrire différents articles (les bouteilles) que l'on entre en stock (les achats), que l'on range à un endroit précis (les casiers de la cave), que l'on sort ensuite (les consommations… avec modération) et périodiquement dresser l'inventaire (ce qui reste, valorisé ici au dernier prix d'achat).
C’est aussi l'occasion de montrer quelques réalisations pratiques qui répondent à des questions posées sur le forum :
- construire un formulaire de recherche multicritère (ici, basé sur une requête enregistrée qui est non modifiable) ;
- afficher une image différente pour chaque enregistrement et logeant ces images en dehors de la base ;
- montrer une astuce pour contourner l'absence de mise en forme conditionnelle pour un cadre d'options ;
- décrire une méthode pour cloner un enregistrement et ses dépendants éventuels dans les tables liées à la sienne ;
- construire un état basé sur une requête d'analyse croisée ;
- imprimer un état sur plusieurs colonnes, quand cela permet d'économiser du papier.
Vos commentaires sont les bienvenus.
http://claudeleloup.developpez.com/t...ss/cave-a-vin/
Cette application de gestion de cave à vin n'a pas la prétention de rivaliser avec les logiciels existants, même gratuits, que vous pouvez facilement trouver sur la toile.
Voyez plutôt ceci comme un prétexte pour montrer combien il est facile d'utiliser Access pour réaliser des outils bien pratiques : en l'occurrence, une gestion de stock.
En effet, il s'agit de décrire différents articles (les bouteilles) que l'on entre en stock (les achats), que l'on range à un endroit précis (les casiers de la cave), que l'on sort ensuite (les consommations… avec modération) et périodiquement dresser l'inventaire (ce qui reste, valorisé ici au dernier prix d'achat).
C’est aussi l'occasion de montrer quelques réalisations pratiques qui répondent à des questions posées sur le forum :
- construire un formulaire de recherche multicritère (ici, basé sur une requête enregistrée qui est non modifiable) ;
- afficher une image différente pour chaque enregistrement et logeant ces images en dehors de la base ;
- montrer une astuce pour contourner l'absence de mise en forme conditionnelle pour un cadre d'options ;
- décrire une méthode pour cloner un enregistrement et ses dépendants éventuels dans les tables liées à la sienne ;
- construire un état basé sur une requête d'analyse croisée ;
- imprimer un état sur plusieurs colonnes, quand cela permet d'économiser du papier.
Vos commentaires sont les bienvenus.
-
tee_grandboisExpert éminent séniorBonsoir Claude,
tu nous a encore servi un grand millésime avec ce tuto
le 24/09/2017 à 23:49 -
ClaudeLELOUPRédacteur/ModérateurÀ ta santé ! Guy.le 25/09/2017 à 6:34
-
kabamelMembre régulierSalut, en voilà le coup du génit.
Merci Claudele 25/09/2017 à 18:58 -
UserRédacteur/ModérateurMerci Claude !
A consulter sans modérationle 30/09/2017 à 21:49 -
FabikazCandidat au ClubAvec vos tutos, la coupe n'est jamais pleine ! Fantastique.
Merci
Fabienle 25/10/2017 à 23:44 -
ClaudeLELOUPRédacteur/Modérateurle 26/10/2017 à 5:22
-
ClaudeLELOUPRédacteur/ModérateurBonjour hand92,
En fait, c’est la source de l’état eRepartition qui fait problème : c’est une requête croisée et elle coince lorsqu’il n’y a pas de données pour une de ses colonnes.
On va un peu ruser pour faire en sorte qu’on trouve une quantité (éventuellement zéro) pour chaque catégorie.
J’ai ajouté cette requête rRepartition0Code SQL : 1
2SELECT "-" AS Region, tCategories.Categorie, 0 AS NbreBouteilles FROM tCategories;
Et j’ai créé l’union rRepartitionComplet = rRepartition + rRepartitionO
Soit :
Code SQL : 1
2
3
4SELECT tRegions.Region, tCategories.Categorie, Sum(stock([tBouteillesPK])) AS NbreBouteilles FROM tRegions INNER JOIN (tAppellations INNER JOIN (tCategories INNER JOIN (rInventaire INNER JOIN tBouteilles ON rInventaire.tBouteillesFK = tBouteilles.tBouteillesPK) ON tCategories.tCategoriesPK = tBouteilles.tCategoriesFK) ON tAppellations.tAppellationsPK = tBouteilles.tAppellationsFK) ON tRegions.tRegionsPK = tAppellations.tRegionsFK GROUP BY tRegions.Region, tCategories.Categorie UNION SELECT "-" AS Region, tCategories.Categorie, 0 AS NbreBouteilles FROM tCategories;
Cette fois, on y est :
La db modifiée est ici : http://claudeleloup.developpez.com/%2699/CaveAvin.ziple 28/01/2021 à 17:59 -
hand92Futur Membre du ClubBonjour
J'ai cherché à remplacer une application de gestion d'une cave à vin développer par MicroApplication et cette BDD répond au besoin. Je ne suis pas un pro d'Access mais avec un peu de persévérance et curiosité j'ai commencé à adapter cette application. Toutefois je me heurte à une erreur sur l'état par région quand par exemple il n'y a aucune bouteille en stock de vin doux naturel une erreur d'exécution 3070 s'affiche. Je ne sais pas si ce problème a déjà été soulevé et suis preneur de toute information. merci d'avancele 27/01/2021 à 11:49 -
ClaudeLELOUPRédacteur/ModérateurBonjour hand92,
Bienvenue puisque c’est ton premier message sur dvp.
Pas sûr que je puisse t’aider ainsi sans ausculter ta base de données.
Peux-tu poster le zip de ta base en version compatible Access2000 ?le 27/01/2021 à 14:04 -
hand92Futur Membre du ClubMerci pour la réponse, je joins ma BDD '(caveavinperso)mais je me suis dépanné en supprimant les entêtes dans l'état par contre la base de données du forum (caveavin) plante car il n'y a plus de vin doux naturel
je l'envoi aussile 27/01/2021 à 16:38