|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : janvier 2011 Messages : 309 ![]() |
Bonjour à tous,
J'ai comme projet d'inclure dans mon développement d'application de gestion une gestion des unités universelles. Pour cela et en m'inspirant de ce que j'ai vu dans d'autres logiciels il suffirait de deux champs [Quantité] et [Unité] [Unité] étant une liste de valeurs (h,L,m,m² etc...) [Quantité] (0.00) Je me doute bien qu'il faudra coder pour vérifier que la quantité introduite soit correcte par rapport à l'unité sélectionnée et qu'il faudra aussi formater ensuite les données. Par exemple dans le cas d'une unité heure, il faudra que la quantité supportée soit supérieure à 24h pour la partie gauche et d'un maximum de 59 pour la partie droite(J'ai déjà quelques éléments de réponse vus ici) Comment vous y prendriez vous pour qu'en suite dans les états les données introduites puissent s'additionner correctement (dans le cas d'une unité horaire) ? |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Anthony SchrickeDéveloppeur informatique Inscription : juin 2008 Messages : 342 ![]() |
Bonjour,
Personnellement, d'un point de vue purement de codage VBA j'utiliserai une interface (via un module de classe) que je pourrai ensuite implémenter dans les différents cas de figures. Par exemple une interface qui possède les principaux accesseur getUnite(), setUnite(), getValeur() et setValeur(), etc... Le plus pratique serrai d'utiliser les propriétés car elles sont plus simple d'utilisation. Après je déclinerai dans une autre classe pour chaque type de base. Par exemple UniteHeure, UniteDouble, UniteLong, etc... L'intérêt c'est que l'on peux ensuite les utiliser dans une collection d'objets(grâce à l'objet Collection) en typant la collection de l'interface. On sais que tous ces objets sont du type de l'interface unite par exemple. De cette manière, on peux manipuler les objets quelque soit leur type. Pour retrouver un type d'objet il faut faire quelque chose dans ce genre ci : Code :
If TypeOf monObjet Is UniteHeure Then ... Cordialement,
__________________
loi de LeBlanc : Plus tard signifie jamais. extrait de Coder proprement Auteur:Robert C. Martin |
|
|
00
|
|
|
#3 | |
|
Membre régulier
![]() Inscription : janvier 2011 Messages : 309 ![]() |
Citation:
Ouh la la, que ça me semble compliqué tout ça ! Pour un débutant comme moi, je vais galérer, surtout sachant qu'il ne faut que 2 champs maximum dans le formulaire ... Je suppose qu'il faudra dédoubler en créant un champ dans la table pour chaque type d'unité et ce sera par vba que la valeur sera réinjectée dans le champ [Quantité]... La seule complication venant de l'unité horaire > 24h et de la mise en place d'une logique s'y rapportant... |
|
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() |
Bonjour,
La classe est une bonne idée mais bon... il ne faut pas exagérer, c'est juste un calcul. Ta liste déroulante qui propose l'unité... tu modifie la source qui doit être une table, ok ??? Selon ce qui est sélectionné, tu peux engager une décision car ta liste possède un ID qui correspond à l'élément sélectionné... Dans cette table tu ajoutes les champs Coefficient requis et la formule... Tu exploites le tout avec un Eval(). Voici un exemple : Code :
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
||
|
|
20
|
Copyright © 2000-2012 - www.developpez.com