Microsoft
Visual
Basic
.Net

2. Environnement Visual Studio
2.2.2
Explorateur de Solutions
4.2.1.2
Types chaîne de caractère
4.2.2
Déclaration de variables
4.2.3
Portée et visibilité des variables
4.2.3.1
Visibilité des variables
4.3.2
Opérateurs Arithmétiques
4.3.3
Opérateurs de comparaison
4.3.4
Opérateurs de concaténation
4.4 Les structures de contrôle
4.4.2
Structures conditionnelles
4.4.2.3
Instruction conditionnelles
4.5.3.3
Passage par valeur et par référence
4.5.3.4
Passer un nombre quelconque de paramètre
4.6.1
Fonctions sur les chaînes de caractères
4.6.2
Fonctions sur les nombres
4.6.4
Fonctions sur les tableaux
4.6.6
Fonction de formatage (Format)
4.6.6.1
Caractères de formatage pour les numériques
4.6.6.2
Caractères de formatage pour les dates.
4.8.2.1
L’instruction On Error
5.2.6
Création et utilisation d’objets
5.3.2
Procédures de propriétés
5.4.2
Constructeur et Destructeur
5.6 Méthodes et variables partagées
5.7.3
Exploiter les interfaces .Net
5.7.3.1
Implémenter l’interface
5.9.2.1
Utilisation de With Events
5.9.2.2
Utilisation du gestionnaire d’événement
6.1.2
Membres de la classe Form
6.2.3.1
Démarrer le drag and drop
6.2.3.3
Contrôler la réception
7.1 Mode connecté et déconnecté
7.6.4
Travailler avec les données
7.6.4.3
Modification de données
7.6.4.4
Suppression de données
7.7.3.1
Mise à jour de la source de données
7.7.3.1
Définition des requêtes d’actualisation
7.7.3.2
Déclencher la mise à jour des données.
7.8 Liaison de données aux contrôles
7.8.1.2
ControlBindingCollection
7.8.2
Liaison de données par Interface Graphique
7.8.2.2
Création des objets connexion et DataAdapter
7.8.2.3
Générer le groupe de données
7.8.2.5
Finalisation par le code
7.8.4
Formulaires de données Maitre / Détail
7.3.2
Lire et écrire des documents XML
7.3.3
Synchronisation avec la source de données
Depuis son apparition, le langage Visual Basic ainsi que ses divers environnements de développement ont su s’imposer comme les standards en matière d’outils de réalisation d’applications Windows.
|
Version |
Nouveautés |
|
1.0 |
Sortie en 91, Visual Basic innove en particulier grâce à son environnement de développement permettant de masquer les tâches fastidieuse |
|
3.0 |
Evolution du langage, apparition de nouvelles fonction et de structures de contrôle (select case) |
|
4.0 |
Sorti en 96, la version 4.0 marque une étape importante dans l’évolution du langage : - Création d’application 32 bits - Création et utilisation de DLL - Apparition des fonctionnalités Objet (Classes) |
|
5.0 |
Disparition des applications 16 bits et stabilité accrue du langage |
|
6.0 |
Peu d’évolution sur le langage mais apparition de la technologie ADO (remplaçante de DAO et RDO) et des outils de connexion aux sources de données (DataEnvironment) |
La version .Net (ou version 7.0) de Visual Basic et plus généralement de l’IDE Visual Studio marquent une étape importante dans l’évolution du langage. L’élément principal de l’infrastructure .NET est le CLR (Common Language Runtime), langage offrant un ensemble de classe permettant à l’utilisateur d’interagir avec le système. Ces classes peuvent être utilisée avec n’importe quel langage .Net (Vb, C++, C#) car elle font partie d’une norme commune : le CLS (Common Language Specification).
Une autre des révolutions du .Net réside dans le MSIL (Microsoft Intermediate Language) : les applications réalisées avec Vb .Net sont d’abord compilés en pseudo code, le MSIL, et c’est lors de l’exécution que le compilateur (JIT pour Just In Time) compile le code MSIL afin de le rendre exécutable par le processeur utilisé. L’avantage de ce système est double :
- Gain de ressource lors de l’exécution car seules celle devant être utilisées seront chargées et de ce fait, leur installation préalable n’est pas obligatoire
- Portabilité des applications sur différentes plateformes à la manière de la machine virtuelle Java.
A l’instar de la version 6.0, développer en VB .Net requiert une configuration machine beaucoup plus importante.
Ci dessous figurent les spécifications Microsoft :
|
|
Config. Minimum |
Config Optimale |
|
Processeur |
P2 450 Mhz |
P3 733 Mhz |
|
Mémoire Vive (Ram) |
128 Mo |
256 Mo |
|
Espace Disque |
3 Gb |
3Gb |
|
Carte Vidéo |
800x600, 256 Couleurs |
1024x768, 65536 Couleurs |
|
Lecteur CD Rom |
Obligatoire |
Obligatoire |
|
Système d’exploitation |
Windows 2000 Windows NT 4.0 Windows Me Windows 98 |
|
Ces spécifications concernent l’utilisation du FrameWork .Net ainsi que de l’IDE, pas l’exécution des programmes MSIL.
Les habitués de Visual Studio 6.0 ne seront pas déroutés : l’interface de Visual Basic .net reprend la plupart des palettes standards avec quelques outils en plus :
- la barre d’outils regroupe les différents contrôles par catégories
- La zone centrale permet tour à tour d’écrire le code et de définir les interfaces graphiques utilisateurs
- A droite, l’explorateur de solutions et la fenêtre de propriétés

L’explorateur de serveur permet de recenser
sous forme hiérarchique l’ensemble des objets d’un serveur (Serveurs SQL,
journaux, Services …). Cette fenêtre est principalement utilisées afin
d’accéder au schéma d’une base de données utilisée dans une application.
L’explorateur de solutions (Ex explorateur de
projet sous VB 6.0) référence l’ensemble des éléments du projets (Fichier de
configuration pour l’assemblage, super classes hérités, Feuilles….)
Une solution contient les fichiers suivants :
.sln : fichier de configuration de la solution
.vbproj : fichier projet, (ancien .vbp)
.vb : fichiers contenant du code (anciens .bas, .frm, .cls)
.resx : associé à une feuille, contient les ressources
L’affichage de classes liste de manière hierarchique
les différentes classes du projet ainsi que leurs méthodes, propriétés,
évènements et autre relations d’héritage.
Déjà présente dans la version 6.0, cette
fenêtre recense toutes les propriétés relatives à l’objet selectionné.
L’aide dynamique propose à tous les moments de la conception des rubriques d’aide utiles en fonction de ce que vous faîtes. Par exemple, la rubrique « créer une collection de contrôles » sera affichée lorsque vous ajouterez un bouton radio à votre application.
La fenêtre liste des tâche permet de recenser l’ensemble des tâche à réaliser sur votre projet. Cette liste peut être remplie de plusieurs façons :
- Une tâche que vous aurez vous même définie (ex : appeler le client à 11h)
- Une tâche issue des commentaires de votre code : tous commentaires de votre code commencant par « todo: » sera automatiquement ajouté
- Lorsqu’une erreur de syntaxe est détectée par Visual Studio, elle est automatiquement ajoutée dans la liste
-

Une solution le plus haut conteneur logique d’éléments (projets, fichiers, feuilles, classes).
Une solution peut contenir plusieurs projets.
Il est possible de créer un projet soit directement dans une solution ouverte soit dans une nouvelle solution.

Principaux projets Visual Basic |
|
|
Type |
Description |
|
Application Windows |
|
|
Bibliothèque de classe |
|
|
Bibliothèque de contrôle Windows |
|
|
Application Smart Device |
|
|
Application Web ASP.Net |
|
|
Service Web ASP.Net |
|
|
Application console |
|
|
Service Windows |
|
Pour chaque projet de votre solution, un ensemble de propriétés sont configurables. Pour accéder aux propriétés d’un projet, clic droit sur le projet dans l’explorateur de solution et Propriétés.

Propriétés communes |
|
|
Propriété |
Description |
|
Nom de l’assembly |
Nom du fichier généré après compilation (MSIL) |
|
Type de sortie |
Type d’application a générer |
|
Objet de démarrage |
Feuille ou procédure servant de point de départ au programme |
|
Espace de nom racine |
Permet de définir un préfixe pour accéder à l’ensemble des classes disponibles dans le projet |
|
Icône de l’application |
Fichier .ico servant d’icône au fichier de sortie |
|
Option explicit |
Interdit l’utilisation d’une variable non déclarée |
|
Option Strict |
Oblige l’écriture de explicite de la conversion de données |
|
Option compare |
Distinction de la casse en mode binaire (pas en mode texte) |
|
Espaces de noms |
Permet de définir les espaces de noms qui devront être automatiquement importés dans le projet (ex : permet d’écrire « form » à la place de « system.windows.forms.form » |
|
Chemin d’accès de référence |
Définit les dossiers dans lesquels se trouvent les références utilisées dans le projet |
|
Présentation page |
Mode de positionnement des contrôles : en mode Grid, le placement est libre, en mode Flow, le placement se fait dans l’ordre de création. |
|
Schéma cible |
Navigateur pour lequel le code HTML doit être compatible |
|
Langage de script Client |
Type de langage à utiliser |
Propriétés de configuration |
|
|
Propriété |
Description |
|
Action de démarrage |
Action à réaliser par l’environnement lors de la demande d’exécution |
|
Argument de la ligne de commande |
Permet de passer des paramètres lors de l’exécution du programme |
|
Répertoire de travail |
Répertoire actif pour l’application |
|
Débogueurs |
Débogueurs à activer lors de l’exécution |
|
Optimisation |
Définit un ensemble de contrôles que le compilateur ne fera pas lors de la compilation du programme |
|
Chemin de sortie |
Répertoire où sera généré l’exécutable ou la bibliothèque |
|
Activer les avertissements de génération |
Si coché, le compilateur ajoutera ses remarques à la liste des tâches |
|
Considérer les avertissements du compilateur comme des erreurs |
Lors de la compilation, les avertissements (Warning) fait par le compilateur stopperont la compilation (aucun fichier généré) |
|
Constantes de compilation conditionnelles |
Cette option permet de définir des constantes qui influeront sur les lignes compilées |
Un exemple valant mieux qu’un long discours, nous allons commencer par décortiquer un programme de base avant de parcourir le langage en lui même.
Lors de la création d’un formulaire, le code suivant est automatiquement généré :

- Le code est en fait constitué de la définition d’une nouvelle classe portant le nom du formulaire.
- L’instruction « inherits System.windows.forms.form » indique que la classe que nous créons doit hériter (récupérer) de tous les éléments inscrits dans la classe « form »
- Enfin, la région « Code généré par le concepteur Windows Form » contient l’appel aux méthodes de base de classe form ainsi que l’initialisation des contrôles.
Tout ajout d’éléments au formulaire (Variables, procédures, contrôles) seront ensuite perçus (selon leur visibilité) comme membres de la classe « form1 ».
Lors de la création d’un nouveau module, le code suivant est automatiquement généré :

Tout le code contenu dans le module sera inséré entre « module » et « end module »
Les commentaires permettent d’ajouter des annotations sur le code qui, une fois la compilation lancée, ne seront pas traitées par le compilateur et ainsi exclue du programme final.
Pour ajouter un commentaire, utiliser le caractère apostrophe « ‘ ». lorsqu’un commentaire est ajouté, tout le reste de la ligne sera un commentaire.
‘ceci est un commentaire
Dim mavar as string ‘ceci est un autre commentaire
Il n’est pas possible de créer des commentaires multilignes. Dans ce cas, vous êtes obligé de répéter le caractère apostrophe au début de chaque ligne
A noter que lorsqu’un commentaire commence par le mot clé todo:, il sera automatiquement ajouté dans la liste des tâches
‘todo: commentaire automatiquement ajouté dans la liste des tâches
Les régions sont une nouvelle fonctionnalité de Visual Basic permettant de masquer une partie du code pour gagner en lisibilité.
La fonctionnalité appliquée aux région se retrouve sur chaque procédure Visual Basic : le signe + situé à gauche du nom des procédures permet de ne garder que leur déclaration.

Il est possible de créer vos propres régions avec la syntaxe suivante :
#Region ‘’libellé de la région‘’
…
#End Region
#Region ‘’Déclaration des variables’’
dim i, j as integer =0
dim
nom as string
#End Region
Les variables permettent de stocker des informations lors de l’exécution du programme.
Une variable est caractérisée par les informations suivantes
- Un nom : le nom d’une variable commence obligatoirement par une lettre, peut contenir des lettres, chiffres et le signe « _ » (underscore) avec un maximum de 255 caractères. Visual Basic ne tient pas compte de la casse (Majuscules / Minuscules)
- Un type : le type d’un variable précise le type de la valeur stockées par la mémoire (numérique, chaîne de caractère, date …)
- Une portée : la portée d’une variable correspond à sa durée de vie
|
Nom |
Min |
Max |
Taille |
|
Byte |
0 |
255 |
8 bits |
|
Short |
-32768 |
32767 |
16 bits |
|
Integer |
-2 147
483 648 |
2 147 483
647 |
32 bits |
|
Long |
-9223372036854775808 |
9223372036854775807 |
64 bits |
|
Single |
-3.402823 E 38 |
3.402823 E 38 |
32 bits |
|
Double |
-1.79769313486231 E 308 |
-1.79769313486232
E 308 |
64 bits |
|
Decimal |
-79228162514264337593543950335 |
79228162514264337593543950335 |
16 Octets |
Depuis la version .Net, les chaînes de caractère sont enregistrées au format Unicode, c’est à dire que chaque caractère utilise 2 octets.
|
Nom |
Description |
Exemple |
|
Char |
Utilisé pour stocker un seul caractère |
‘’a’’ |
|
String |
Chaîne de caractère à longueur variable d’une taille de 0 à environ 1 milliard de caractères |
‘’Sandrine Desayes’’ |
|
Nom |
Description |
Exemple |
|
Boolean |
Variable dont le contenu peut être False (0) ou True (1) |
True |
|
Date |
Stocke les informations de date et heure. Si la date est omise, le 1er janvier de l’année en cours sera utilisé. Si l’heure est omise, minuit sera l’heure par défaut. |
#12/07/02 15:33:17# #12/07/02# #15:33:17# |
|
Object |
Le type object est un type universel (anciennement nommé Variant). Ce type ne stocke en fait pas la donnée elle même mais il contient un pointeur vers l’adresse mémoire contenant la donnée. De ce fait, une variable de type object peut pointer vers (contenir) n’importe quel type de données |
!Erreur ! L’affectation des adresses mémoire se fait de manière implicite |
La déclaration des variables permet, lors de l’exécution d’un programme de réserver l’espace mémoire nécessaire au stockage des informations. Par défaut, la déclaration des variables est obligatoire mais il est possible de la désactiver (voir les options communes de projet). Il est cependant déconseiller de la désactiver car une simple erreur de syntaxe au niveau du nom d’une variable ne sera pas interprété comme une erreur par le compilateur et de ce fait, le programme travaillera sur deux emplacements mémoire bien distincts.
La déclaration des variables se fait de la façon suivante
Dim nomvariable1, nomvariable2, nomvariable3 as type_variables = valeur_par_defaut
L’affectation d’une valeur par défaut est facultative.
Dim i as integer = 0
Dim moncar as char = ‘’i’’
Dim aujourdui as date = #12/07/02#
Dim nom as string
La portée d’une variable est équivalent à sa durée de vie, c’est à dire tant qu’elle est accessible. La portée est définie en fonction de l’endroit où est placée sa déclaration. Quatre niveaux de portée existent :
- Niveau Bloc : si la variable est déclarée dans un bloc (boucle while, condition …), la variable ne sera valable que à l’intérieur du bloc
- Niveau Procédure : si la variable est déclarée à l’intérieur d’une procédure ou d’une fonction, elle ne sera accessible qu’à l’intérieur de cette procédure / fonction
- Niveau Module : la variable déclarée dans un module sera accessible uniquement à partir des éléments du modules (procédures, fonctions)
- Niveau projet : la variable est accessible à partir de tous les éléments du projet. Dans ce cas, il faut utiliser le mot clé « friend » à la place du mot « dim ».
En dehors de l’emplacement où est définie la variable, plusieurs mot clés sont disponibles pour agir sur la visibilité :
- Public : tous les blocs de code peuvent accéder à la variable
- Private : seul les éléments membres de la classe ou du module peuvent y accéder
Dim i as integer
Public y as string
Private z as integer
Un tableau est un regroupement de variables accessibles par le même nom et différentiables par leurs indices.
- Un tableau peut avoir jusqu’à 32 dimensions.
- Les indices de tableaux commencent toujours à 0.
- Lors de la déclaration d’un tableau, l’indice maximum est précisé : le tableau comportera donc (indice_max + 1) valeurs.
Dim montableau(10) as integer
Dim tableau2(5) as string
Pour accéder à un élément du tableau, il faut préciser le nom du tableau avec entre parenthèses l’indice de l’élément désiré.
Montableau(2) = 123
Tableau2(5) = ‘’toto’’
En Vb, les tableaux sont dynamiques, c’est à dire qu’il est possible de modifier leur taille. Pour cela, il faut utiliser l’instruction « Redim » suivi du nom du tableau et de sa nouvelle taille.
Redim montableau(15)
Cependant, l’instruction « Redim » ne conserve pas les données déjà présentes dans le tableau. Pour conserver son contenu, utiliser le mot clé « preserve »
Redim preserve montableau(15)
Les constantes permettent de stocker une valeur en s’assurant qu’elle ne sera jamais modifiée. Elles sont généralement utilisées pour améliorer la modularité du code en ne définissant qu’une seule fois une valeur utilisée plusieurs fois.
Il n’est pas obligatoire de préciser le type de la constante sauf lorsque l’option « Strict » du compilateur est activée.
Dim tx_tva = 19.6
Dim voyelles as string = ‘’aeiouy’’
Les énumérations permettent de définir un type de variable dont les valeurs appartiennent à un domaine précis. Chacune des valeurs d’une énumération correspond à un entier : le premier élément de l’énumération est initialisé à 0, le second à 1 etc…
Enum civilite
Monsieur
Madame
Mademoiselle
End enum
Il est cependant possible de personnaliser les indices utilisés :
Enum jour
Jeudi = 4
Lundi = 1
Dimanche = 7
…
End enum
Une fois l’énumération déclarée, il est possible de déclarer une variable du type de l’énumération.
Dim macivilite as civilite
De cette façon, la variable macivilite pourra uniquement prendre les valeurs définies dans l’énumération :
Macivilite = monsieur
Macivilite = 1 ‘correspond à madame
Macivilite = 4 ‘invalide, l’indice max est 2
De manière générale, les énumérations sont utilisées pour le passage de paramètres, de façon à utiliser des constantes « parlantes » plutôt que des valeurs numériques pas toujours compréhensibles.
il existe 5 types d’opérateurs
Un seul opérateur d’affectation existe et ce quelque soit le type de données concerné : le signe égal « = ». Il permet d’affecter une valeur à une variable.
Mavar = 123
Attention, le signe égal est aussi utilisé pour la comparaison.
Il est également possible d’utiliser les opérateurs arithmétique lors d’une affectation.
Dim i as integer = 5
I += 3 ‘équivalent
à i = i + 3
les opérateurs arithmétique permettent d’effectuer des calculs sur des variables, constantes …
|
Opérateur |
Description |
Exemple |
Résultat |
|
+ |
Addition |
3 + 2 |
5 |
|
- |
Soustraction |
8 – 6 |
2 |
|
* |
Multiplication |
3 * 4 |
12 |
|
/ |
Division |
8 / 2 |
4 |
|
\ |
Division entière |
9 \ 2 |
4 |
|
Mod |
Modulo (Reste de la division entière) |
9 mod 2 |
1 |
|
^ |
Puissance |
3 ^ 2 |
9 |
Dim nombre as double
Nombre = 50 + 7
Nombre = 8 mod 2
Il permettent de comparer deux membres et, en fonction du résultat, retournent True ou False