Professional Documents
Culture Documents
Ce document a pour but de vous montrer comment concevoir une petite calculatrice sous
Access.
Vous devez tre l'aise avec Microsoft Access et imprativement matriser la conception
de formulaires ainsi que connatre le langage Visual Basic for Application pour mettre en
pratique cet exemple.
Commentez
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
1 - Avant propos.......................................................................................................................................................... 3
1-1 - Remerciements..............................................................................................................................................3
1-2 - Contact...........................................................................................................................................................3
2 - Prsentation du projet............................................................................................................................................4
3 - Prsentation du formulaire exemple...................................................................................................................... 5
3-1 - Le formulaire en mode formulaire.................................................................................................................5
3-2 - Les proprits du formulaire......................................................................................................................... 6
4 - Le formulaire en mode cration.............................................................................................................................7
4-1 - Dtail des contrles utiliss.......................................................................................................................... 8
4-1-1 - La partie application..............................................................................................................................8
4-1-1-1 - Les messages circonstanciels l'usage du Mode d'affichage.....................................................9
4-1-1-2 - Les boutons des fonctions d'application...................................................................................... 9
4-1-2 - La partie Calculatrice.......................................................................................................................... 10
4-1-2-1 - Liste des contrles utiliss avec leur nom et position (en pixels).............................................. 11
5 - Le code de la calculatrice....................................................................................................................................16
5-1 - Le projet est constitu de deux Modules de code...................................................................................... 16
5-1-1 - Le code du Formulaire....................................................................................................................... 16
5-1-2 - Le code du Module basRegistry.........................................................................................................25
6 - Comment cela fonctionne t-il ?............................................................................................................................ 28
7 - Comment l'utiliser ?..............................................................................................................................................30
7-1 - Elle est ouverte, mais je peux pas la dplacer !!!....................................................................................... 30
8 - Conclusion............................................................................................................................................................32
-2-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
1 - Avant propos
Ce document a pour but de vous montrer comment concevoir une petite calculatrice sous Access.
En effet, vous pouvez appeler la calculatrice de Windows mais cette opration vous oblige vrifier si elle n'est
pas dj lance auquel cas, il vous faut l'afficher au premier plan (donc tre l'aise les API's Windows).
L, aucun problme de ce cot puisqu'il s'agit d'un formulaire et seules les fonctions de base d'ouverture
(DoCmd.OpenForm) et de fermeture (DoCmd.Close) sont ncessaires.
1-1 - Remerciements
Je tiens remercier toutes celles et ceux qui ont particip la relecture de ce document en y incluant leurs remarques.
1-2 - Contact
Pour tous renseignements complmentaires, veuillez me contacter directement (Argyronet) par MP.
-3-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
2 - Prsentation du projet
L'objectif de ce tutoriel est de vous montrer qu'il est possible concenoir une petite calculatrice d'appoint parfaitement
oprationnelle dans votre application Access.
Cette calculatrice offre toutes les fonctions de base y compris la mmoire (+/-) avec un convertisseur Euro/Francs
en temps rel au fur et mesure des entres et rsultats affichs. Bon, je vous l'accorde, ce n'est pas forcment
trs utile mais il s'avre que son usage devient vite pratique si des boutons permettant de l'appeler au moment voulu
sont correctement poss dans vos formulaires.
Autre avantage, les calculs trouvs, en dehors du fait que j'ai prvu une routine de copier/coller automatique,
peuvent se trouver recopis dans une zone de texte d'un formulaire parent ou plutt du formulaire appelant par
la ligne de code suivante :
o bien entendu, txtLCDDisplayEUR est le nom du contrle affichant le rsultat dans la calculatrice ;
(Nous verrons les noms des contrles un peu plus loin).
-4-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Raliser une calculatrice d'un point de vue graphique n'est pas trs difficile en soit ; il suffit de s'inspirer de sa
calculatrice de bureau ou d'une photo idoine reprsentative...
Le reste se ralise en fonction de vos gots et en fonction des besoins. Dans ce tutoriel, la calculatrice possde un
certain nombre de boutons associs diffrentes fonctionnalits et vous n'tes pas tenu de les greffer tous.
Vous pouvez constater que ce formulaire est volontairement dpourvu du slecteur et du diviseur d'enregistrements.
J'ai galement pour les mmes raisons d'esthtique, supprim les boutons de dplacement.
Une fois appel, il s'ouvre au premier plan en mode Modal, c'est dire, que vous ne pouvez pas intervenir sur le
formulaire qu'il l'a ouvert tant que celui-ci reste affich.
Comme je suis un peu maniaque, j'ai greff la calculatrice un petit bouton permettant volont de changer cet tat
Modal en non Modal pour des raisons pratiques.
Pour le cot graphique, le formulaire voit sa proprit Image affecte une image dgrade d'un bleu-violet tirant
un un cru grisonnant, charte graphique adopte l'poque o j'ai cr l'application qui employait cette calculatrice.
Pour crer cette image ou tout autre arrire plan de votre convenance, prenez un logiciel de retouche d'images (The
Gimp, PaintShop Pro, Photoshop...), mettez en oeuvre une forme rectangulaire de 100 x 332 pixels puis appliquez-
lui le dgrad dsir si vous avez choisi d'opter pour un tel arrire plan
Rognez ensuite l'image de telle sorte ce que sa taille devienne 1 x 332 pixels et dans
les proprits Mode d'affichage de l'image du formulaire, choisissez Echelle ; le rendu du
dgrad sera rpt sur toute la largeur de la section dtail du formulaire.
Merci cafeine pour cette remarque...
Sauvez l'image au format BMP ou JPG dans le dossier \Images de votre application.
-5-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Ce formulaire, pour pouvoir tre affich ainsi, possde donc les proprits suivantes :
Pour afficher les proprits du formulaire, cliquez deux fois sur la zone externe gris fonc de votre environnement
Access ou bien sur le bouton Proprits de la barre d'outils.
Cliquez alors sur l'onglet intitul "Toutes" puis "vnements".
TRES IMPORTANT
N'oubliez pas de dfinir Oui, la proprit Aperu des touches (Key Preview) sans quoi, vous
ne pourrez pas utiliser la calculatrice avec le clavier...
-6-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Lorsque l'on passe en Mode Cration, vous pouvez remarquer que qu'il n'y a pas grandes diffrences avec le mode
formulaire.
Le projet exploite 47 contrles diffrents parmi lesquels figurent :
des Boutons
des Zones de
texte
des
Etiquettes
des
Rectangles
Du fait que la mise en place de ces contrles ncessite une certaine prcision, je vous recommande de ne pas
afficher la Grille que vous dsactivez dans le menu Affichage.
-7-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Petite astuce
Les touches de raccourcis Ctrl+Flche de direction dplacent un contrle ou un groupe de
contrles au pixel prs.
Les touches de raccourcis Shift+Flche de direction agrandissent/rtrcissent un contrle ou
un groupe de contrles au pixel prs.
La partie dite "application" relate ce que je considre comme tant les fonctions externes au formulaire lui-mme.
En effet, ces fonctions sont reprsentes par les trois boutons qui sont respectivement :
Copier (Ctrl+C)
Coller (Ctrl+V)
Premier plan / Arrire plan
Vous pouvez constater que trois rectangles de couleur rouge sont leur support.
J'ai pos ces contrles tout simplement pour indiquer l'tat de l'emploi des boutons
Dans le code, ces rectangles voient leur proprit BackColor changer en consquence.
me
Le 3 bouton quant lui est peu un particulier parce qu'il masque ou affiche son "conjoint"
en consquence de l'tat de la fentre :
Son conjoint est bien videmment un autre bouton illustr diffremment. J'ai prfr cette
mthode plutt que l'affectation dynamique de l'image (qui ncessite que l'image soit dans un
dossier en tant que fichier) mais rien ne vous empche de faire comme bon vous semble pour
ce cas prcis.
Mode non Modal : L'accs au formulaire Mode Modal : Il est ncessaire de fermer
appelant est libre : la calculatrice pour avoir la main sur le
(il faudra appuyer de nouveau sur le bouton formulaire appelant :
ouvrant la calculatrice si le formulaire (Le mode Modal est affect par dfaut au
appelant occupe tout l'cran). formulaire)
-8-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
J'ai greff au projet deux affichages de message avec la fonction MsgBox() qui annoncent respectivement l'tat de
la calculatrice selon le mode choisi :
Vous dessinerez donc trois Rectangles identiques au format 3D enfonc avec par dfaut, la couleur de fond rouge.
Dtail des contrles utiliss pour les actions de Copier/Coller et du Mode fentre
-9-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
C'est de loin la mise en place la plus dlicate car elle ncessite de la minutie et de la patience...
L'idal est de dessiner un bouton pour la partie bouton par exemple et de le dupliquer autant de fois que ncessaire,
c'est dire 27 fois...
Dans un premier temps, posez-les de faon approximative mais rgulire. L'ajustement se fait soit l'aide des
donnes de proprits par les proprits Haut (Top) et Gauche (Left) ou bien comme prcis ci-avant, l'aide des
raccourcis clavier...
Affectez chacun d'entre-eux la lgende approprie
Seul le bouton Racine Carre possde une police Symbole car je n'avais pas trouv l'poque
le symbole idoine et j'avais trich avec cette mthode en entrant les caractres a.
(Ceci dit, rien ne vous empche de mettre de images pour chacun des boutons).
Tous les autres boutons sont dfinis en police Arial 12 et colors en noir pour les chiffres et en diffrentes couleurs
pour les fonctions particulires comme l'illustre la premire image.
- 10 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
=> Quatre tiquettes (Label) sont dessines gauche de chaque afficheur et recevant respectivement la proprit
Intitul (Caption) avec les caractres en Arial 16 Italique et F en Arial 10 Italique avec les couleurs Bleu au-dessus
du Violet.
=> Deux zones de texte nommes txtPasteData et txtHiddenFinalResult possdent la proprit Visible False
et sont destines recevoir respectivement les informations du presse papier de faon temporaire et le calcul en
cours avant de l'afficher.
4-1-2-1 - Liste des contrles utiliss avec leur nom et position (en pixels)
Je vous recommande (comme je l'ai stipul dans ce tutoriel) de nommer tous les contrles mme ceux qui ne sont
pas utiliss dans le code.
Cela est bien plus pratique pour vous comme pour tout autre dveloppeur qui reprendrait ventuellement votre projet.
Dtail des contrles utiliss pour les les rectangles, zones de texte et images
- 11 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Vous trouverez ci-dessous, la liste rcapitulative des contrles du formulaire avec leur position en pixels...
Pour ceux d'entre vous qui le souhaitent, vous pouvez trs bien mettre en place une procdure
de conception du formulaire avec les mthodes Add de l'objet Control ; de ce fait, vous n'aurez
plus qu'un minimum de travail faire...
- 12 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
ObjetTypeNom Position
Position
Largeur
Hauteur
de duhorizontale
verticale
contrle
contrle
Bouton
104 btn0 x:375y:3150 w:945h:397
0
Bouton
104 btn1 x:375y:2640 w:450h:397
1
Bouton
104 btn2 x:877y:2640 w:450h:397
2
Bouton
104 btn3 x:1366y:2640w:450h:397
3
Bouton
104 btn4 x:375y:2130 w:450h:397
4
Bouton
104 btn5 x:877y:2130 w:450h:397
5
Bouton
104 btn6 x:1366y:2130w:450h:397
6
Bouton
104 btn7 x:375y:1635 w:450h:397
7
Bouton
104 btn8 x:877y:1635 w:450h:397
8
Bouton
104 btn9 x:1365y:1635w:450h:397
9
Bouton
104 btnAddx:1920
y:2130w:500h:397
+
Bouton
104 btnC x:1920y:1635w:500h:397
C
Bouton
104 btnCE x:2505
y:1635w:500h:397
CE
Bouton
104, BtnDec
x:1366
y:3150w:450h:397
Bouton
104 btnDivide
x:1920
y:3675w:500h:397
Bouton
104 btnEqual
x:1366
y:3675w:450h:397
=
Bouton
104 btnInvert
x:2505
y:2640w:500h:397
1/x
Bouton
104 btnMemClear
x:3075
y:2647w:470h:397
MC
Bouton
104 btnMemLess
x:3075
y:2130w:470h:397
M-
Bouton
104 btnMemMore
x:3075
y:1635w:470h:397
M+
Bouton
104 btnMemRecall
x:3075
y:3150w:470h:922
MR
Bouton
104 btnMult
x:1920
y:3150w:500h:397
X
Bouton
122 btnOnOff
x:405y:3720w:870h:307
On/
Off
Bouton
104 btnPercent
x:2505
y:3150w:500h:397
%
Bouton
104 btnSQRT
x:2505
y:2130w:500h:397
Vx
Bouton
104 btnSubst
x:1920
y:2640w:500h:397
-
- 13 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
- 14 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
On/
Off
Rectangle
101 shpSeparator
x:120y:855w:3630
h:45
trait
de
sparation
Zone109 txtLCDDisplayEUR
x:465y:225w:3135
h:495
de
texte
Afficheur
Euro
Zone109 txtLCDDisplayFRF
x:465y:1020
w:3135
h:315
de
texte
Afficheur
FRF
- 15 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
5 - Le code de la calculatrice
Bien que cela semble tre on ne peut plus simple de comprendre les fonctions de base d'une calculatrice, il faut
considrer qu'un certain nombre de lignes de code est ncessaire son bon fonctionnement.
Bien entendu, les fonctions de base d'additions, de soustractions, de multiplications et de divisions restent les plus
simples :
L'usage de deux variables tampons qui subissent un changement de rsultat en fonction de l'oprateur choisi.
Pour mettre en oeuvre les gestion des oprateurs, il y a plusieurs manire de procder. J'ai, pour ce projet, choisi
l'usage d'une variable de type String qui prend la valeur idoine en fonction du fait que j'appuie sur un chiffre, une
virgule ou un oprateur...
Cette variable nomme "m_strLastFlagEntry" reoit les valeur suivantes :
Le code associ ce projet est rparti dans deux modules ; le premier tant bien entendu le Module de classe du
formulaire lui-mme et l'autre tant un Modules de projet avec une fonction pour lire dans la Base de Registre...
Dans l'en-tte sont dclares des variables de module ainsi qu'une fonction API
- 16 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
- 17 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
m_blnWithDecimal = True
m_strLastFlagEntry = "ActionIsNumber"
End Sub
Les oprations sont gres par une seule fonction qui est appele systmatiquement
- 18 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Les boutons d'annulation annulent le contenu des variables et celui d'extinction change la proprit BackColor puis
appelle la fonction KeepCurrentResult.
Les fonctions spciales exploitent un code aussi simple comprendre que les oprations de base vues ci-avant.
- 19 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
If m_dblFirstEntry = 0 Then
MsgBox "Cette opration est une division par zro !" & vbCrLf & vbCrLf & _
"Le calcul est impossible", 48, "Erreur"
Else
m_dblFirstEntry = 1 / m_dblFirstEntry
m_intMaxDigit = 0
End If
Me!txtLCDDisplayEUR = str$(m_dblFirstEntry)
m_blnOperationNumber = 1
m_strLastFlagEntry = "ActionIsOperator"
m_strFlagOperator = vbNullString
KeepFocus "btnInvert"
ConvertToFRF
End Sub
L_ExOverFow:
Exit Sub
L_ErrOverFow:
MsgBox "Vous avez atteint la capacit maximum de calcul du processeur...", 48, "Calcul dpass"
Resume L_ExOverFow
End Sub
Les gestion de la mmoire s'effectue tout simplement avec une variable de module.
- 20 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Au sein du formulaire sont grs les vnements et plus particulirement celui qui est gnr par le clavier.
Les fonctions de conversions sont ncessaires notamment cause du sparateur de dcimale du systme mais
galement pour la conversion en Francs de la valeur Euro.
- 21 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
dblResultFound = ConvertToDouble(Me!txtLCDDisplayEUR)
If dblResultFound = 0 Then
Exit Sub
End If
m_dblEuroValue = dblResultFound
dblResultFound = dblResultFound * EURO
dblResultFound = RoundNumber(dblResultFound, 2)
Me!txtLCDDisplayFRF = str$(dblResultFound)
End Sub
Les fonctions des actions servent faire en sorte que les calculs soient effectus selon les touches appuyes.
If m_blnOperationNumber = 1 Then
m_dblFirstEntry = ConvertToDouble(Me!txtLCDDisplayEUR)
ElseIf m_blnOperationNumber = 2 Then
m_dblSecondEntry = ConvertToDouble(Me!txtLCDDisplayEUR)
Select Case m_strFlagOperator
Case "+"
m_dblFirstEntry = m_dblFirstEntry + m_dblSecondEntry
Case "-"
m_dblFirstEntry = m_dblFirstEntry - m_dblSecondEntry
Case "*"
m_dblFirstEntry = m_dblFirstEntry * m_dblSecondEntry
Case "/"
If m_dblSecondEntry = 0 Then
- 22 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
m_vntTotalDisplayed = Val(Me!txtLCDDisplayEUR)
- 23 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
txtPasteData.Visible = True
txtPasteData.SetFocus
On Error Resume Next
Application.RunCommand acCmdPaste
dblPastedValue = Me!txtPasteData
- 24 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
DoCmd.GoToControl "txtLCDDisplayEUR"
m_vntFinalResult = ConvertToDouble(Me!txtLCDDisplayEUR)
txtHiddenFinalResult.Visible = True
Me!txtHiddenFinalResult = m_vntFinalResult
txtHiddenFinalResult.SetFocus
txtHiddenFinalResult.SelStart = 0
txtHiddenFinalResult.SelLength = Len(Me!txtHiddenFinalResult)
On Error GoTo L_ErrCopyFail
DoCmd.RunCommand acCmdCopy
btnOnOff.SetFocus
txtHiddenFinalResult.Visible = False
L_ExCopyFail:
Exit Sub
L_ErrCopyFail:
MsgBox "Dsol, la copie a chou...", 48, "Copie"
Resume L_ExCopyFail
End Sub
- 25 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
- 26 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Case Else
lngRetVal = -1
End Select
End If
RegCloseKey (lngHKey)
End If
fRegistryGetKeyValue = varValue
L_ExRegistryOperation:
Erase abytValueData
Exit Function
L_ErrRegistryOperation:
MsgBox "Error: " & Err.Number & ". " & Err.Description, , _
"fRegistryGetKeyValue"
Resume L_ExRegistryOperation
End Function
- 27 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Le fonctionnement global est relativement simple : Le formulaire intercepte les squences de touche par l'vnement
Form_KeyDown et appelle la procdure associe selon le KeyCode correspondant.
Entre de chiffres
Quelle que soit la valeur de KeyCode s'il s'agit d'un chiffre, la variable m_strLastFlagEntry prend la valeur
approprie et la fonction FlagActionButtons() est appele. C'est elle qui rgit l'affichage de ce qui est frapp ou
cliqu et contrle que ces squences ne dpassent pas 13, nombre maximum de chiffres affichables.
Quelle que soit la valeur de KeyCode s'il s'agit d'un oprateur, la variable m_strLastFlagEntry prend la valeur
approprie et la fonction FunctionOperator() est appele. C'est elle qui rgit le calcul de ce qui est demand et
contrle l'erreur potentielle de la Division par zro puis met jour l'affichage partir du moment o le paramtre
Operator de la fonction est gale "=".
Quelle que soit la valeur de KeyCode s'il s'agit d'une fonction mathmatique spciale, la variable
m_strLastFlagEntry prend la valeur approprie et chacun des boutons excute le calcul selon que ce soit :
- une racine carre : fonction SQR(valeur)
- l'inverse 1/x : opration 1 / valeur
- un pourcentage : opration valeur / 100
- une lvation X : opration valeur * valeur
Ici, une variable de module nomme "m_dblBufferMemory" sert de buffer pour stocker en plus ou en moins la
valeur du rsultat courant.
=> Copier : Cette action appelle la fonction CopyResultToClipboard afin de stocker le rsultat dans le presse papier.
=> Coller : Cette action appelle la fonction Application.RunCommand acCmdPaste afin de coller le rsultat dans
la zone de texte txtLCDDisplayEUR et appelle la fonction ConvertToFRF pour convertir instantanment la valeur
en francs.
=> Mode : Cette action change la proprit Modal True ou False selon le choix et change la visiblit du bouton
ainsi que la couleur du rectangle selon le cas.
- L'extinction de la calculatrice ferme le formulaire et affiche un message pour conserver le rsultat dans le presse
papier...
- 28 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
- 29 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
7 - Comment l'utiliser ?
Bien une fois que vous avez termin la conception et test en mode formulaire que tout fonctionnait correctement,
vous pouvez ouvrir la calculatrice depuis un autre formulaire avec la mthode :
Ouvrir un formulaire
Private Sub cmdShowCalculator()
DoCmd.OpenForm "", acNormal, , , , acDialog
End Sub
Si effectivement vous avez, comme je l'ai stipul, dfini la proprit Fen indpendante Oui, vous n'avez alors plus
de barre de titre ; de ce fait, il est impossible de dplacer le formulaire.
La solution consiste alors ajouter du code sur les vnements Mouse_Move des Rectangles de la calculatrice
Pour ce faire, vous devez ajouter un Module que vous nommez basAPI par exemple dans lequel vous copiez le
code suivant :
Il vous reste alors grer les venenemts pour chacun des rectangles comme suit :
- 30 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
Dans la procdure MoveMyCalculator, on identifie le bouton et si c'est bien le bouton gauche qui est appuy (1) alors
les appels des fonctions ReleaseCapture et de SendMessage sont lancs et permettent d'effectuer le dplacement
de la fentre...
- 31 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/
Cration d'une calculatrice pour vos applications Access par Jean-Philippe AMBROSINO
8 - Conclusion
Ce petit projet reste intressant pour les dveloppeurs qui souhaitent mettre la disposition des utilisateurs de leurs
applications une calculatrice personnalise.
Les avantages ont t voqus en dbut de document et personnellement, je prfre offrir une calculette de ce type
pour mes applications plutt que mettre un excutable qui ouvrirait de faon unique et au premier plan la calculatrice
de Windows (La calculatrice de Windows est malheureusement multi-instances).
Je vous laisse donc crer votre calculette personnalise avec pourquoi pas, d'autres fonctions spcifiques associes
d'autres boutons. Les possiblits sont vastes, ce tutoriel tant en fait une petite base de dpart pour commencer.
N'hsitez pas me contacter si vous rencontrez des difficults.
- 32 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise
l'obtention pralable de l'autorisation de l'auteur.
http://argyronet.developpez.com/office/access/calculator/