Bonjour Claude et Jeanyves31,
Pour info, je suis... donc je suis......et à ceux qui liraient encore...
Bonjour Claude et Jeanyves31,
Pour info, je suis... donc je suis......et à ceux qui liraient encore...
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Salut Richard,
Heureux de te savoir suivant !
Ta patience est légendaire.
Bon week-end.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonsoir Claude & Richard
Ok Claude ...je cherchais bein compliqué alors que c'etait la devant mes yeux!Non, si tu laisses le filtre « Fournisseur » vide, ce critère n’intervient pas dans le choix.
--------------------
Y'a pas de malfConsulterFactures
Désolé, j’ai posté un mauvais fichier.
----------------
Oui tu as raison! d'ailleur nous avions eu une petite discution à ce sujet au départ de ce projet...Inventaire : au sujet de la TVA
Ce n’est pas bien compliqué d’ajouter cette notion au modèle :
- un champ supplémentaire dans la table tArticles ([TypeTauxTVA]
- une table avec le taux, actuellement en vigueur, pour chaque type.
Mais, que ce soit facile n’est pas un argument suffisant pour le faire !
Pourquoi as-tu besoin de t’encombrer de cette notion qui n’intervient pas dans ton prix de revient puisque tu récupères cette TVA payée à ton fournisseur.
@+
Jean Yves
Bonjour,
Attention nouvelle table ---> réactualiser les liens entre frontale et dorsale.
Présentation
Fonctionnalités
A l’ouverture du formulaire, aucune donnée n’est affichée.
De deux choses l’une : on souhaite afficher un inventaire existant ou créer un nouvel inventaire.
1 Consulter ou modifier un inventaire (prix et/ou quantité)
Une zone de liste modifiable permet le choix de la date d’inventaire à afficher.
Les postes de l’inventaire sont répartis entre les quatre catégories d’article.
Les articles avec un prix et une quantité sont colorés de vert (format conditionnel).
L’anomalie : Prix 0 et Quantité <>0 est mise en évidence (format conditionnel de [zdtinvPrix]).
La valorisation de l’inventaire s’actualise à chaque modification d’un prix ou d’une quantité.
Le bouton avec l’icône d’imprimante, déclenche l’état eInventaire qui reprendra tous les articles avec un prix et une quantité différents de zéro.
2 Créer un nouvel inventaire
On saisit la nouvelle date dans la zone de liste modifiable et on clique sur le bouton « Commencer un inventaire »
Par défaut le prix est celui de la facture la plus récente ou zéro selon que l’historique des factures contienne ou non cet article.
Commence alors un processus semblable à celui décrit au point précédent.
La programmation
Le formulaire se compose de quatre sous-formulaires identiques : sfInventaireBoulangerie, sfInventairePatisserie, sfInventaireMagasin et sfInventaireEntretien.
La source correspond à une requête comme celle-ci :
La mise à jour des [zdtinvQuantite] et [zdtinvPrix] provoque l’actualisation des différents totaux.
Le bouton « Commencer un inventaire »
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub zdtinvPrix_AfterUpdate() Me.Refresh 'pour rafraîchir zdtTotal Me.Parent!zdtValeurInventaire.Requery End Sub Private Sub zdtinvQuantite_AfterUpdate() zdtinvPrix_AfterUpdate End Sub
Le code associé au clic
Pour créer la structure, on exécute l’équivalent de la requête ajout dont voici la représentation graphique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub btCreerStructure_Click() Dim sql As String 'Vérifier qu'une date est encodée If IsNull(Me.zdtDate) Then MsgBox "Vous devez d'abord choisir une date", vbCritical Exit Sub End If 'D'abord vérifier qu'il n'y a pas double emploi If DCount("*", "tInventaires", "invDate= #" & Format(Me.zdtDate, "mm/dd/yy") & "#") > 0 Then MsgBox "Un inventaire existe déjà à cette date", vbCritical Exit Sub End If 'Créer un nouvelle structure pour encoder un nouvel inventaire sql = "INSERT INTO tInventaires ( idArticle, invPrix, invDate ) " _ & "SELECT tArticles.idArticle, dernierprix([idarticle]) AS Expr1, " _ & """" & Me.zdtDate & """ AS Expr2 FROM tArticles;" DoCmd.SetWarnings False DoCmd.RunSQL (sql) DoCmd.SetWarnings True Me.sfInventairePatisserie.Requery: Me.sfInventaireMagasin.Requery Me.sfInventaireBoulangerie.Requery: Me.sfInventaireEntretien.Requery End Sub
Cette requête fait appel à une fonction qui recherche le denier prix facturé pour un article :
La représentation graphique de la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Public Function DernierPrix(IdArticle As Long) As Double On Error GoTo GestionErreur Dim rst As DAO.Recordset, sSQL As String 'Construire une requête pour trouver l'enregistrement le plus récent pour cet IsArticle sSQL = "SELECT TOP 1 tFacturesAchat.FAPrix FROM tFacturesAchat " _ & "WHERE (((tFacturesAchat.FAidArticle)=" & IdArticle & ")) " _ & "ORDER BY tFacturesAchat.FADate DESC;" 'Récupérer la valeur unique trouvée via le RecordSet et l'affecter en retour Set rst = CurrentDb.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly) DernierPrix = rst(0) Exit Function GestionErreur: If Err.Number = 3021 Then 'pas de prix pour cet article (le RecordSet est vide) DernierPrix = 0: Exit Function Else MsgBox "Erreur inattendue dans DernierPrix pour idArticle : & idArticle & vblf" _ & Err.Number & " " & Err.Description End If End Function
-----------
Remarque sur la syntaxe de la source du contrôle [zdtValeurInventaire] (Total des quatre formulaires)
On fait appel à une fonction ErreurToZero() dont voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part =ErreurToZero([sfInventairePatisserie]!zdttotal)+ErreurToZero([sfInventaireBoulangerie]!zdttotal)+ErreurToZero([sfInventaireMagasin]!zdttotal)+ErreurToZero([sfInventaireEntretien]!zdttotal)
J’attire votre attention sur le fait que cette fonction n’est pas la réécriture de Nz().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Function ErreurToZero(anyValue As Variant) As Variant On Error GoTo error If IsNull(anyValue) Then ErreurToZero = 0 Else ErreurToZero = anyValue End If Exit Function error: ErreurToZero = 0 End Function
Ici, on convertit une erreur en zéro. Nz() convertit une valeur = « Null » en zéro.
C’est le cas à l’ouverture du formulaire : les quatre sous formulaires n’ont pas d’enregistrement ---> le total N’EXISTE PAS ---> « Erreur » et non pas la valeur « null » !
-------------
Merci à Jean Yves de tester avec ses données et vérifier que cela correspond à son besoin.
Cordialement.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonsoir Claude
je n'est qu'un mot SUPER!
La fonction inventaire c'est tout a fait ce que je cherche. La seule petite chose qui me manquerait se serai la possibilité d'imprimmer un inventaire vierge afin de pouvoir le remplir plus facilement.
Encore merci
@+
Vois l'état eInventaireVierge.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonsoir Claude
Voila tres bien....ca me suffit!
Il ne reste plus que les statistiques par articles et fournisseurs et je crois que ce projet sera bouclé!
Encore mille merci!
@+
Bonjour jeanyves31,
Peux-tu donner un peu plus de détails ?Il ne reste plus que les statistiques par articles et fournisseurs et je crois que ce projet sera bouclé!
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonjour Claude
Voila, en fait il serai bien de connaitre les quantités achetés de tel ou tel produits sur une période donnée, en général la dernière année. Tout ca pour négocier au mieux les tarifs chaque années...
Une petite remarque, concernant le formulaire fConsulterfactures... est il possible d' indiquer le montant de chaque lignes (dans Détail de la facture) ainsi que le montant total HT?
@+
jean yves
Vois si ceci te convient.
Fonctionnalités
Permet de filtrer suivant plusieurs critères.
L’ordre de tri peut être modifié (clic sur étiquette jaune).
La taille du sous-formulaire s’ajuste en fonction du nombre de lignes à afficher.
-------------
FaitUne petite remarque, concernant le formulaire fConsulterfactures... est il possible d' indiquer le montant de chaque lignes
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonsoir Claude
Ton formulaire est tres bien...il permet de connaitre un certain nombre de choses, comme le CA par fournisseur, tres intéressant! il faut le garder!
Cependant ce n'est pas à ca que je pensait!
Mon raisonnement est le suivant:
Du 01/01/2010 au 31/12/2010 j'ai utilisé, donc acheté x Kg de beurre par ex. donc Messieurs les fournisseurs si je vous commande pour l'année qui viens x kg de beurre, quel est votre tarif?
En fait il faudrai regroupper les quantités facturés pour un article pour une période donnée...
Voila...
@+
Bonjour,
J'ai modifié : vois nouvelle présentation post 70.
Maintenant, cela devrait aller.
NB J'ai un peu modifié le libellé des unités.
Nouvelles DB en pièce jointe.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonjour Claude
Merci pour tes précisions en mp.
J'ai recomencer totalement la rentrer de mes données... pour l'instant je n'est pas de problemes d'intégrité rencontré précèdement....
Ces problèmes sont sans doute du a de mauvaises manipulations de ma part .
J'ai donc bien "vidanger" les tables dans l'ordre que tu ma indiqué (tAchat, tPrixFournisseurs) le reste j'ai gardé...
autre petit soucis de manip...peut etre lier ? à savoir dans le formulaire fPrixFournisseur, ou fArticle, si on doit d'ajouter 1 article ou 1 prix normalement on doit appuyer sur le bouton en haut à droite, sauf qu'il m'est arrivé d'oublier... et la on modifie l'article en cours....
De meme dans fPrixFournisseurs dans le cadre vert "Autres Offres..." actuellement il est possible de modifier les articles peut être faudrait il supprimer ca...
Petits soucis avec "derniere commande" Apres avoir clické sur le btn "Imprimer les bons de commande...." 1 feuille à imprimé apparait, puis on encode les factures d'achat. Ensuite lors de la réception des factures et apres vérification, on click sur "mettre à jour" donc les factures n'apparaisent plus dans le formulaire d'encodage, mais apparaise encore dans "Derniere commande"...peut etre faudrai t'il automatiquement les supprimmer afin d'eviter de les encoder à nouveau.
Par rapport à l'Etat eCommandes serai t'il possible d'inclure des sauts de page à chaque fournisseur
au fait j'ai pas eu le temps ces derniers jour de te feliciter pour le formulaire "statistique"....génial!
A bientot
Bonsoir Jean-Yves,
autre petit souci de manip... dans le formulaire fPrixFournisseur, ou fArticle, si on doit ajouter 1 article ou 1 prix normalement on doit appuyer sur le bouton en haut à droite, sauf qu'il m'est arrivé d'oublier... et là on modifie l'article en cours...
Proposition
Pour ces deux formulaires, à chaque enregistrement (donc dans l’événement « sur activation ») :
- on fixe à « oui » la propriété « verrouillé » des contrôles autres que ceux du filtre ;
- on fixe à « oui » la propriété Modif autorisée des sous-formulaires ;
- un bouton permet de lever le verrou pour modification éventuelle de l’enregistrement en cours ;
- évidemment, la contrainte est levée d’office s’il s’agit d’encoder un nouvel enregistrement.
-------------------
PropositionPetits soucis avec "dernière commande" … nouveau.
Le clic sur le bouton « Imprimer… » provoquera immédiatement la remise à zéro des compteurs
-------------
Pas de problème.d'inclure des sauts de page à chaque fournisseur
--------------
Es-tu d'accord avec les deux propositions ?
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonjour Claude
Oui je pense que ce sera une bonne chose meme si ca peu etre une contraite lors de la saisie...mais bon vaux mieux eviter les problemes!Proposition
Pour ces deux formulaires, à chaque enregistrement (donc dans l’événement « sur activation ») :
- on fixe à « oui » la propriété « verrouillé » des contrôles autres que ceux du filtre ;
- on fixe à « oui » la propriété Modif autorisée des sous-formulaires ;
- un bouton permet de lever le verrou pour modification éventuelle de l’enregistrement en cours ;
- évidemment, la contrainte est levée d’office s’il s’agit d’encoder un nouvel enregistrement.
OuiEs-tu d'accord avec les deux propositions ?
Autre petite chose que j'ai oublier...c'est que lorsque on a une commande en cours, et que l'on rajoute un article dans "Encoder des articles" celui ci n'apparait pas dans le formulaire fCommande logique... mais y a t'il une solution pour qu'il apparaisse...
@+ bonne journée
Bonjour Jean Yves et tous ceux qui lisent encore,
Pour ces deux formulaires,autre petit souci de manip... dans le formulaire fPrixFournisseur, ou fArticle, si on doit ajouter 1 article ou 1 prix normalement on doit appuyer sur le bouton en haut à droite, sauf qu'il m'est arrivé d'oublier... et là on modifie l'article en cours...
- on fixe d’office à « non » la propriété Modif autorisée des sous-formulaires ; à « oui » la propriété « verrouillé » des contrôles autres que ceux du filtre ;
- un bouton permet de lever le verrou pour modification éventuelle de l’enregistrement en cours ;
- à chaque lecture d’un enregistrement, on refixe à « oui » la propriété « verrouillé » des contrôles autres que ceux du filtre ;
- évidemment, la contrainte est levée d’office s’il s’agit d’encoder un nouvel enregistrement.
------------------
FaitPetits soucis avec "dernière commande" … nouveau.
Le clic sur le bouton « Imprimer… » provoquera immédiatement la remise à zéro des compteurs
------------------
Faitd'inclure des sauts de page à chaque fournisseur
------------------
J’ai ajouté un bouton « Ajouter un article » dont voici le code associé au clic :Lorsqu’on a une commande en cours, et que l'on rajoute un article dans "Encoder des articles" …
Le formulaire fArticles s’ouvre alors, prêt pour l’encodage d’un nouvel article.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub AjouterArticle_Click() 'ouvrir le formulaire fArticles en position d'ajout DoCmd.OpenForm "fArticles" DoCmd.GoToControl "zdtArticleNom" DoCmd.GoToRecord , , acNewRec End Sub
J’ai ajouté un événement sur fermeture du formulaire fArticles
… et l’encodage de la commande en cours peut continuer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Private Sub Form_Close() Dim sql As String 'Vérifier si une commande est en cours de construction If CurrentProject.AllForms("fCommandes").IsLoaded Then 'Alors, ajouter les nouveaux articles éventuels sql = "INSERT INTO tEncodageCommandes ( EncoComArticle, EncoComIdArticle, EncoComUnité, EncoComOffres ) " sql = sql & "SELECT tArticles.ArticleNom, tArticles.idArticle, tUnites.Unite, bestOffre([ArticleNom]) AS Offres " sql = sql & "FROM tUnites INNER JOIN tArticles ON tUnites.idUnite = tArticles.ArticleidUnite " sql = sql & "ORDER BY tArticles.ArticleNom;" DoCmd.SetWarnings False DoCmd.RunSQL (sql) DoCmd.SetWarnings True 'Actualiser la source de fCommandes Forms!fCommandes.Requery Forms!fCommandes.Form_Current End If End Sub
Merci déjà de signaler les imperfections que tu rencontres à la mise en oeuvre des données opérationnelles.
A bientôt.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonsoir Claude
Bon comme d'hab...
parfait le btn pour ajouter des articles dans fCommande.
Par contre il y a un "bug" lorsqu'on clique sur une offre on a un msg d'erreur "Erreur de compilation: Membre de methode ou de données introuvable"
@+Merci
Avec mes excuses.
Voici la correction.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Bonsoir Claude
Encore quelques petits "trucs" à modifier....
Dans l'etat eCommande il serai bien de "classer" les articles par catégorie, et sous categorie....
Dans fConsulterFactures, il serai bien de trier les factures par date, la + récente en haut, les + recentes serai donc toujours visible dès l'ouverture du formulaire, sans avoir besoin de "scoller" vers le bas.
Petit probleme de format de nombre dans fCommande. Le champs EncoComQuantité arrondis les chiffres saisies
J'utilise donc "grandeur nature" cette appli depuis 2 semaines environ , et je ne constate aucun problemes particulier.
@ bientot
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager