Cours 1
Cours 1
Cours 1
NET :
TUTORIAL
Poly issu de https://www.cours-gratuit.com/cours-visual-basic/introduction-a-la-
creation-des-application-avec-visual-basic-6
Visual Basic .NET : tutorial
-3-
Visual Basic .NET : tutorial
0. Introduction
Pré-requis :
Ce tutorial suppose que vous soyez familier avec un langage structuré de programmation (comme le
Pascal). Certains concepts seront cependant, brièvement rappelés.
-4-
Visual Basic .NET : tutorial
Contenu de ce tutorial:
Ce tutorial vous présente Visual Basic (VB) .NET de manière succincte. Il vous introduit à la
programmation multi-fenêtrée sous MS Windows en vous exposant les outils de base de VB. Il vous
introduit à la programmation de bases de donnée.
Limites de ce tutorial:
Ce tutorial n’est pas un manuel de référence VB .NET. Pour des fonctionnalités plus avancées,
référez vous à d’autres ressources, notamment à des sites Web sur internet traitant de VB .NET.
Plan de travail
Le tutorial est composé six parties qui peuvent être étudiées en six (semaines) séances. A chacune de
ces parties correspond une série d’exercices, qu’il faut réaliser et bien assimiler avant de passer à la
partie suivante.
Chaque partie nécessite approximativement deux heures de travail sur un ordinateur, pendant
lesquelles vous devez réaliser 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 présentés.
• Partie 2 : Section 3. Les contrôles (toutes les sous-sections jusqu ’à la sous-section 3.2.7)
• Partie 3 : Section 3. Les contrôles (toutes les sous-sections jusqu ’à la sous-section 3.2.14)
Vous introduit à la programmation des contrôles utilisant des listes : ListBox, ComboBox et
Menu.
-5-
Visual Basic .NET : tutorial
Dans cette section nous allons présenter les structures de base de la programmation en VB. Nous
allons d’abord présenter la notion de variable, les différents types standards, les opérateurs
arithmétiques, les structures usuelles: structures de contrôles (Instructions conditionnelles et
répétitives), les structures de données élaborées (vecteurs et matrices) et finalement, les procédures et
les fonctions.
• Cette première section présente les structures théoriques de VB. Il est conseillé de la parcourir
une première fois (sans trop insister) pour avoir une idée 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 intéresse.
• Votre application VB sera composée d’un ou plusieurs fichiers (formulaires et modules)
contenant du code VB.
• Il n’existe pas de séparateurs d’instructions 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, Valeur Variable et
vALE UR vARIABLE représentent la même variable. En fait, VB est ‘très intelligent’, en ce
sens qu’il vous réécrira (automatiquement) la variable dans le format de caractères que vous
avez utilisé lors de sa déclaration.
Les variables sont nécessaires pour stocker (conserver) une valeur dynamique et réutilisable. C'
est en
fait une simple zone mémoire qui porte un nom choisi par le programmeur. Le nom de la variable est
une adresse mémoire. Si l’on veut une programmation cohérente, il faut déclarer chaque variable en
précisant le type de celle-ci. La déclaration se fait avec le mot réservé Dim.
Syntaxe
Dim NomVariable As Type
Par défaut, le compilateur VB considère que toute variable qui apparaît doit avoir été déclarée.
Toutefois, si vous ajoutez dans votre code la ligne
Option Explicit Off
-6-
Visual Basic .NET : tutorial
VB sera permissif et vous autorisera à utiliser des variables sans les déclarer. Prenez la très bonne
habitude de touj ours déclarer vos variables.
Pour éviter tout problème il est préférable d’initialiser les variables déclarées.
Exemples
Le langage VB utilise plusieurs types de données dont les plus utilisés sont le type String (chaîne de
caractères), le type Integer (entier) et le type Single (décimal). Les types standards de données en
VB sont résumés dans le tableau ci-dessous.
VB reconnaît les opérateurs arithmétiques usuels qui sont résumés dans le tableau suivant :
-7-
Visual Basic .NET : tutorial
Opérateurs arithmétiques
Si, dans une expression arithmétique plusieurs opérateurs sont utilisés, les priorités sont résolues
comme indiqué dans le tableau qui suit :
Si la condition se trouvant après le mot réservé If est vraie, les instructions qui suivent le mot réservé
Then sont exécutées sinon, ce sont celles qui suivent le mot réservé Else qui sont exécutées.
L’instruction If se termine (obligatoirement) avec les mots réservés End If.
Forme simple :
Syntaxe
If condition(s) Then
Instruction11
Instruction12 …
Else Instruction2 1
Instruction22
…
End If
-8-
Visual Basic .NET : tutorial
Exemple
If Moyenne >= 12 Then
Admis = Admis + 1
MsgBox(" Candidat admis ") ‘ affiche une fenêtre avec le message indiqué
Else Ajournés = Ajournés + 1
MsgBox(" Candidat ajourné ") End
If
Forme imbriquée
Syntaxe
If
condition(s) Then
Instruction11
If condition Then
Instruction12
Else if condition Then
Instruction13
Else
Instruction14
End If
…
Else
Instruction2 1
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
Opérateurs de comparaison
Si plusieurs conditions doivent être testées, celles-ci doivent être combinées avec des opérateurs
logiques. VB accepte les opérateurs logiques suivants: AND, OR, NOT et XOR. La signification de
chacun d’eux est présentée dans le tableau qui suit:
Opérateurs logiques
Syntaxe
Exemple
L’instruction Select Case est une instruction conditionnelle alternative, c’est-à-dire qu’une
expression peut être testée par rapport à plusieurs valeurs possibles.
Syntaxe
Select Case expression
Case Liste_Valeurs_1
Instruction11
Instruction12
…
Case Liste_Valeurs_2
Instruction21
… …
Else Case
InstructionElse1
InstructionElse2
…
End Select
Les instructions se trouvant après ‘Case Liste_Valeurs_i’ seront exécutées si ‘expression = à l’un
des éléments de Liste_Valeurs_i’, i = 1, 2, 3, …. Sinon, les instructions se trouvant après ‘Else Case’
seront exécutées. L iste_Valeurs_i peut être :
- 10 -
Visual Basic .NET : tutorial
Exemple
Select Case CodeASCIICaractère
Case 65, 69, 73, 79, 85
MsgBox(" C’est une voyelle ")
Case 66 To 90
MsgBox(" C’est une consonne ")
Case Else
MsgBox(" Ce n’est 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 d’éléments de même type. L’accès à un élément précis se fait
à l’aide d’un indice (valeur ou variable entière). En VB, pour un vecteur déclaré avec une dimension
(N), le premier élément a l’indice 0, le deuxième a l’indice 2, le troisième a l’indice 3, …, le dernier a
l’indice N1.
Syntaxe
Cette instruction déclare un vecteur Nom Vecteur de taille N+ 1. Pour accéder au ième élément du
vecteur, il faut préciser l’indice entre parenthèses comme suit : NomVecteur(i-1), i doit être compris
dans l’intervalle [0, N].
Type Vecteur est un type standard (Boolean, Integer, String, etc.) ou tout autre type (type d’objet)
définie dans VB ou dans votre application.
Exemple
Numéro 1 2 3 4 5 …
Température 6 5,5 7 11,5 15 …
Syntaxe
Exemple
1Pour éviter toute confusion (et garder vos bonnes habitudes Pascal), déclarez toujours le vecteur avec une taille (N) et
ignorez l’élément à l’indice 0. Le premier élément ne sera jamais utilisé.
- 11 -
Visual Basic .NET : tutorial
Numéro 65 66 67 … 89 90
Majuscule A B C … Y Z
VB permet de travailler avec des tableaux de deux, trois, quatre, dimensions ou plus
Exemple d'
un tableau à deux dimensions:
Les instructions répétitives sont utilisées pour boucler sur une suite d’instructions.
Syntaxe
Le test (Compteur = Début) est effectué au début de la boucle. La variable numérique Compteur est
incrémentée à chaque fin de boucle du nombre indiqué par l’incrément. Si l’Incrément (le pas par
lequel Compteur augmente à chaque boucle) n’est pas spécifié, il est fixé par défaut à 1.
Si la valeur de Fin est inférieure à la valeur de Début, l’incrément est négatif. La valeur de Compteur
peut être utilisée (par exemple, pour numéroter le passage dans la boucle) mais ne doit pas être
modifiée dans le corps de la boucle.
Exemple
Dim i As Integer
Dim Chaîne As String
Dim TabInitial(1 To 12) As Single
For i = 1 To 12
Chaîne = InputBox("Température N° " & Compteur)
2 Aussi, pour éviter toute confusion (et garder vos bonnes habitudes Pascal), déclarez toujours la matrice avec une
Test antérieur
Syntaxe
Do While Condition
Instructions
[... Exit Do]
[Instructions]
Loop
La condition est ici testée au début, c' est-à-dire à l’entrée de la boucle. Avec While (tant que), la
boucle est répétée tant que la condition est vraie. Si la condition n’est pas vraie au départ, les
instructions de la boucle ne sont pas exécutées.
Exemple
Loop
Cela présuppose que MotProposé soit initialisé par une valeur autre que MotDePasse (par exemple, la
valeur par défaut "").
Test postérieur
Syntaxe
Do
Instructions
[... Exit Do]
[Instructions]
Loop While Condition
La condition est alors testée à la fin de la boucle. Avec While (tant que), la boucle est répétée tant
que la condition est vraie. Les instructions de la boucle sont donc exécutées au moins une fois.
Exemple
Do
MotProposé = InputBox("Donnez votre mot de passe")
Loop While MotProposé <> MotDePasse
- 13 -
Visual Basic .NET : tutorial
1.4.3 Do Until … Loop / Do … Loop Until …
Test antérieur
Syntaxe
Do Until Condition
Instructions
[... Exit Do]
[Instructions]
Loop
Exemple
Cela présuppose que MotProposé soit initialisé par une valeur autre que MotDePasse (par exemple, la
valeur par défaut "").
Test postérieur
Syntaxe
Do
Instructions
[... Exit Do]
[Instructions]
Loop Until Condition
La condition est alors testée à la fin de la boucle. Les instructions de la boucle sont donc exécutées au
moins une fois. Avec Until (jusqu' à), la boucle est répétée jusqu'
à ce que la condition soit vraie.
Exemple
Do
MotProposé = InputBox("Donnez votre mot de passe")
Loop Until MotProposé = MotDePasse
- 14 -
Visual Basic .NET : tutorial
1.4.4 For … Each … Next
C’est une extension de la boucle For ... To … Next.
Syntaxe
For Each Elément In Ensemble
Instructions
[ ... Exit For]
[Instructions]
Next [Elément]
Ensemble est le plus souvent un tableau.
Exemple
Dim TabHasard(100) As Integer
Dim Cellule As Integer
Dim Réponse As String
Randomize ‘initialise le générateur de nombres au hasard
For Each Cellule In TabHasard
Cellule = Rnd * 100 + 1 ‘génère un nombre au hasard entre 1 et 100
Next
For Each Cellule In TabHasard
Réponse = Réponse & Cellule & " " ‘Concaténation de chaînes de caractères
Next
MsgBox (Réponse)
1.4.5 Conclusion
Selon le problème à traiter, vous aurez le choix entre ces différentes structures de contrôle. Il s'
agira
de choisir la plus élégante ou du moins, celle qui ne provoquera pas de dysfonctionnement de votre
programme.
Trouvez les erreurs dans les exemples suivants :
Exemple 1:
Dim VotreRéponse As String
Réponse = "LaRéponse"
Do
VotreRéponse = InputBox("Donnez votre réponse")
Loop While VotreMot = Réponse
Exemple 2
Dim Cote As Single
Do Until Cote >= 0 And Cote <= 20
Cote = InputBox("Taper une note entre 0 et 20")
Loop
Comme dans le cas du langage Pascal, VB .NET permet l’utilisation des procédures et des fonctions
avec ou sans paramètres. Rappelez vous que la grande différence entre la procédure et la fonction est
que cette dernière retourne une valeur lorsqu’elle est appelée.
Lors de l’appel de la procédure, un paramètre peut être transmis soit par valeur, soit par référence
(variable).
- 15 -
Visual Basic .NET : tutorial
Pour transmettre un paramètre par valeur, celui-ci doit être obligatoirement précédé par le mot
réservé ByVal. Sinon, il est considéré de passer par référence.
Syntaxe
Private Sub NomProcédure( ByVal argument As Type, … )
Instruction1
Instruction2 …
End Sub
Exemple
Private Sub Affectation( ByVal valeur1,valeur2 As
integer) Dim Chaîne As String
Chaîne = "La somme de " & valeur1 & " et " & valeur2 & "= "
valeur1 = valeur1 + valeur2
Chaîne = Chaîne & valeur1
MsgBox (Chaîne)
End Sub
L’appel de la procédure se fait soit en inscrivant call suivi du nom de la procédure, et des paramètres
à lui transmettre, soit en écrivant uniquement le nom de la procédure, suivi des paramètres à lui
transmettre.
Si ByVal n’est pas précisé ou si le paramètre est précédé par le mot réservé ByRef, la variable est
est-à-dire transmise en tant que variable). Ainsi, toute modification de la
transmise par référence (c'
variable locale correspondante dans la procédure se répercute sur la variable utilisée lors de l’appel.
VB suppose que la transmission se fait par référence si le mot réservé ByVal est omis.
Exemple
Exemple
- 16 -
Visual Basic .NET : tutorial
1.5.3 Fonction
Syntaxe
Private function NomFonction( Argument As Type, … ) As Type
Instruction1
Instruction2
…
NomFonction = RésultatDeLaFonction
End function
Exemple
Private function Somme( valeur1 As Integer, valeur2 As Integer ) As integer
Somme = Valeur1 + valeur2
End function
Exemple
Dim X As Integer, Y As Integer, Z As Integer
X = 10
Y = 20
Z = somme(X, Y)
1.5.4 Transmission d’un tableau comme argument d’une procédure ou d’une fonction
Pour transmettre un tableau comme argument d’une fonction ou d’une procédure, il suffit de déclarer
(à l’intérieur des parenthèses) une variable (le nom local du tableau) sans type, ni dimension. Lors de
l’appel de la fonction ou de la procédure, 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 référence.
Ci-après vous trouvez un exemple de déclaration d’une procédure qui reçoit un vecteur (passation par
référence: par défaut).
L’appel de la procédure avec un vecteur comme argument se fait comme pour toute variable.
Exemple
Dim vecteur(10) As Integer
Call Init (vecteur)
- 17 -
Visual Basic .NET : tutorial
Une application VB peut être composée d’un ou de plusieurs formulaires et d’un ou de plusieurs
modules. Dans chaque module ou formulaire, des variables, des procédures et/ou des fonctions
peuvent être déclarées. Dans chaque procédure et fonction, des variables locales peuvent être
déclarées.
Une fonction ou une procédure peut être déclarée soit Privée (Private), soit Publique (Public). Le
sens de Privé ou Public se comprend par rapport au formulaire ou au module dans lesquelles elles
sont déclarées.
Se pose alors le problème de la portée des variables, des fonctions et des procédures.
Si une variable est déclarée au début de la procédure (fonction) qui la manipule (Dim ou Private),
elle n’est alors valide que pour cette procédure (fonction). L' existence et la valeur de la variable
disparaissent avec l'instruction End Sub (End Function). Toute référence à cette variable en dehors
de cette procédure (fonction) provoquera une erreur de compilation. Si une variable est déclarée dans
la section des déclarations d’un module (formulaire), elle est valide dans toutes les procédures
(fonctions) du module (formulaire).
Une variable peut aussi être déclarée Public ou Global et sera alors valide pour toute l’application.
Exemple :
Le tableau qui suit résume la portée des variables, des procédures et des fonctions en fonction du type
de déclaration (Dim, Private ou Public) et de l’endroit où la déclaration a eu lieu.
- 18 -
Visual Basic .NET : tutorial
Procédure / Partie générale d’un module Private Module
fonction
Procédure / Partie générale d’un formulaire Public Formulaire
fonction
Procédure / Partie générale d’un module Public Projet
fonction
Les deux tableaux suivant résument quelques fonctions mathématiques et quelques fonctions pour la
manipulation des chaînes de caractères.
- 19 -
Visual Basic .NET : tutorial
String(N, Car) Génère N fois le caractère spécifié String(5, “A”) =
“AAAAA”
Space(N) Génère des espaces Space(4) = “ ”
Val(Chaîne) Convertit en nombre les chiffres d’une chaîne (la Val(“123”) = 123
conversion s ’arrête au premier caractère qui Val(“1 23abcd”) = 123
n’est pas un chiffre, ou à 0 s’il n’y a pas de Val(“abcd123”) = 0
chiffre en tête)
Pour interrompre l’exécution d’une séquence d’instructions (dans une fonction, procédure ou boucle
For), on utilise l’instruction Exit. Le tableau suivant résume son utilisation.
- 20 -
Visual Basic .NET : tutorial
La programmation en Visual Basic (VB) se fait principalement (comme le nom du langage l’indique)
de manière visuelle. Vous serez cependant souvent amenés à (mettre la main à la pâte et) programmer
en écrivant du code VB.
VB est devenu grâce à ces atouts un langage de programmation très 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 composée votre application
(programme) VB. Celle-ci sera composée, 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
- 21 -
Visual Basic .NET : tutorial
Pratique.
Pour démarrer VB, double cliquez sur l’icône VB6.exe
La fenêtre qui apparaît alors à l’écran vous propose soit d’ouvrir un projet existant, soit de créer un
nouveau projet (new project) (figure 3).
- 22 -
Visual Basic .NET : tutorial
Lorsque vous faites un nouveau projet, il vous reste à choisir le type de projet que vous allez créer
(Visual Basic Projects – sur la gauche de l’écran), le modèle utilisé (Application Windows) ainsi que
le nom associé à ce projet et l’emplacement sur le disque où seront stockées ces informations
(attention, sur les ordinateurs de l’IAG, vous ne pouvez enregistrer que sur le disque L)
- 23 -
Visual Basic .NET : tutorial
Il est également toujours possible de créer un nouveau projet en sélectionnant dans la barre
du menu VB, File, New Project.
Figure 5 : Projet nouvellement créé, composé d’un seul formulaire vierge (Form 1)
VB va créer un projet composé d’un formulaire portant un nom généré automatiquement : Form1,
voir figure 5.
L’explorateur des solutions présente de manière arborescence et visuelle les objets composant
l’application chargée. La figure 6(a) montre que le projet de nom ‘WindowsApplication8’ est composé
d’un seul formulaire de nom ‘Form 1’.
- 24 -
Visual Basic .NET : tutorial
Les ‘Forms’ constitueront les objets principaux qui composeront vos projets dans ce cours. Notez
qu’un projet peut être composé d’un ou de plusieurs formulaires. Dans ce dernier cas, il faut préciser
à VB le formulaire qui sera chargé en premier, en cliquant sur le nom du projet avec le bouton droit
de la souris et ensuite sur Properties, voir figure 6(b) où le projet est composé de deux formulaires,
Form 1 et Form2.
La fenêtre Properties présente les propriétés (ou attributs) de l’objet sélectionné. La figure 6 présente
les propriétés de l’objet (sélectionné) Form 1.
- 25 -
Visual Basic .NET : tutorial
• Name = Form1, nom logique utilisé pour référencer l’objet dans du code VB.
• BackColor = &H800000, couleur de fond de l’objet Form1.
• Text = Form 1, nom qui apparaît visuellement sur l’objet, celui-ci peut être différent de la
propriété Name.
Notez que la valeur de chaque propriété peut être modifiée en cliquant sur la colonne de droite de la
fenêtre Properties.
- 26 -
Visual Basic .NET : tutorial
2.1.4 La boîte à outils et les contrôles standards
Figure 8 : Toolbox
Les contrôles standards dans VB se trouvent dans la Boîte à outils (ToolBox), voir figure 8. D’autres
contrôles plus élaborés (Components) peuvent être ajoutés dans la boîte à outils, en sélectionnant
dans la barre du menu : Project, Add Components.
Chaque contrôle peut être vu comme un objet défini par un ensemble de propriétés. Quand un
contrôle, placé sur un formulaire, et sélectionné, ses propriétés apparaissent dans la fenêtre
Properties.
De manière générale, une fois qu’un objet est sélectionné, ses propriétés apparaissent dans la fenêtre
Properties. Notez que certains objets (contrôles, formulaires, etc.) ont les mêmes propriétés, par
exemple Name et Text, mais ont bien évidemment des valeurs différentes qui leurs sont propres.
Pratique. Placez les contrôles suivants sur le formulaire qui a été créé:
Modifiez leurs positions et leurs propriétés pour que le formulaire apparaisse comme suit :
Nous venons de créer un programme (graphique et statique) sans écrire aucune ligne de code VB.
Celui-ci peut d’être exécuté. Ce programme ne fait qu’afficher une boite de dialogue ayant la forme
de la figure 9. Pour lui donner vie (lui faire faire ce qui est désiré), c’est-à-dire convertir du Franc
Belge en Euro, il faudra mettre la main à la pâte et écrire du code VB.
- 28 -
Visual Basic .NET : tutorial
Pour arrêter l’exécution de votre programme, cliquez sur la petite croix située en haut à
droite du formulaire ou cliquez sur le bouton End.
Quand on travail dans un environnement multifenêtrés (Windows) chaque fois, qu’on clique sur la
souris, qu’on ouvre ou ferme une fenêtre, qu’on appuie sur une touche du clavier, on déclenche un
événement auquel le programme utilisé réagit. La programmation par événements consiste à
programmer ce que le programme doit faire quand un événement particulier survient.
A chaque objet VB (contrôle, formulaire, etc.) peut être associé une ou plusieurs procédures
événementielles écrites avec le langage de programmation VB.
Une procédure événementielle n’est rien d’autre qu’une procédure classique mais qui s’exécute
quand un E VENEMENT particulier se produit 3.
Pour attacher une procédure événementielle à un objet, il suffit de « double cliquer » sur celui-ci. VB
inscrit alors la déclaration de la procédure avec des paramètres par défaut (ne pas mofifier ces
paramètres).
Syntaxe
Private Sub NomObjet_NomEvénement( Argument As Type, … )
Instruction1
Instruction2
…
End Sub
Un ensemble d’événements peut être rattaché à chaque type d’objet. Ci-dessous quelques exemples
d’événements :
3 Notez qu’une procédure événementielle peut être aussi appelée dans du code comme une procédure classique -
29 -
Visual Basic .NET : tutorial
Mouse Up On a relâché le bouton de la souris
MouseMove On a bougé la souris
KeyDown On a appuyé sur une touche du clavier sans la relâcher
Mouse Up On a relâché une touche du clavier
MousePress On a appuyé sur une touche du clavier et on l’a relâché
A chaque formulaire sera associé un fichier logique portant le nom ‘Nom_Formulaire’, voir figure
10. Celui-ci contiendra le code VB des différentes procédures relatives aux événements associés au
formulaire en question ainsi qu’aux différents objets qui lui sont rattachés.
Form _Load()
La procédure de nom Form_Load() s’exécute lors du chargement du formulaire
correspondant, c’est-à-dire avant que le formulaire n’apparaisse à l’écran.
Pratique. Placez les deux lignes de codes comme indiqué à la figure 10 (entre les deux lignes Private
Sub Form_Load() et End Sub). Ainsi, avant que le formulaire n’apparaisse à l’utilisateur,
Franc_Belge. Text et Euro. Text seront initialisés à 40.3399 et à "Euro : 1" (voir figure 9).
- 30 -
Visual Basic .NET : tutorial
Exécutez votre programme pour noter l’effet de l’initialisation. Y-a-t il moyen d’initialiser sans
écrire du code ?
Pratique.
a. On désire que, lorsque l’utilisateur clique sur le bouton Convertir (figure 9), une procédure
s’exécute et convertisse le montant dans la zone Franc_Belge et donne le montant équivalent
en Euro (dans la zone label).
b. On désire que, lorsque l’utilisateur clique sur le bouton Quitter (figure 9), une procédure
s’exécute et ferme la fenêtre. L’instruction End ferme une fenêtre.
Exécutez votre programme, introduisez un montant en Franc Belge et appuyez sur Convertir.
L’intérêt de donner un nom à chaque formulaire et module réside dans le fait qu’un formulaire ou un
module peut être réutilisé dans des projets différents.
- 31 -
Visual Basic .NET : tutorial
Si ces fenêtres sont fermées vous pouvez toujours les ouvrir en sélectionnant dans le barre du
menu, View (Toolbox, Project Explorer, Properties Windows).
En résumé
• Les objets manipulés sont appelés des contrôles (bouton de commande, boîte de dialogue,
zone de texte, zone d' image, etc. )
• L' interface utilisateur créée est multifenêtrée. Une fenêtre est appelée un formulaire (Form).
Un formulaire est lui-même un contrôle.
• Chaque contrôle peut réagir à des événements qui lancent des procédures (dédiées) codées
en VB.
• Des modules généraux de code peuvent porter sur tout le programme. Ces modules sont
réutilisables.
- 32 -
Visual Basic .NET : tutorial
2.3 Exercices
b. Modifiez le programme de conversion pour qu’il puisse convertir dans les sens FB->Euro et
Euro->FB. Votre formulaire doit apparaître comme suit :
d. Après cette introduction, vous êtes censés être capable de répondre aux questions suivantes :
- 33 -
Visual Basic .NET : tutorial
SECTION 3. LES CONTROLES
Le concept d’objet
Comme vous l’avez et vous allez encore le constater, le terme OBJET est souvent cité dans ce texte,
et ceci est loin d’être le fruit du hasard. En effet, VB .NET est un langage orienté objet, c’est-à-dire
que toute CHOSE que vous aurez à manipuler et à utiliser n’est rien d’autre qu’un OBJET
indépendant. Un objet est défini par un nom et un certain nombre de propriétés. Il est aussi défini par
un ensemble de méthodes (procédures ou fonctions).
Notez bien que les propriétés et les méthodes qui définissent l’objet ne peuvent être invoquées
qu’en spécifiant le nom de celui-ci.
Une propriété d’un objet est un attribut ou une caractéristique de celui-ci. Chaque propriété porte un
nom (attribut ou variable) et a une valeurqui lui est associée. La figure 7 montre une partie des
propriétés de l’objet portant le nom ‘Form1’. Comme propriété d’un objet, on peut citer: nom, forme
graphique, dimension, couleur, structure de données associée, etc.
Pour accéder à la propriété d’un objet avec du code VB, il faut obligatoirement préciser le nom de
l’objet suivi d’un point suivi du nom de la propriété en question. On peut ainsi distinguer et utiliser
les même priorités appartenant à des objets différents. Pour accéder et modifier les propriétés d’un
objet, on procède comme dans l' exemple suivant :
Exemple
Form 1. Text = “ Convertisseur FB en Euro ”
Form 1.BackColor = &H800000
Label1. Text = “ Entrez votre texte ”
Button. Text = “ Franc Belge”
Pour les objets existants lors du développement, leurs propriétés peuvent aussi être modifiées à l’aide
de la fenêtre de propriétés : Properties, voir figure 7.
Une méthode d’un objet est une fonction ou une procédure rattachée à l’objet en question. Pour être
appelée, comme dans le cas de la propriété, elle doit être précédée par le nom de l’objet
correspondant suivi d’un point.
Syntaxe
NomObjet.NomProcedure( paramètre1, paramètre2, …)
Variable = NomObjet.NomFonction (paramètre1, paramètre2, …)
- 34 -
Visual Basic .NET : tutorial
Exemple
Form 1. Showdialog ‘ fait apparaître la fenêtre Form 1
La figure 13 montre l’éditeur des classes (objets) VB. La colonne de droite présente les méthodes et
les propriétés de la classe sélectionnée. La fenêtre du bas donne une explication succincte de la
classe, propriété ou méthode sélectionnée. Pour ouvrir l’éditeur des classes VB, il suffit de cliquer sur
le bouton Object Browser.
Dans tous les contrôles, la propriété Name permet de référencer le contrôle correspondant dans du
code VB. A l’intérieur d’un même formulaire, la propriété Name doit être unique. Comme indiqué ci-
dessus, Name permettra aussi d’accéder aux différentes propriétés et d’appeler les différentes
méthodes de l’objet.
Lorsqu’un contrôle est placé sur un formulaire, VB lui affecte un nom, généré automatiquement,
composé du nom du contrôle, suivi d’un chiffre correspondant au nombre de contrôles de même type
déjà intégrés dans le formulaire.
- 35 -
Visual Basic .NET : tutorial
3.2.2 Label
Le contrôle Label permet d’afficher un texte statique. La propriété (de type String) chargée de
stocker ce texte (une chaîne de caractères) est la propriété Text. Celui-ci sera affiché lors de
l’affichage du formulaire dans lequel il est placé. L’instruction qui suit modifie le texte correspondant
au contrôle Label de nom Label1.
Exemple
Label1.Text = “l’équivalent en Euro = 15.689,89”
3.2.3 TextBox
Le contrôle Textbox permet d’aficher et de saisir un texte au clavier. La propriété (de type String)
chargée de stocker ce texte (une chaîne de caractères) est la propriété Text. Celui-ci sera affiché lors
de l’affichage du formulaire dans lequel il est placé et modifiable par l’utilisateur. L’instruction qui
suit modifie le texte correspondant au contrôle TextBox de nom Text1.
Exemple
Text1.Text = “Entez votre texte ici”
3.2.4 RadioButton
Le contrôle
RadioButton combine deux fonctionnalités. Il permet de sélectionner une option présentée par un
texte statique (un contrôle Label). Le contrôle RadioButton, utilisé sur un formulaire en au moins
deux instances, permet de faire une seule sélection parmi les différents choix proposés (parmi les
différents RadioButton affichés). La propriété du contrôle qui stock l’état de celui-ci est la propriété
Enabled, de type Boolean. La valeur True veut dire que l’option est choisie. Notez bien que VB se
charge de mettre à jour la propriété Enabled une fois qu’une sélection est faite (mettre True à la
propriété Enabled du bouton sélectionné et False aux autres).
Exemple
OptionButton1.Enabled = True
OptionButton2. Enabled = False
Pratique. Dans l’exemple de la figure 14, l’utilisateur peut soit convertir du FB vers l’euro ou
inversement. Les contrôles ont été déclarés comme suit :
Case "F"
valeFB = value * 40.3399
sortie.Text = "Equivalent en FB: " & valeFB
End Select
End If
End Sub
- 37 -
Visual Basic .NET : tutorial
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1. Click
MsgBox ("Quitter?")
End
End Sub
End Class
Dans l’exemple ci-dessus, la conversion se fait de manière dynamique chaque fois que le montant
change (Montant_Change). La procédure événementielle Montant_Change est aussi appelée comme
simple procédure dans les deux autres procédures événementielles : OptionEuro_Click et
OptionFB_Click
Nom_objet_Change()
La procédure événementielle de nom Nom_objet_Change() s’exécute quand l’objet portant
le nom Nom_objet change.
3.2.5 CheckButton
Ce contrôle ressemble de très près au contrôle RadioButton. Il combine aussi deux fonctionnalités. Il
permet de sélectionner une option présentée par un texte statique (un contrôle Label). La différence
majeure réside dans le fait que l’utilisateur peut faire de multiples sélections parmi les différents
contrôles de même type. La propriété du contrôle qui stocke l’état de celui-ci est la propriété Checked
qui prend l’une des deux valeur suivantes : false = choix non sélectionné, true = choix sélectionné.
Notez que c’est à l’utilisateur de gérer la relation entre les différents choix en programmant la
procédure événementielle Click().
Exemple
Private Sub Check1_CheckedChanged () ‘ on clique sur le 1e r choix
If Check1.checked = true Then ‘ si le 1er choix vient d’être
Check3.enabled = false sélectionné
Else ‘ le 3ème devient indisponible
Check3.Checked = true ‘sinon le 3 è m e devient disponible
End If
End Sub
3.2.7 GroupBox
Un GroupBox est une fenêtre. C’est un contrôle qui peut être placé sur un formulaire pour créer un
groupe de contrôles. Tout contrôle placé sur le GroupBox (lui-même placé sur un formulaire)
appartiendra à ce groupe.
On a vu dans le cas du contrôle RadioButton qu’une seule option peut être choisie. Cependant, si on
veut présenter à l’utilisateur deux groupes de choix dans lesquels il peut sélectionner deux choix non
exclusifs, un dans le premier groupe et un dans le second, ceci n’est pas possible. Pour résoudre ce
problème, il suffit de placer l’un des groupes d’options dans un GroupBox, l’autre appartiendra au
formulaire.
Notez que les GroupBox peuvent être utilisés pour créer un groupe de contrôles de différents types,
TextBox, RadioButton, Label, etc.
Pratique.
Dans l’exemple de la figure 18, deux GroupBox sont utilisés : Destination et Moyen de transport.
Chaque GroupBox intègre un groupe d’options. Ainsi, l’utilisateur peut choisir une seule ville et un
seul moyen de transport.
- 39 -
Visual Basic .NET : tutorial
Le code correspondant à ce programme est présenté dans la figure 19. Les contrôles ont été déclarés
comme suit :
- 40 -
Visual Basic .NET : tutorial
3.2.8 Exercices
b. Sachant qu’1 US$ coûte 38.5 168 FB et qu’1 FF coûte 6.1498 FB, modifiez le code de l’exemple
pour qu’on puisse aussi avoir la conversion en US$ et en FF. Votre application doit avoir l’allure de
la figure 20.
- 41 -
Visual Basic .NET : tutorial
3.2.9 ListBox
Un ListBox est un contrôle qui permet de proposer une liste de valeurs parmi lesquelles l’utilisateur
ne peut en choisir qu’une seule. La dite liste est stockée dans la propriété Items. La figure 21 montre
un exemple d’utilisation du contrôle ListBot.
3.2.10 ComboBox
Le contrôle ComboBox combine les fonctionnalités des contrôles TextBox et ListBox. La propriété
Text stocke l’élément à chercher, à sélectionner ou à ajouter et la propriété Items stocke la liste des
valeurs possibles, comme dans le cas du contrôle ListBox. La figure 22 montre un exemple
d’utilisation du contrôle ComboBox.
La propriété Items se trouve dans plusieurs contrôles (ListBox, ComboBox, …). Elle peut être
remplie lors de la conception dans la fenêtre Properties comme monter dans la figure 234. Cette liste
peut aussi être mise à jour (ajout, suppression) de manière dynamique durant l’exécution du
programme.
4 Pour ajouter une ligne (un élément) dans la liste, il faut cliquer sur les 3 petits points -
42 -
Figure 23: La propriété Items d’un contrôle ComboBox ou d’un contrôle ListBox.
Syntaxe
Exemples
End Sub
- 43 -
Visual Basic .NET : tutorial
Pratique. L’exemple de la figure 24 utilise un ComboList pour stocker une liste de villes.
L’utilisateur peut manipuler dynamiquement la dite liste. Le code correspondant à ce programme est
présenté dans la figure 25.
La fonction Existe(Ville) vérifie si Ville se trouve dans la liste des villes. Une ville ne peut être
ajoutée que si elle n’existe pas. Une ville ne peut être supprimée qu’après confirmation de
l’utilisateur, c’est-à-dire, celui-ci a appuyé sur OK. La fonction MsgBox, utilisée avec l’option
OkCancel, affiche les boutons Ok et Cancel. Elle retourne 1 si on appuie sur OK et 2 si on appuie sur
Cancel.
- 44 -
Visual Basic .NET : tutorial
3.2.12 Exercices
a. Programmez le programme qui permet de réaliser la figure 24: Exemple manipulant la propriété
List du contrôle ComboList
b. Dans le même esprit que l’exercice précédent, créez un programme qui permet de convertir un
montant en devise vers une autre divise. Votre application doit avoir l’allure de la figure 26. Utilisez
trois contrôles ListBox : DeviseB, DeviseC et TauxC. DeviseB et DeviseC serviront, respectivement, à
sélectionner la devise de base et la devise de conversion. TauxC servira à stocker les taux de change
des différentes devises par rapport à une devise de référence (l' Euro). Notez bien que les trois
contrôles ne doivent pas être triés, ainsi la devise d’indice i du contrôle DevideC correspond au taux i
du contrôle TauxC.
L’exemple ci-dessous montre comment convertir un montant (Montant. Text) d’une devise de base
(DeviseB) vers une devise de conversion (DeviseC) en utilisant le taux de conversion d’une devise de
référence (ici l’Euro). Par exemple, si on désire convertir un montant en CHF (Devise de base) en
BEF (Devise de conversion), il faut d’abord trouver le montant équivalent en Euro puis multiplier ce
montant par le taux du FB d’un Euro.
Exemple
- 45 -
Visual Basic .NET : tutorial
c. Modifiez votre programme pour que les différentes listes soient dynamiques, permettant à
l’utilisateur d’ajouter ou de supprimer une devise.
- 46 -
3.2.13 Solution
Public Class Form1
- 47 -
Visual Basic .NET : tutorial
Visual Basic .NET : tutorial
DeviseC. Items .RemoveAt (Indice)
End If
End Sub
End Class
- 48 -
Visual Basic .NET : tutorial
3.2.14 L’éditeur de menus
L’éditeur de menus permet de rattacher à un formulaire un menu comme celui utilisé par exemple
dans les applications sous Windows. La figure 28 montre le menu de VB.
Un menu n’est rien d’autre qu’un ensemble de contrôles (commandes) qui sont accessibles par une
représentation sous forme de menus. Une commande peut soit ouvrir un sous-menu soit lancer une
procédure événementielle (comme celles vues précédemment).
Pour ouvrir l’éditeur de menu, il suffit de cliquer sur le bouton Menu Editor.
- 49 -
Visual Basic .NET : tutorial
4. LES BASES DE DONNEES
Une table est un fichier structuré contenant des informations sur un ensemble de sujets de même
type. On peut citer comme exemples de tables: les clients, les produits, les commandes, les lignes de
commandes, les étudiants, les transactions efectuées à des distributeurs automatiques de billets.
Une table peut être vue comme un tableau à deux dimensions ou chaque ligne représente les
informations relatives à un seul sujet. Cette ligne, appelée aussi enregistrement (record), est
composée d’une suite structurée d’informations (champs) sur le dit sujet. Par exemple, pour le cas
d’une table client, chaque ligne contiendra pour un seul client (les champs) les informations
suivantes:
On dit qu’un enregistrement (une ligne d’une table) est composé d’un ensemble de champs ou
d’attributs. Chaque champ peut être d’un type standard de données comme ceux de VB (Integer,
String, Date, …). La figure 30 montre un exemple d’une table de produits. Les noms des champs sont
donnés à la première ligne.
- 50 -
Visual Basic .NET : tutorial
4.2 Notion de Base de Données
Une base de données est un ensemble de tables conçues de manière cohérente. Une base de données
doit contenir l’information nécessaire et suffisante sur les sujets représentés. On peut citer comme
exemple de base de données celles conçues pour gérer : un magasin commercial, le système de prêts
de livre d ’une bibliothèque, les inscriptions des étudiants d ’une université, les réservations d ’une
compagnie aérienne, le système de production d ’une entreprise manufacturière, etc.
La figure 30 montre un exemple d’une base de données pour la gestion de livres dans une
bibliothèque. Elle est composée de quatre tables, Authors, Title Author, Titles et Publishers. Cette
figure montre uniquement les structures (les différents champs qui composent les enregistrements)
des différentes tables.
Il existe dans le commerce plusieurs systèmes de gestion de base de données (SGBD), tels que
Oracle, Sybase, SQL server, DB2, Informix, Dbase, MS Access, etc. Dans ce cours, on utilisera
Microsoft Access. VB .NET permet de travailler avec une base de données de type MS Access sans
disposer du logiciel MS Access5. Dans la suite de ce syllabus, on va voir comment créer et interroger
une base de données.
Pour créer une base de données, on utilise l’utilitaire Microsoft Access, voir figure 31. Pour lancer
Microsoft Access, sélectionnez, dans vos programmes, Microsoft Office, Microsoft Access.
Pour créer une base de données, sélectionnez Blank Database. MDB est l’extension du fichier
contenant une base de données de type Access. Microsoft Access vous invite à introduire le nom de la
base de données à créer. Après confirmation de votre part, il ouvre une fenêtre : Nom_Database :
Database.
5 Notez que VB permet de travailler avec d’autres types de base de données en utilisant des outils plus avancés, mais qui
- 51 -
Visual Basic .NET : tutorial
Pour ajouter un table à la base de données cliquez sur Create Table in Design View. Microsoft Access
ouvre la fenêtre de définition de la structure d’une table, figure 32. Pour ajouter des champs à la
table, cliquez dans Field Name et insérez le type de donnée contenu dans ce champ (colonne Data
Type). Si vous voulez indiquer que l’un des champs est la clé primaire, sélectionnez le champ (mettre
le curseur sur la bonne ligne) et appuyez sur l’icône avec une clé (dans la barre des outils).
Lorsque tous les champs sont complétés, fermez la fenêtre et n’oubliez pas de donner un nom à votre
table.
- 52 -
Figure 32 : Fenêtre de définition de la structure d’une table.
Pour ajouter une nouvelle table, il faut recommencer le même processus. Pour modifier la définition
de la structure, cliquez sur la nom de la table avec la bouton droit de la souris et sélectionnez, Design
View.
Lorsque vous aurez créé toutes vos tables, il s’agira d’indiquer les relations existant entre-elles.
Pour cela, cliquez sur l’icône (Relationships). Sélectionnez d’abord les tables à insérer dans le
schéma et reliez-les les unes avec les autres.
Une fois que vous aurez créé toutes les tables et leurs structures, fermez votre base de données, (File,
Close).
- 53 -
Base de données avec Visual Basic .Net et le modèle relationnel
Base de données avec Visual Basic .Net et le modèle relationnel
Requêtes SQL
Soit le schéma relationnel suivant:
Requête Statique:
Quels sont les produits (nomProduit, Prix) achetés par le client numéro 3
Requête Dynamique:
Quels sont les produits (nomProduit, Prix) achetés par le client dont le numéro est donné en
paramètre
Î Ceci est une requête dynamique, car le numéro du client est donné en paramètre à la
requête (le paramètre est représenté par le symbole ‘? ’ dans la requête SQL)
Base de données avec Visual Basic .Net et le modèle relationnel
- Supposons que l’application Visual Basic ci-dessous permette de rechercher les informations
d’un client dont le nom est donné en paramètre et qui afficherai le résultat de cette requête à
l’écran.
- La fenêtre ci-dessous montre comment construire cette requête avec le ‘Query Builder’ de
Visual Basic .Net.
Base de données avec Visual Basic .Net et le modèle relationnel
Le query Builder :
- Sélectionnez les tables sur lesquelles
vous voulez travailler
Base de données avec Visual Basic .Net et le modèle relationnel
Exemple : Nous avons spécifié la requête suivante : Quel est le prix et numéro du produit ‘TV’
Cela se traduit, en Langage SQL, par: SELECT Produit.Prix, Produit.N_Produit
FROM Produit
WHERE Produit.NomProduit = "TV"
- Clé étrangère: champs ou ensemble de champs qui correspond à une clé primaire dans
une autre table
Livre
Code-Livre Exemplaire
Auteur Titre
N°-Exem plaire
Edition Local isation
Personne Emprunte
Code-P ersonne Code-Emprunte Date
Nom Date-De-Retour
Prenom Adresse
Livre
Est emprunté par
Code-Livre
0.. n Em prunte Auteur Titre
Edition
0. .n
Emprunte.Code-Personne ~ Personne.Code-Personne
Emprunte.Code-Livre ~ Livre.Code-Livre
Base de données avec Visual Basic .Net et le modèle relationnel
Méthode 1:
Personne
Code-P ers onne
Nom
Prenom Adresse
Professeur Etudiant
Salaire Noma Note-
Moyenn e
{Professeur, Etudiant}
Base de données avec Visual Basic .Net et le modèle relationnel
Méthode 2:
Personne
Cod e-P ers onne
Nom
Prenom
Adresse
Professeur Etudiant
Salaire Noma Note-
Moyenn e
~ Créerune table pour chaque sous type, chaque table se compose des attributs
génériques et d’attributs spécifiques
Base de données avec Visual Basic .Net et le modèle relationnel
Voiture Roue
NoPlaque : Integer NoSerie : Long
Marque : String Type : String
~ Créerune table pour les classes ‘Voiture’ et ‘Roue’, et lier les deux tables par
une association 1 à N