Bonsoir,
Hélas non, désolé !
Bonjour,
Désolé de réouvrir ce fil de discussion mais j'ai une preoccupation :-)
Je suis en train d'essayer de comprendre le fonctionnement de la base de données pour la gestion d'un restaurant. Ceci dans le but d'y adjoindre le travail sur la creation de menu sur 7 jours que vous aviez fait.
Pour, en final d'avoir, un formulaire/état permettant d'afficher les menus quotidiens + leurs prix de revient et la marge bénéficiaire Et un autre formulaire qui permettra de calculer/afficher le benefice realize tous les jours (ou semaine) en fonction des menus vendus.
Mais dans l'application pour la gestion d'un restaurant, je me pose la question de savoir comment utiliser ces paramètres (cf tblparam):
TVABois Taux de la TVA sur la partie boissons non alcoolisées de la note de restaurant 0,07
TVAAlco Taux de la TVA sur la partie boissons alcoolisées de la note de restaurant 0,196
DelaiPrixActu Nbre de jours maximun écoulés pour considérer qu'un prix est d'actualité 50
Il me semble que ceux-ci n'ont pas été implémentés dans l'application, sauf erreur de ma part.
Pourriez-vous m'expliquer comment les utiliser et où les appliquer pour le calcul des prix de revient et de vente?
En attendant de vos nouvelles, je vous souhaite un bon weekend.
Bonjour,
C''est justement ce que j'aimerai tenter de faire. Etes vous alle plus loin ?
Pensez-vous qu'il soit possible de disposer de la base à jour ( celle en lien présente dans l'article présente un message d' erreur de compilation visual basic ) ?
où puis-je svp trouver comment mettre à jour le code contenu du document existant mis en ligne pour qu'il soit utilisble sur les sytème 64 bits afin de pouvoir suivre le tuto ?
pardonez moi si jamais j'avais mal procédé pour ces questions, je suis toute nouvelle.
par avance merci de votre retour.
Bonjour m2020 et bienvenue chez nous,
Merci pour l'intérêt porté à cette discussion.
Ici : https://arkham46.developpez.com/arti...ice/vba64bits/où puis-je svp trouver comment mettre à jour le code contenu du document existant mis en ligne pour qu'il soit utilisble sur les sytème 64 bits afin de pouvoir suivre le tuto ?
Bonjour à tous,
Je suis chef gérant d'un restaurant scolaire et je souhaite mettre en place un outil pour les fiches techniques ,votre modele correspondrait en parti a mon idée .
Vu que je ne commercialise pas je n'ai pas besoin des champs prix de vente et de calculs il me faut uniquement le pris de revient.
En fait ma question est la suivante peut on modifier votre formulaire existant en enlevant certaines catégorie et en rajoutant certaines.
Merci d'avance
Bonjour et bienvenue matdougy,
Merci pour l'intérêt porté à ce tutoriel.
Bien sûr que tu peux modifier selon tes besoins !En fait ma question est la suivante peut on modifier votre formulaire existant en enlevant certaines catégorie et en rajoutant certaines.
Bonjour
J'ai avancé gentiment j'en suis au j'ai fini mes tables pour les fiches techniques mais j'ai une question en fait je veux pouvoir creer et rechercher une recette comment faut t il que je procède? Et comment faire correspondre mes fiches techniques avec mon futur plan alimentaire ?
merci d'avance
Caduc, passez au billet N° 31.
Bonjour Macgyver44,
Voici une proposition.
• Dans tblAchats, j’ai ajouté une colonne « DateCrea » avec Now() comme valeur par défaut.
• À l’ouverture du formulaire :
Now(), c’est l’instant exemple : 22/08/13 04:49:00
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'Mémoriser l'instant d'ouverture Me.Tag = Replace(CDbl(Now()), ",", ".")
CDbl(Now()) donne : 41508,2006944444
et Replace(CDbl(Now()), ",", ".") : 41508.2006944444
Pour ne pas être embêté avec le format des dates (une plaie !), on travaille avec la forme numérique (partie entière = Nbre de jours depuis le 30/12/1899 ; partie décimale = fraction de la journée depuis 0 heure).
• À la fermeture du formulaire :
Cela revient à exécuter la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Form_Close() Dim sSQL As String sSQL = "UPDATE tblIngredients INNER JOIN tblAchats ON tblIngredients.IngredientPK = tblAchats.IngredientFK " sSQL = sSQL & "SET tblIngredients.Prix = [PrixAchat], tblIngredients.DateDernAchat = [DateAchat] " sSQL = sSQL & "WHERE CDbl([DateCrea])>" & Me.Tag & " AND tblAchats.DateAchat>[DateDernAchat];" DoCmd.SetWarnings False DoCmd.RunSQL (sSQL) DoCmd.SetWarnings True End Sub
La db mise à jour est ici.
Bonjour Claude,
Cela me paraît excellent. Je testerai la base tout-à-l'heure car je dois m'absenter. Mais je ne doute pas que cela fonctionne.
Juste pour info et pour répondre à ton message d'hier (même si ce n'est plus utile aujourd'hui), j'ai corrigé la requête qui ne donnait pas satisfaction.
Il faut remplacer l'ensemble de la variable strAchats par le code suivant :
Cela peut éventuellement servir une prochaine fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 strAchats = "SELECT tblAchats.IngredientFK, tblAchats.PrixAchat, tblAchats.DateAchat " _ & "FROM tblAchats,(SELECT tblAchats.IngredientFK, " _ & "MAX(tblAchats.DateAchat) As DernDate FROM tblAchats GROUP BY tblAchats.IngredientFK) AS DatesRecentes " _ & "WHERE tblAchats.IngredientFK = DatesRecentes.IngredientFK And tblAchats.DateAchat = DatesRecentes.DernDate "
Bonjour Claude,
J'ai 2 petites remarques à formuler suite à ta dernière proposition :
- la mise à jour à la fermeture du formulaire F_Achats ne tient pas compte des dates non remplies dans la table tblIngredients (même si au fil du temps, la colonne des dates sera forcément remplie, il faut bien amorcer la pompe).
- si une erreur d'encodage a été commise (dans le cas où l'utilisateur aurait fait une faute de frappe ou autre...) dans une ligne d'achat précédemment saisie, celle-ci n'est pas non plus mise à jour puisqu'il faut que la date de création soit supérieure à la date d'entrée dans le formulaire pour qu'il y ait maj.
Je propose de remplace la dernière ligne de la variable sSQL par le code suivant :
En fait, je ne tiens plus compte de la date de création.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sSQL = sSQL & "WHERE tblAchats.DateAchat>[DateDernAchat] OR tblIngredients.DateDernAchat Is Null;"
Qu'en penses-tu ?
Caduc, passez au billet N° 31.
Bonjour Macgyver44,
D’abord , je n’avais pas assez regardé ce billet
sans doute à cause du « n’est plus utile ».
Ce que tu proposes comme SQL, c’est précisément ce que je ne parviens pas à construire moi-même et pour quoi j‘espérais le passage du virtuose : il te suffit d'une requête alors qu'il m'en fallait deux.
---------
Ne suffit-il pas d’affecter « Date() » comme valeur par défaut à DateDernAchat ?- la mise à jour à la fermeture du formulaire F_Achats ne tient pas compte des dates non remplies dans la table tblIngredients (même si au fil du temps, la colonne des dates sera forcément remplie, il faut bien amorcer la pompe).
J’y colle « 03/08/2013 » dans nos exemples de test pour rattraper la sauce.
-------
Passons en revue les endroits névralgiques en cas de modification :- si une erreur d'encodage a été commise (dans le cas où l'utilisateur aurait fait une faute de frappe ou autre...) dans une ligne d'achat précédemment saisie, celle-ci n'est pas non plus mise à jour puisqu'il faut que la date de création soit supérieure à la date d'entrée dans le formulaire pour qu'il y ait maj.
• Fournisseur, Référence et Quantité : pas de conséquence pour le prix dans tblIngredients ;
• Date et Prix HTVA : il faut traiter comme si c’était un nouvel enregistrement, je propose ceci comme code :
• Modification de l’ingrédient : c’est plus délicat, il faut traiter comme un nouveau (Me.txtDateCrea = Now()), mais en plus il faudrait détricoter l’ancienne MàJ (si cela vaut encore la peine – inutile si MàJ postérieure pour cet ingrédient) et ça, c’est une autre paire de manches, car il faudra retrouver le prix qui avait été écrasé par erreur ! Idem d’ailleurs en cas de suppression d’un ancien enregistrement. Sans doute pour ces cas (à mon avis pas nécessairement rares), devrions-nous nous contenter d’un message d’avertissement invitant l’utilisateur à rectifier lui-même aux forceps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub txtDateAchat_AfterUpdate() Me.txtDateAchat.DefaultValue = "#" & Format(txtDateAchat, "mm/dd/yy") & "#" If Me.NewRecord Then Exit Sub Me.txtDateCrea = Now() End Sub Private Sub txtPrixAchat_AfterUpdate() If Me.NewRecord Then Exit Sub Me.txtDateCrea = Now() End Sub
J’attends ton avis avant d’apporter les modifications dans la base.
Claude,
Tes solutions me paraissent bien adaptées. Comme tu l'as compris, mon interrogation portait sur la modification du prix et de la date d'achat après coup.
Pour ce qui est de l'ingrédient, je pense qu'il ne faut pas autoriser la modification d'un ingrédient existant dans l'encodage des achats. En revanche, on peut prévoir la création d'un nouvel ingrédient sans aucune dépendance avec un ingrédient existant.
Partager