Documente Academic
Documente Profesional
Documente Cultură
NET :
-3-
Espace de travail VB
Bote outils (Toolbox)
(non active = barre grise)
Explorateur de solution
Pr-requis :
Ce tutorial suppose que vous soyez familier avec un langage structur de programmation (comme
le Pascal). Certains concepts seront cependant, brivement rappels.
-4-
Contenu de ce tutorial:
Ce tutorial vous prsente Visual Basic (VB) .NET de manire succincte. Il vous introduit la
programmation multi-fentre sous MS Windows en vous exposant les outils de base de VB. Il
vous introduit la programmation de bases de donne.
Limites de ce tutorial:
Ce tutorial nest pas un manuel de rfrence VB .NET. Pour des fonctionnalits plus avances,
rfrez vous dautres ressources, notamment des sites Web sur internet traitant de VB .NET.
Plan de travail
Le tutorial est compos six parties qui peuvent tre tudies en six (semaines) sances. A chacune
de ces parties correspond une srie dexercices, quil faut raliser et bien assimiler avant de passer
la partie suivante.
Chaque partie ncessite approximativement deux heures de travail sur un ordinateur, pendant
lesquelles vous devez raliser les exercices correspondants.
Pour chaque partie, avant de travailler sur un ordinateur, vous devez bien lire les sections
correspondantes et essayer de bien comprendre les programmes qui y sont prsents.
Partie 2 : Section 3. Les contrles (toutes les sous-sections jusqu la sous-section 3.2.7)
Vous introduit la programmation des contrles Label, TextBox, RadioButton,
CheckBouton et GroupBox.
Partie 3 : Section 3. Les contrles (toutes les sous-sections jusqu la sous-section 3.2.14)
Vous introduit la programmation des contrles utilisant des listes : ListBox, ComboBox et
Menu.
-5-
Dans cette section nous allons prsenter les structures de base de la programmation en VB. Nous
allons dabord prsenter la notion de variable, les diffrents types standards, les oprateurs
arithmtiques, les structures usuelles: structures de contrles (Instructions conditionnelles et
rptitives), les structures de donnes labores (vecteurs et matrices) et finalement, les procdures
et les fonctions.
Quelques remarques prliminaires :
Cette premire section prsente les structures thoriques de VB. Il est conseill de la
parcourir une premire fois (sans trop insister) pour avoir une ide des structures de base
de VB. Au fur et mesure que vous avancerez dans le cours, vous devez y revenir pour
approfondir la partie qui vous intresse.
Votre application VB sera compose dun ou plusieurs fichiers (formulaires et modules)
contenant du code VB.
Il nexiste pas de sparateurs dinstructions en VB (comme le ; en Pascal ou en C et le
. en Cobol).
VB ne fait pas de distinction entre les minuscules et les majuscules. Ainsi, ValeurVariable
et vALEURvARIABLE reprsentent la mme variable. En fait, VB est trs intelligent, en
ce sens quil vous rcrira (automatiquement) la variable dans le format de caractres que
vous avez utilis lors de sa dclaration.
NomVariable As Type
Par dfaut, le compilateur VB considre que toute variable qui apparat doit avoir t dclare.
Toutefois, si vous ajoutez dans votre code la ligne
Option Explicit Off
-6-
VB sera permissif et vous autorisera utiliser des variables sans les dclarer. Prenez la trs bonne
habitude de toujours dclarer vos variables.
Pour viter tout problme il est prfrable dinitialiser les variables dclares.
Exemples
Compteur = 0
Taux = 21
Le langage VB utilise plusieurs types de donnes dont les plus utiliss sont le type String (chane
de caractres), le type Integer (entier) et le type Single (dcimal). Les types standards de donnes
en VB sont rsums dans le tableau ci-dessous.
Types standards de donnes
Oprateur
Integer
Single
String
Long
Double
Plage de valeurs
Nombres entiers de 32 768 +32 767
Nombres rels avec prcision de sept dcimales
Valeurs ngatives :
de 3,402823E38 1,401298E-45
Valeurs positives:
de 1,401298E-45 3,402823E38
Chane de caractres pouvant aller jusqu'
65535 caractres (environ 2 milliards si la
longueur est variable)
Nombres entiers de
2 147 483 648 +2 147 483 647
Nombres rels avec prcision de seize dcimales
Valeurs ngatives :
De 1,79769313486232E308
4,94065641247E-324
Valeurs positives:
De 4,94065641247E-324
1,79769313486232E308
Byte
Boolean
Date
De 1/1/100 31/12/9999
Currency
Nombres entiers
de 922337203685477,5808
922337203685477,5808
Dclaration et affectation
Dim Nb As Integer
Nb = 100
Dim Mt As Single
Mt = 45.11
Dim as String
Prnom = Jean
Dim Profit As Long
Profit = 123 465 789
Dim DblPrec As Double
Mt = 1.23456789012
-7-
Oprateurs arithmtiques
Oprateur
+, *
/
^
\
MOD
Description
Addition et soustraction
Multiplication
Division dcimale
Puissance
Division entire
Modulo (reste de la division entire)
Exemples
12 + 34; 87.56 387.222
45.87 * 4
36 / 25 = 1.44
5 ^ 3 =125
36 \ 25 = 1
36 MOD 25 = 11
Si, dans une expression arithmtique plusieurs oprateurs sont utiliss, les priorits sont rsolues
comme indiqu dans le tableau qui suit :
Priorit des oprateurs arithmtiques
Oprateur
( )
^
*,/
\
MOD
+, -
Description
Parenthses
Puissance
Ngation
Multiplication et division
Division entire
Modulo
Addition et soustraction
Priorit
1
2
3
4
5
6
7
Else
Instruction21
Instruction22
End If
-8-
Exemple
If Moyenne >= 12 Then
Admis = Admis + 1
MsgBox(" Candidat admis ")
Else
Ajourns = Ajourns + 1
MsgBox(" Candidat ajourn ")
End If
Forme imbrique
Syntaxe
If condition(s) Then
Instruction11
If condition Then
Instruction12
Else if condition Then
Instruction13
Else
Instruction14
End If
Else
Instruction21
Instruction22
End If
Exemple
If NombrePropos > NombreATrouver Then
MsgBox("Votre nombre est trop grand !")
ElseIf NombrePropos < NombreATrouver Then
MsgBox("Votre nombre est trop petit !")
Else
MsgBox("Gagn !")
End If
Oprateurs de comparaison
Oprateur
=
>
<
<>
>=
<=
Signification
Egal
Suprieur
Infrieur
Diffrent de
Suprieur ou gale
Infrieur ou gal
Exemple
15 = 11 + 4
17 > 11
17 < 11
23 <> 23.1
23 >= 23.1
23 <= 23.1
Rsultat
True
True
False
True
False
True
Si plusieurs conditions doivent tre testes, celles-ci doivent tre combines avec des oprateurs
logiques. VB accepte les oprateurs logiques suivants: AND, OR, NOT et XOR. La signification de
chacun deux est prsente dans le tableau qui suit:
Oprateurs logiques
Oprateur
AND
Signification
Connexion ET. Il faut que les conditions soient
vraies pour que le rsultat soit vrai
-9-
Exemple
( 1 = 1) AND (2 < 4)
( 1 > 2) AND (2 = 4)
Rsultat
True
False
OR
NOT
XOR
False True
False
False
True
Exemple
Dim Note As Single
Dim Rponse As String
Note = InputBox (" Tapez votre note ")
Rponse = IIf (Note >= 10, " Admis ", " Ajourn ")
MsgBox (Rponse)
Case expression
Case Liste_Valeurs_1
Instruction11
Instruction12
Case Liste_Valeurs_2
Instruction21
Else Case
InstructionElse1
InstructionElse2
End Select
Les instructions se trouvant aprs Case Liste_Valeurs_i seront excutes si expression = lun
des lments de Liste_Valeurs_i, i = 1, 2, 3, . Sinon, les instructions se trouvant aprs Else
Case seront excutes. Liste_Valeurs_i peut tre :
Exemple
Select Case CodeASCIICaractre
Case 65, 69, 73, 79, 85
MsgBox(" Cest une voyelle ")
Case 66 To 90
MsgBox(" Cest une consonne ")
Case Else
MsgBox(" Ce nest pas une lettre ")
End Select
Notez que Liste_Valeurs_i peut tre une combinaison de listes de valeurs comme dans le cas des
exemples suivants :
Case 1 To 4, 7 To 9, 11, 13, Is > NombreMAx
Case "Lundi", "Mercredi", "Dimanche", VariableJour
1.3 Tableaux
Un tableau permet de stocker une suite dlments de mme type. Laccs un lment prcis se
fait laide dun indice (valeur ou variable entire). En VB, pour un vecteur dclar avec une
dimension (N), le premier lment a lindice 0, le deuxime a lindice 2, le troisime a lindice 3,
, le dernier a lindice N1.
Syntaxe
Dim NomVecteur(N) As TypeVecteur
Cette instruction dclare un vecteur NomVecteur de taille N+1. Pour accder au ime lment du
vecteur, il faut prciser lindice entre parenthses comme suit : NomVecteur(i-1), i doit tre
compris dans lintervalle [0, N].
TypeVecteur est un type standard (Boolean, Integer, String, etc.) ou tout autre type (type dobjet)
dfinie dans VB ou dans votre application.
Exemple
Dim TabTemp(12) As Single
Numro
Temprature
1 2
6 5,5
3
4
7 11,5
5
15
Exemple
Dim TabMajuscules(65 to 90) As String
1
Pour viter toute confusion (et garder vos bonnes habitudes Pascal), dclarez toujours le vecteur avec une taille (N) et
ignorez llment lindice 0. Le premier lment ne sera jamais utilis.
- 11 -
Numro
Majuscule
65 66
A B
67
C
89
Y
90
Z
VB permet de travailler avec des tableaux de deux, trois, quatre, dimensions ou plus
Exemple d'un tableau deux dimensions:
Dim ExempleMatrice(10, 10) As Single
Le test (Compteur = Dbut) est effectu au dbut de la boucle. La variable numrique Compteur
est incrmente chaque fin de boucle du nombre indiqu par lincrment. Si lIncrment (le pas
par lequel Compteur augmente chaque boucle) nest pas spcifi, il est fix par dfaut 1.
Si la valeur de Fin est infrieure la valeur de Dbut, lincrment est ngatif. La valeur de
Compteur peut tre utilise (par exemple, pour numroter le passage dans la boucle) mais ne doit
pas tre modifie dans le corps de la boucle.
Exemple
Dim
Dim
Dim
For
i As Integer
Chane As String
TabInitial(1 To 12) As Single
i = 1 To 12
Chane = InputBox("Temprature N " & Compteur)
Aussi, pour viter toute confusion (et garder vos bonnes habitudes Pascal), dclarez toujours la matrice avec une
dimension N*N et ignorez la ligne et la colonne lindice 0.
- 12 -
La condition est ici teste au dbut, c'est--dire lentre de la boucle. Avec While (tant que), la
boucle est rpte tant que la condition est vraie. Si la condition nest pas vraie au dpart, les
instructions de la boucle ne sont pas excutes.
Exemple
Do While MotPropos <> MotDePasse
MotPropos = InputBox("Donnez votre mot de passe")
Loop
Cela prsuppose que MotPropos soit initialis par une valeur autre que MotDePasse (par exemple,
la valeur par dfaut "").
Test postrieur
Syntaxe
Do
Instructions
[... Exit Do]
[Instructions]
Loop While Condition
La condition est alors teste la fin de la boucle. Avec While (tant que), la boucle est rpte tant
que la condition est vraie. Les instructions de la boucle sont donc excutes au moins une fois.
Exemple
Do
MotPropos = InputBox("Donnez votre mot de passe")
Loop While MotPropos <> MotDePasse
- 13 -
La condition est ici teste au dbut, c'est--dire lentre de la boucle. Avec Until (jusqu'), la
boucle est rpte jusqu' ce que la condition soit vraie. Si la condition est vraie au dpart, les
instructions de la boucle ne sont pas excutes.
Exemple
Do Until MotPropos = MotDePasse
MotPropos = InputBox("Donnez votre mot de passe")
Loop
Cela prsuppose que MotPropos soit initialis par une valeur autre que MotDePasse (par exemple,
la valeur par dfaut "").
Test postrieur
Syntaxe
Do
Instructions
[... Exit Do]
[Instructions]
Loop Until Condition
La condition est alors teste la fin de la boucle. Les instructions de la boucle sont donc excutes
au moins une fois. Avec Until (jusqu'), la boucle est rpte jusqu' ce que la condition soit vraie.
Exemple
Do
MotPropos = InputBox("Donnez votre mot de passe")
Loop Until MotPropos = MotDePasse
- 14 -
1.4.5 Conclusion
Selon le problme traiter, vous aurez le choix entre ces diffrentes structures de contrle. Il
s'agira de choisir la plus lgante ou du moins, celle qui ne provoquera pas de dysfonctionnement
de votre programme.
Trouvez les erreurs dans les exemples suivants :
Exemple 1:
Dim VotreRponse As String
Rponse = "LaRponse"
Do
VotreRponse = InputBox("Donnez votre rponse")
Loop While VotreMot = Rponse
Exemple 2
Dim Cote As Single
Do Until Cote >= 0 And Cote <= 20
Cote = InputBox("Taper une note entre 0 et 20")
Loop
argument As Type, )
End Sub
Exemple
Private Sub Affectation( ByVal valeur1,valeur2 As integer)
Dim Chane As String
Chane = "La somme de " & valeur1 & " et " & valeur2 & " = "
valeur1 = valeur1 + valeur2
Chane = Chane & valeur1
MsgBox (Chane)
End Sub
Lappel de la procdure se fait soit en inscrivant call suivi du nom de la procdure, et des
paramtres lui transmettre, soit en crivant uniquement le nom de la procdure, suivi des
paramtres lui transmettre.
Dim X As integer
Dim Y As integer
Call Affectation (X, Y)
avec les parenthses
MsgBox (" Et X = " & X & " n'a pas chang ")
- 16 -
1.5.3 Fonction
Lors de la dclaration d'une fonction, la valeur qui doit tre retourne par celle-ci doit tre affecte
au nom de la fonction. La dclaration de la fonction se termine par les mots rservs End
function.
Syntaxe
Private function NomFonction( Argument As Type, ) As Type
Instruction1
Instruction2
NomFonction = RsultatDeLaFonction
End function
Exemple
Private function Somme( valeur1 As Integer, valeur2 As Integer ) As integer
Somme = Valeur1 + valeur2
End function
1.5.4 Transmission dun tableau comme argument dune procdure ou dune fonction
Pour transmettre un tableau comme argument dune fonction ou dune procdure, il suffit de
dclarer ( lintrieur des parenthses) une variable (le nom local du tableau) sans type, ni
dimension. Lors de lappel de la fonction ou de la procdure, VB donne cette variable le type et
la taille du tableau envoy. On peut aussi utiliser comme type de la variable locale, le type Variant.
Comme tout variable, un tableau peut tre envoy par valeur ou par rfrence.
Ci-aprs vous trouvez un exemple de dclaration dune procdure qui reoit un vecteur (passation
par rfrence: par dfaut).
Exemple
Private Sub Init(vec)
Dim i As Integer
For i = 1 To 10
vec(i) = 0
Next
End Sub
Lappel de la procdure avec un vecteur comme argument se fait comme pour toute variable.
Exemple
Dim vecteur(10) As Integer
Call Init(vecteur)
- 17 -
Le tableau qui suit rsume la porte des variables, des procdures et des fonctions en fonction du
type de dclaration (Dim, Private ou Public) et de lendroit o la dclaration a eu lieu.
Porte des variables, procdures et fonctions
Type
Variable
Variable
Dclar dans
Procdure vnementielle
Procdure / fonction gnrale du
formulaire
Variable
Procdure / fonction gnrale de
module
Variable
Partie gnrale dun formulaire
Variable
Partie gnrale dun module
Variable
Procdure vnementielle
Variable
Procdure gnrale dun formulaire
Variable
Procdure gnrale de module
Variable
Partie gnrale dun formulaire
Variable
Partie gnrale dun module
Procdure / Partie gnrale dun formulaire
fonction
Mot cl
Dim
Dim
Porte
Procdure vnementielle
Procdure / fonction gnrale
Dim
Dim/private
Dim/private
Private/Public
Private/Public
Private/Public
Public
Public
Private
Formulaire
Module
Interdit
Interdit
Interdit
Formulaire
Projet
Formulaire
- 18 -
Private
Module
Public
Formulaire
Public
Projet
Exemple
Abs (- 89) = 89
Atn(0) = 0
Cos(0) = 1
Exp(1) = 2.71828
Fix(-4.6) = -4
Fix(4.6) = 4
Donne la partie entire du nombre
Int(-4.6) = -5
Int et Fix ne diffrent que pour les valeurs suprieures 0 Int(4.6) = 4
Donne le logarithme naturel (base e)
Log(1) = 0
Donne le signe du nombre : 1, 0 ou 1
Sgn(- 89) -1
Donne le sinus du nombre
Sin(0) = 0
Donne la racine carre du nombre
Sqr(4) = 2
Donne la tangente de langle
Tan(0) = 0
Arrondi la valeur
Round(4.5) = 4
suprieure si (Nb - Int(Nb) ) > 5
Round(4.51) = 5
infrieure si (Nb - Int(Nb) ) <= 5
Exemple
Asc(A) = 65
Chr(65) = A
Len (Orange) =6
Lcase(ABC)= abc
Ucase(abc)= ABC
LTrim( Hello)=Hello
LTrim(Hello )=Hello
Trim( Hello )=Hello
Left(Auto,2)= Au
Right(Auto,2)= to
Mid(Locom, 3, 2) = co
InStr (Locom,o) = 2
InStr (Locom,a) = 0
Str(123) = 123
String(N, Car)
Space(N)
Val(Chane)
String(5, A) =
AAAAA
Gnre des espaces
Space(4) =
Convertit en nombre les chiffres dune chane (la Val(123) = 123
conversion sarrte au premier caractre qui
Val(123abcd) = 123
nest pas un chiffre, ou 0 sil ny a pas de
Val(abcd123) = 0
chiffre en tte)
Port
Limite la fonction
Description
Interruption de la fonction, sans excution des
instructions restantes
Limite la procdure Interruption de la procdure, sans excution des
instructions restantes
Limite la boucle For Interruption de la boucle, sans excution des
instructions restantes
Limite la boucle Do Interruption de la boucle, sans excution des
instructions restantes
- 20 -
VB est devenu grce ces atouts un langage de programmation trs utilis de par le monde,
supplantant un grand nombre de langages de programmation.
Pour rentrer dans le vif du sujet, nous allons regarder de quoi sera compose votre application
(programme) VB. Celle-ci sera compose, entre autres, de deux parties essentielles: un ou plusieurs
formulaires (la partie visuelle ou graphique) et le code VB (des formulaires et modules).
2.1 Environnement VB
2.1.1 Formulaires (Forms)
La partie visuelle de votre application ou projet est compose principalement dUN ou de
PLUSIEURS formulaires (Forms). Un formulaire nest rien dautre quune fentre (Window). Les
figures 1 et 2 prsentent des exemples de formulaires.
- 21 -
Pratique.
Pour dmarrer VB, double cliquez sur licne VB6.exe
La fentre qui apparat alors lcran vous propose soit douvrir un projet existant, soit de crer un
nouveau projet (new project) (figure 3).
Lorsque vous faites un nouveau projet, il vous reste choisir le type de projet que vous allez crer
(Visual Basic Projects sur la gauche de lcran), le modle utilis (Application Windows) ainsi
que le nom associ ce projet et lemplacement sur le disque o seront stockes ces informations
(attention, sur les ordinateurs de lIAG, vous ne pouvez enregistrer que sur le disque L)
- 23 -
Il est galement toujours possible de crer un nouveau projet en slectionnant dans la barre
du menu VB, File, New Project.
Figure 5 : Projet nouvellement cr, compos dun seul formulaire vierge (Form1)
VB va crer un projet compos dun formulaire portant un nom gnr automatiquement : Form1,
voir figure 5.
Lenvironnement VB est compos de trois types dlments :
une zone de barre de menus et de barres doutils,
une zone de travail central
une multitude de fentres qui gravitent autour, constituant les diffrents outils mis votre
disposition pour travailler
2.1.2 Lexplorateur des solutions
Lexplorateur des solutions prsente de manire arborescence et visuelle les objets composant
lapplication charge. La figure 6(a) montre que le projet de nom WindowsApplication8 est
compos dun seul formulaire de nom Form1.
- 24 -
Name = Form1, nom logique utilis pour rfrencer lobjet dans du code VB.
BackColor = &H800000, couleur de fond de lobjet Form1.
Text = Form1, nom qui apparat visuellement sur lobjet, celui-ci peut tre diffrent de la
proprit Name.
Proprits de lobjet Form1 (un formulaire)
Proprits tries par ordre alphabtique
- 26 -
Figure 8 : Toolbox
Contrle
Nom du contrle
Label
Text Box
Button
ListBox
ComboBox
PictureBox
RadioButton
Check Box
GroupBox
Utilit
Afficher un texte statique : un libell
Afficher et rentrer une valeur au clavier
Lancer lexcution une procdure vnementielle
Afficher une liste statique de valeur
Combiner lutilit des contrles TextBox et ListBox
Afficher une image dans un cadre. Celui-ci peut tre
redimensionn en fonction de limage (Autosize = True)
Slectionner une option. Si utilis en plusieurs instances
(Option Button), une seule peut tre choisie
Slectionner une option. Si utilis en plusieurs instances
(Check Box), une ou plusieurs peuvent tre choisies
Crer une fentre au sein dun formulaire et crer un groupe
de contrles.
Les contrles standards dans VB se trouvent dans la Bote outils (ToolBox), voir figure 8.
Dautres contrles plus labors (Components) peuvent tre ajouts dans la bote outils, en
slectionnant dans la barre du menu : Project, Add Components.
Comment placer un contrle sur un formulaire ?
- 27 -
Proprit
Text
Name
Text
Text
Text
Valeur
FB
Franc_Belge
Euro :
Convertir
Sortir
Modifiez leurs positions et leurs proprits pour que le formulaire apparaisse comme suit :
Pour arrter lexcution de votre programme, cliquez sur la petite croix situe en haut
droite du formulaire ou cliquez sur le bouton End.
End Sub
Un ensemble dvnements peut tre rattach chaque type dobjet. Ci-dessous quelques exemples
dvnements :
Evnement
Click
DblClick
Load
Change
MouseDown
3
Se produit quand
On clique sur le bouton gauche de la souris
On double clique sur le bouton gauche de la souris
Lobjet NomObjet est charg
La valeur stocke par lobjet Nomobjet change
On clique sur la souris sans relcher le bouton
Notez quune procdure vnementielle peut tre aussi appele dans du code comme une procdure classique
- 29 -
MouseUp
MouseMove
KeyDown
MouseUp
MousePress
A chaque formulaire sera associ un fichier logique portant le nom Nom_Formulaire, voir figure
10. Celui-ci contiendra le code VB des diffrentes procdures relatives aux vnements associs au
formulaire en question ainsi quaux diffrents objets qui lui sont rattachs.
Excutez votre programme pour noter leffet de linitialisation. Y-a-t il moyen dinitialiser sans
crire du code ?
Pratique.
a. On dsire que, lorsque lutilisateur clique sur le bouton Convertir (figure 9), une
procdure sexcute et convertisse le montant dans la zone Franc_Belge et donne le
montant quivalent en Euro (dans la zone label).
b. On dsire que, lorsque lutilisateur clique sur le bouton Quitter (figure 9), une procdure
sexcute et ferme la fentre. Linstruction End ferme une fentre.
Excutez votre programme, introduisez un montant en Franc Belge et appuyez
Convertir.
sur
Si ces fentres sont fermes vous pouvez toujours les ouvrir en slectionnant dans le barre
du menu, View (Toolbox, Project Explorer, Properties Windows).
En rsum
Les objets manipuls sont appels des contrles (bouton de commande, bote de dialogue,
zone de texte, zone d'image, etc. )
L'interface utilisateur cre est multifentre. Une fentre est appele un formulaire
(Form). Un formulaire est lui-mme un contrle.
Chaque contrle peut ragir des vnements qui lancent des procdures (ddies) codes
en VB.
Des modules gnraux de code peuvent porter sur tout le programme. Ces modules sont
rutilisables.
- 32 -
2.3 Exercices
a. Ralisez les parties pratiques des sous-sections prcdentes
b. Modifiez le programme de conversion pour quil puisse convertir dans les sens FB->Euro et
Euro->FB. Votre formulaire doit apparatre comme suit :
- 33 -
Exemple
Form1.Showdialog
La figure 13 montre lditeur des classes (objets) VB. La colonne de droite prsente les mthodes
et les proprits de la classe slectionne. La fentre du bas donne une explication succincte de la
classe, proprit ou mthode slectionne. Pour ouvrir lditeur des classes VB, il suffit de cliquer
sur le bouton Object Browser.
- 35 -
3.2.2 Label
Le contrle Label permet dafficher un texte statique. La proprit (de type String) charge de
stocker ce texte (une chane de caractres) est la proprit Text. Celui-ci sera affich lors de
laffichage du formulaire dans lequel il est plac. Linstruction qui suit modifie le texte
correspondant au contrle Label de nom Label1.
Exemple
Label1.Text = lquivalent en Euro = 15.689,89
3.2.3 TextBox
Le contrle Textbox permet dafficher et de saisir un texte au clavier. La proprit (de type String)
charge de stocker ce texte (une chane de caractres) est la proprit Text. Celui-ci sera affich
lors de laffichage du formulaire dans lequel il est plac et modifiable par lutilisateur.
Linstruction qui suit modifie le texte correspondant au contrle TextBox de nom Text1.
Exemple
Text1.Text = Entez votre texte ici
La figure 9 montre des exemples des contrles TextBox et Label.
3.2.4 RadioButton
Le contrle RadioButton combine deux fonctionnalits. Il permet de slectionner une option
prsente par un texte statique (un contrle Label). Le contrle RadioButton, utilis sur un
formulaire en au moins deux instances, permet de faire une seule slection parmi les diffrents
choix proposs (parmi les diffrents RadioButton affichs). La proprit du contrle qui stock ltat
de celui-ci est la proprit Enabled, de type Boolean. La valeur True veut dire que loption est
choisie. Notez bien que VB se charge de mettre jour la proprit Enabled une fois quune
slection est faite (mettre True la proprit Enabled du bouton slectionn et False aux autres).
Exemple
OptionButton1.Enabled = True
OptionButton2. Enabled = False
Pratique. Dans lexemple de la figure 14, lutilisateur peut soit convertir du FB vers leuro ou
inversement. Les contrles ont t dclars comme suit :
Contrle
TextBox
Label
Label
Label
OptionButton
OptionButton
CommandButton
Name
Montant
Label1
Label2
Label3
OptionEuro
OptionFB
Quitter
Caption
Equivalent en Euro = 1
Entrez le montant convertir
Montant convertir en
Euro
FB
Quitter
- 36 -
- 37 -
Notez que cest lutilisateur de grer la relation entre les diffrents choix en programmant la
procdure vnementielle Click().
Exemple
Private Sub Check1_CheckedChanged()
If Check1.checked = true Then
Check3.enabled = false
Else
Check3.Checked = true
End If
End Sub
me
devient disponible
3.2.7 GroupBox
Un GroupBox est une fentre. Cest un contrle qui peut tre plac sur un formulaire pour crer un
groupe de contrles. Tout contrle plac sur le GroupBox (lui-mme plac sur un formulaire)
appartiendra ce groupe.
On a vu dans le cas du contrle RadioButton quune seule option peut tre choisie. Cependant, si
on veut prsenter lutilisateur deux groupes de choix dans lesquels il peut slectionner deux choix
non exclusifs, un dans le premier groupe et un dans le second, ceci nest pas possible. Pour
rsoudre ce problme, il suffit de placer lun des groupes doptions dans un GroupBox, lautre
appartiendra au formulaire.
Notez que les GroupBox peuvent tre utiliss pour crer un groupe de contrles de diffrents types,
TextBox, RadioButton, Label, etc.
La proprit Text permet de donner un titre au GroupBox.
Pratique.
Dans lexemple de la figure 18, deux GroupBox sont utiliss : Destination et Moyen de transport.
Chaque GroupBox intgre un groupe doptions. Ainsi, lutilisateur peut choisir une seule ville et un
seul moyen de transport.
- 39 -
Le code correspondant ce programme est prsent dans la figure 19. Les contrles ont t
dclars comme suit :
Contrle
Name
Text
Label
CheckBox
CheckBox
CheckBox
CheckBox
CommandButton
CommandButton
Label1
Choissisez les villes que vous allez visiter
C_Paris
Paris
C_Tokyo
Tokyo
C_SanFranciscoSan Francisco
C_Sydney
Sydney
Confirmer
Confirmer
Quitter
Quitter
- 40 -
3.2.8 Exercices
a. Programmez lapplication qui permet de raliser l'application prsente figure 14. Exemple
dutilisation du contrle RadioButton.
b. Sachant qu1 US$ cote 38.5168 FB et qu1 FF cote 6.1498 FB, modifiez le code de lexemple
pour quon puisse aussi avoir la conversion en US$ et en FF. Votre application doit avoir lallure
de la figure 20.
- 41 -
3.2.9 ListBox
Un ListBox est un contrle qui permet de proposer une liste de valeurs parmi lesquelles lutilisateur
ne peut en choisir quune seule. La dite liste est stocke dans la proprit Items. La figure
21 montre un exemple dutilisation du contrle ListBot.
Pour ajouter une ligne (un lment) dans la liste, il faut cliquer sur les 3 petits points
- 42 -
Figure 23: La proprit Items dun contrle ComboBox ou dun contrle ListBox.
Quelques proprits et mthodes pour grer les ListBox ou ComboBox
Syntaxe
: ajoute la valeur valeur_i dans la proprit List
Nom_List_Box.Items.Remove(valeur_i)
: enlve llment valeur_i de List
Nom_List_Box.Items.RemoveAt(i)
: enlve llment dindice i de List
Nom_List_Box.Items.Clear
: enlve tous les lments de List
Nom_List_Box.Items.Count
: donne le nombre dlments dans List
Nom_List_Box.items(i)
: retourne litem dindice i de la L ist
ListIndex 0 = 1er lment, 1 = 2er lment,
Nom_List_Box.SelectedItem
: retourne llment slectionn
Nom_List_Box.Sorted
: = True, maintient la liste trie par ordre
alphabtique croissant
Nom_List_Box.Items.Add(valeur_i)
Exemples
ListBox1.Items.Add ("Paris")
List1. Items.Add(text1.text)
Text1.Text = List1.SelectedItem
List1.Items.Remove(List1.SelectedItem)
Pratique. Lexemple de la figure 24 utilise un ComboList pour stocker une liste de villes.
Lutilisateur peut manipuler dynamiquement la dite liste. Le code correspondant ce programme
est prsent dans la figure 25.
La fonction Existe(Ville) vrifie si Ville se trouve dans la liste des villes. Une ville ne peut tre
ajoute que si elle nexiste pas. Une ville ne peut tre supprime quaprs confirmation de
lutilisateur, cest--dire, celui-ci a appuy sur OK. La fonction MsgBox, utilise avec loption
OkCancel, affiche les boutons Ok et Cancel. Elle retourne 1 si on appuie sur OK et 2 si on appuie
sur Cancel.
3.2.12 Exercices
a. Programmez le programme qui permet de raliser la figure 24: Exemple manipulant la proprit
List du contrle ComboList
b. Dans le mme esprit que lexercice prcdent, crez un programme qui permet de convertir un
montant en devise vers une autre divise. Votre application doit avoir lallure de la figure 26.
Utilisez trois contrles ListBox : DeviseB, DeviseC et TauxC. DeviseB et DeviseC serviront,
respectivement, slectionner la devise de base et la devise de conversion. TauxC servira stocker
les taux de change des diffrentes devises par rapport une devise de rfrence (l'Euro). Notez
bien que les trois contrles ne doivent pas tre tris, ainsi la devise dindice i du contrle DevideC
correspond au taux i du contrle TauxC.
- 45 -
c. Modifiez votre programme pour que les diffrentes listes soient dynamiques, permettant
lutilisateur dajouter ou de supprimer une devise.
- 46 -
3.2.13 Solution
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
DeviseB.SelectedItem = DeviseB.Items(0)
DeviseC.SelectedItem = DeviseC.Items(1)
TauxC.SelectedItem = TauxC.Items(1)
Label1.Text = "le montant en " & DeviseB.SelectedItem
Label2.Text = "vaut 40.3399 " & DeviseC.SelectedItem
montant.Text = 1
End Sub
Private Sub Convertir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Convertir.Click
Dim MontantConverti, mont As Double
mont = Double.Parse(montant.Text)
MontantConverti = (mont / TauxC.Items(DeviseB.SelectedIndex)) *
TauxC.Items(DeviseC.SelectedIndex)
Label1.Text = "le montant en " & DeviseB.SelectedItem
Label2.Text = "vaut " & MontantConverti & " " & DeviseC.SelectedItem
End Sub
Private Function existe(ByVal Devise As String) As Boolean
Dim var As Boolean
Dim i As Short
var = False
For i = 0 To (DeviseB.Items.Count - 1)
If DeviseB.Items(i) = Devise Then
var = True
Exit For
End If
Next
existe = var
End Function
Private Sub Ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Ajouter.Click
Dim NouvelleDevise As String
Dim NouveauTaux As Short
NouvelleDevise = InputBox("Entrez la nouvelle devise")
If NouvelleDevise <> "" And Not existe(NouvelleDevise) Then
NouveauTaux = InputBox("Entrez le nouveai taux")
If NouveauTaux > 0 Then
TauxC.Items.Add(NouveauTaux)
DeviseC.Items.Add(NouvelleDevise)
DeviseB.Items.Add(NouvelleDevise)
End If
Else
MsgBox("Entrez une autre devise, celle-ci est dj rpertorie")
End If
End Sub
Private Sub Supprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Supprimer.Click
Dim Indice As Integer
If MsgBox("Etes-vous bien sur de vouloir supprimer " & DeviseB.SelectedItem & "
?", MessageBoxButtons.OKCancel) = 1 Then
Indice = DeviseB.SelectedIndex
TauxC.Items.RemoveAt(Indice)
DeviseB.Items.Remove(DeviseB.SelectedItem)
- 47 -
- 48 -
- 49 -
- 50 -
Notez que VB permet de travailler avec dautres types de base de donnes en utilisant des outils plus avancs, mais
qui sortent du cadre de ce cours.
- 51 -
- 52 -
- 53 -
Requtes SQL
Soit le schma relationnel suivant:
Requte Statique:
Quels sont les produits (nomProduit, Prix) achets par le client numro 3
SELECT
FROM
WHERE
Produit.NomProduit, Produit.Prix
Client, Commande, Constitution, Produit
(Client.N_Client = Commande.N_Client) And
(Commande.N_Commande = Constitution.N_Commande) And
(Constitution.N_Produit = Produit.N_Produit) And
(Client.NomClient = 3 );
Ceci est une requte statique, c'est--dire que cette requte nadmet pas de paramtre qui
changerait la valeur du rsultat
Requte Dynamique:
Quels sont les produits (nomProduit, Prix) achets par le client dont le numro est donn en
paramtre
SELECT
FROM
WHERE
Produit.NomProduit, Produit.Prix
Client, Commande, Constitution, Produit
(Client.N_Client = Commande.N_Client) And
(Commande.N_Commande = Constitution.N_Commande) And
(Constitution.N_Produit = Produit.N_Produit) And
(Client.NomClient = ? );
Ceci est une requte dynamique, car le numro du client est donn en paramtre la
requte (le paramtre est reprsent par le symbole ? dans la requte SQL)
- La fentre ci-dessous montre comment construire cette requte avec le Query Builder de
Visual Basic .Net.
Le query Builder :
- Slectionnez les tables sur lesquelles
vous voulez travailler
Exemple : Nous avons spcifi la requte suivante : Quel est le prix et numro du produit TV
Cela se traduit, en Langage SQL, par:
Produit
souhaite accder).
- Cliquez Sur le lien generate pour faire apparatre
une fentre de dialogue
Livre
Code-Livre
est un exemplaire du
Aut eur
Titre
1..1
Edition
Exemplaire
a l'exemplaire N-Exemplaire
0..n Localisation
Emprunte
Code-Emprunte
Date
Date-De-Retour
Personne
Code-P ersonne
Es t emprunt par
Nom
Prenom
0..n
Adresse
Livre
Code-Livre
Emprunte Auteur
Titre
0..n
Edition
Emprunte.Code-Personne Personne.Code-Personne
Emprunte.Code-Livre Livre.Code-Livre
Mthode 1:
Personne
Code-P ers onne
Nom
Prenom
Adresse
Professeur
Salaire
Etudiant
Noma
Note-Moyenne
{Professeur, Etudiant}
Mthode 2:
Personne
Code-P ers onne
Nom
Prenom
Adresse
Professeur
Salaire
Etudiant
Noma
Note-Moyenne
Crer une table pour chaque sous type, chaque table se compose des attributs
gnriques et dattributs spcifiques
Voiture
NoPlaque : Integer
Marque : String
Roue
NoSerie : Long
Type : String
Crer une table pour les classes Voiture et Roue, et lier les deux tables par
une association 1 N