STUDIO 2008
TABLE DES MATIERES
1. INTRODUCTION ................................................................................................................................................... 4
2. ELEMENTS D'UN PROGRAMME ..................................................................................................................... 5
2.1. LES COMMANDES ET FONCTIONS ...................................................................................................................... 5
2.2. LES OBJETS : METHODES ET EVENEMENTS ........................................................................................................ 5
2.2.1. Propriétés ................................................................................................................................................... 5
2.2.2. Méthodes ..................................................................................................................................................... 6
2.2.3. Evénements ................................................................................................................................................. 6
2.3. METHODOLOGIE DE TRAVAIL ........................................................................................................................... 6
2.4. COMPOSITION D'UN PROGRAMME ..................................................................................................................... 6
3. LES VARIABLES ................................................................................................................................................... 8
3.1. LES NOMS ......................................................................................................................................................... 8
3.2. PORTEE............................................................................................................................................................. 8
3.3. LES TYPES ........................................................................................................................................................ 8
3.3.1. Type numérique........................................................................................................................................... 9
3.3.2. Type décimaux ............................................................................................................................................ 9
3.3.3. Type caractères ........................................................................................................................................... 9
3.3.4. Type Boolean .............................................................................................................................................. 9
3.3.5. Type Date .................................................................................................................................................... 9
3.3.6. Type nullable............................................................................................................................................. 10
3.4. CONVERSION DE TYPE .................................................................................................................................... 10
3.5. FORMATAGE ................................................................................................................................................... 11
3.6. CHAINE DE CARACTERES ................................................................................................................................ 11
3.7. INFERENCE DE TYPE........................................................................................................................................ 12
3.8. LES CONSTANTES ........................................................................................................................................... 12
3.9. VARIABLES TABLEAUX ................................................................................................................................... 12
3.10. LES STRUCTURES ............................................................................................................................................ 13
4. ENTREES/SORTIES DE DONNEES ................................................................................................................. 15
4.1. SORTIES .......................................................................................................................................................... 15
4.2. ENTREES : ....................................................................................................................................................... 16
5. CALCULS ET COMPARAISONS ...................................................................................................................... 17
5.1. LES OPERATEURS DE COMPARAISON ............................................................................................................... 17
5.2. LES CALCULS .................................................................................................................................................. 17
6. BOUCLE ET TEST .............................................................................................................................................. 18
6.1. GOTO ............................................................................................................................................................. 18
6.2. IF….THEN ...................................................................................................................................................... 18
6.3. SELECT….CASE .............................................................................................................................................. 18
6.4. FOR…NEXT ................................................................................................................................................... 19
6.5. DO…LOOP ..................................................................................................................................................... 20
6.6. FOR EACH ... NEXT .......................................................................................................................................... 20
6.7. WITH … END WITH ........................................................................................................................................ 20
6.8. USING … END USING ..................................................................................................................................... 21
7. LES ERREURS ..................................................................................................................................................... 22
7.1. DEBOGAGE ..................................................................................................................................................... 22
7.2. GESTION DES ERREURS ................................................................................................................................... 22
8. APPLICATION WINDOWS ............................................................................................................................... 24
8.1. INTERFACE SDI .............................................................................................................................................. 24
8.2. INTERFACE MDI ............................................................................................................................................. 24
8.3. LES EVENEMENTS ........................................................................................................................................... 26
8.3.1. Evénements clavier ................................................................................................................................... 26
8.3.2. Les événements souris ............................................................................................................................... 27
9. LES COMPOSANTS D'UN FORMULAIRE ..................................................................................................... 29
9.1. BOITE DE DIALOGUE DE WINDOWS ................................................................................................................. 29
9.1.1. Ouvrir ....................................................................................................................................................... 29
9.1.2. Choix des dossiers .................................................................................................................................... 29
9.1.3. Choix d'une couleur .................................................................................................................................. 29
9.1.4. Choix d'une police..................................................................................................................................... 30
9.2. CONTROLE D'AFFICHAGE ................................................................................................................................ 30
9.2.1. Le label ..................................................................................................................................................... 30
9.2.2. LinkLabel .................................................................................................................................................. 30
9.2.3. Le contrôle ToolTip .................................................................................................................................. 31
9.2.4. Le contrôle ErrorProvider ........................................................................................................................ 31
9.2.5. Le contrôle progressbar ............................................................................................................................ 31
9.3. EDITION DE TEXTE .......................................................................................................................................... 32
9.3.1. Le contrôle TextBox .................................................................................................................................. 32
9.3.2. Le contrôle MaskedTextBox ...................................................................................................................... 32
9.3.3. Le contrôle RichTextBox ........................................................................................................................... 33
9.4. DECLENCHEMENT D'ACTION ........................................................................................................................... 33
9.4.1. Button ........................................................................................................................................................ 33
9.4.2. MenuStrip ................................................................................................................................................. 33
9.4.3. ContextMenuStrip ..................................................................................................................................... 34
9.4.4. Toolstrip .................................................................................................................................................... 35
9.5. CONTROLES DE SELECTION ............................................................................................................................. 35
9.5.1. Checkbox................................................................................................................................................... 35
9.5.2. RadioButton .............................................................................................................................................. 37
9.5.3. Groupbox .................................................................................................................................................. 37
9.5.4. Listbox....................................................................................................................................................... 38
9.5.5. Les listes déroulantes ........................................................................................ Erreur ! Signet non défini.
9.6. LE TIMER ....................................................................................................................................................... 41
9.7. CREATION DE MENU: ........................................................................................ ERREUR ! SIGNET NON DEFINI.
9.8. L’OBJET SCREEN : ............................................................................................ ERREUR ! SIGNET NON DEFINI.
9.9. L’OBJET APP : .................................................................................................. ERREUR ! SIGNET NON DEFINI.
10. LES FEUILLES .............................................................................................. ERREUR ! SIGNET NON DEFINI.
10.1. LA GESTION : .................................................................................................... ERREUR ! SIGNET NON DEFINI.
10.2. APPLICATION MDI (MULTIPLE DOCUMENT INTERFACE) : ............................... ERREUR ! SIGNET NON DEFINI.
10.3. PROPRIETE D’UNE FEUILLE : ............................................................................. ERREUR ! SIGNET NON DEFINI.
10.4. LES EVENEMENTS D’UNE FEUILLE : .................................................................. ERREUR ! SIGNET NON DEFINI.
10.5. LES METHODES D’UNE FEUILLE : ...................................................................... ERREUR ! SIGNET NON DEFINI.
11. LES IMPRESSIONS : .................................................................................... ERREUR ! SIGNET NON DEFINI.
11.1. LES PROPRIETES : ............................................................................................. ERREUR ! SIGNET NON DEFINI.
11.2. LES METHODES : ............................................................................................... ERREUR ! SIGNET NON DEFINI.
12. MODULES ET PROCEDURES .................................................................... ERREUR ! SIGNET NON DEFINI.
12.1. MODULES : ....................................................................................................... ERREUR ! SIGNET NON DEFINI.
12.2. LES PROCEDURES : ........................................................................................... ERREUR ! SIGNET NON DEFINI.
12.3. PROCEDURES FUNCTION :................................................................................. ERREUR ! SIGNET NON DEFINI.
12.4. PROCEDURES SUB : .......................................................................................... ERREUR ! SIGNET NON DEFINI.
13. COLLECTION : ............................................................................................. ERREUR ! SIGNET NON DEFINI.
14. FICHIERS ....................................................................................................... ERREUR ! SIGNET NON DEFINI.
14.1. L'ACCES SEQUENTIEL ....................................................................................... ERREUR ! SIGNET NON DEFINI.
14.1.1. L'ouverture ........................................................................................................................................... 50
14.1.2. L'écriture .............................................................................................................................................. 51
14.2. L'ACCES DIRECT ............................................................................................... ERREUR ! SIGNET NON DEFINI.
14.2.1. Définition de la structure ............................................................................. Erreur ! Signet non défini.
14.2.2. Ouverture ..................................................................................................... Erreur ! Signet non défini.
14.2.3. La lecture ..................................................................................................... Erreur ! Signet non défini.
14.2.4. L'écriture ...................................................................................................... Erreur ! Signet non défini.
14.3. L'ACCES BINAIRE .............................................................................................. ERREUR ! SIGNET NON DEFINI.
14.4. INSTRUCTION TYPE DOS ................................................................................................................................. 51
15. LES BASES DE DONNEES ........................................................................... ERREUR ! SIGNET NON DEFINI.
15.1. LES DIFFERENTS OBJETS ................................................................................... ERREUR ! SIGNET NON DEFINI.
15.2. CONTROLES "DONNEES OU "DATA" .................................................................. ERREUR ! SIGNET NON DEFINI.
16. LIAISON DDE-OLE ....................................................................................... ERREUR ! SIGNET NON DEFINI.
16.1. LIAISON DDE ................................................................................................... ERREUR ! SIGNET NON DEFINI.
16.2. CREATION D'UN CLIENT DDE ........................................................................... ERREUR ! SIGNET NON DEFINI.
1. INTRODUCTION
Visual Basic Studio n’est pas une évolution de Visual Basic 6.0 mais
vraiment une nouvelle technologie de développement d’applications. Vous
pouvez faire :
Tout ceci est possible grâce à FRAMEWORK .NET qui prend en charge
l’intégralité d’une application. Le Framework est hébergé par le système
d’exploitation et au moment où j’ai ce support la dernière version est la 3.5.
Vous pouvez aussi faire fonctionner une plateforme .NET sur des systèmes
Linux, Mac OS, Sun,…
Mon cours sera axé sur la création d’interface Windows et sur l’accès aux
bases de données dont cela concernera la classe system.windows et
system.data.
commande fonction
Dans VB toute portion de code doit être contenue dans un module ou une
classe.
2.2.1. Propriétés
Les propriétés sont par exemple, la couleur ou la légende des objets.
Vous pouvez les initialiser à la création via la boîte à outils, mais aussi les
modifier par programme. Pour modifier par programme vous pouvez donner
le nom de l'objet, ainsi que la désignation de la propriété.
Par exemple vous pouvez changer le nom de la feuille de travail qui s'intitule
"Form1" en "Adresse".
La propriété relative au nom s'appelle "Caption". Cela nous amène à la
syntaxe suivante :
Form1.Caption = "Adresse"
NomObjet.Nompriété=" "
Une méthode est une instruction relative à un processus au système tel que
le traitement des entrées, des sorties.
En résumé, toutes les manipulations d'objet que ce soit des fenêtres, des
contrôles, des imprimantes, sont des méthodes. On peut résumer ceci en
disant que toutes les instructions adressées à un objet bien défini sont des
méthodes.
2.2.3. Evénements
Le plus important dans un programme VB, se sont les actions de l'utilisateur.
Par exemple lorsqu'il clique sur un bouton de commande "OK" ou bien
lorsqu'il sélectionne une commande d'un menu.
Pour que le programme ne passe pas tout son temps à vérifier quel est
l'objet qui a été activé ou non, VB répartit lui-même les tâches ou déclenche
la routine associés à chaque action.
Ses tâches sont appelées des "procédures évènementielles".
Chaque évènement à un nom, mais cela ne suffit pas. En effet, le nom de
l'objet dans lequel l'événement a été crée, ainsi que la désignation de
l'évènement en lui-même se combinent pour donner un nom de procédure.
Par exemple, si vous cliquez sur une fenêtre intitulée "Adresse", vous
déclenchez automatiquement la procédure :
Vous pouvez aussi créer des dossiers dans votre solution afin d'organiser
vos différents projets.
Par exemple nous allons créer une solution "formation" avec un projet "base"
de type console ou code.
Vous obtenez l'écran suivant :
Minuscule et majuscule n’ont pas d‘importance mais plus pratique pour l'aide
à la saisie.
3.2. Portée
Toute variable possède une certaine durée de vie, ce que l’on appelle sa
portée. Celle-ci dépend de deux éléments : le mode et l’emplacement de ces
variables :
Pour cela vous devez déclarer votre variable au début de votre programme.
+ ou & Concaténation
Pour définir :
Dim NomTableau (nombre ligne, nombre colonne) As Type
Commence à 0
voir variable
Pour identifier un type pour un tableau on peut aussi lui donner un symbole.
Par exemple Dim Tableau(100) crée un tableau de 100 lignes de caractères.
Pour identifier les limites d'un tableau, on utilise length et rank pour savoir
sa dimension.
4.1. Sorties
Mais la meilleure façon pour le faire est d'utiliser une boite de message. Une
boite de message permet également de fournir une réponse.
Syntaxe :
MsgBox(Texte Message,Numéro,Titre)
Première valeur :
Bouton Valeur
OK (par défaut) 0
Ok et Annuler 1
Abandon, Répéter, Ignorer 2
Oui, Non, Annuler 3
Oui, Non 4
Répéter et Annuler 5
Deuxième valeur :
Icones Valeur
Panneau Stop 16
Point d'interrogation 32
Point d'exclamation 48
Information 64
Troisième valeur :
Exemple :
4.2. Entrées :
Permet de saisir des données de l'utilisateur. On utilise également une boite
que l'on appelle Boite de dialogue. Attention l'information saisie par
l'utilisateur sera toujours du texte.
Syntaxe :
Nomvariable = InputBox (message, titre, défaut )
Exemple :
Reponse = InputBox("SVP, Entrez votre nom")
Msgbox Reponse
Vous pouvez aussi utiliser naturellement une zone de saisie dans un objet
Forms.
> Supérieur
< Inférieur
<> Différent
>= Supérieur ou égal
<= Inférieur ou égal
Like utilisation de caractère générique
Not Négation
And Et logique
OR Ou logique
XOR Ou exclusif
+ Addition
- Soustraction
* Multiplication
/ Division
^ Puissance
\ Division entière
MOD Donne le reste de la division
& Concaténation de chaînes
Sin(x) Sinus de x
Cos(x) Cosinus de x
Ton(x) Tangente de x
Atn(x) Arc tangente de x
Sqr(x) Racine Carrée de x
Log(x) Logarithme de x
6.1. GoTo
Permet de dérouter le cours de normal d'un programme à une étiquette. A
éviter absolument car cela peut provoquer des erreurs d'exécution suivant le
modèle de votre microprocesseur.
Syntaxe :
Goto Etiquette
'Instructions
Etiquette
'Instructions
On peut remplacer par un Goto qui permet d'accéder à une série d'étiquettes
en fonction de la valeur d'une certaine expression.
Syntaxe :
On Test Goto Suite1, Suite2, Suite3
6.2. If….Then
Permet de renvoyer à une suite d'instructions en fonction d'une condition.
Syntaxe :
If Condition Then
'Instructions si condition est vraie
Else
'Instructions si condition est fausse
End If
Else n'est pas obligatoire si vous avez qu'une seule instruction. If Condition
Then instruction1
Vous pouvez aussi ajouter ElseIf Condition2 Then, mais cela devient lourd
et il est préférable de faire une instruction Select Case.
6.3. Select….case
C'est une structure qui permet de faire des tests comme la structure IF.
Si vous devez écrire une série de conditions, il est préférable de faire appel à
Select Case plutôt qu'à If car l'écriture est plus simple et plus courte.
6.4. For…Next
Ici la structure For permet de faire une boucle compteur et permet de faire
Xfois une suite d'instructions.
Syntaxe :
For nomvariable = début To Fin Step pas
Instructions
Next
Utile pour compter un nombre de ligne pour une facture, une page, etc….
Exemple :
On veut remplir une variable tableau de la manière suivante :
0 1 2 3
1 2 3 4
2 3 4 5
9
Voici la solution :
Dim Essai(9,4) as Integer
For I=0 To 9
For J=0 to 3
Essai (I,J)=I+J
Next
Syntaxe 1 :
Do Until condition On boucle jusqu'à ce que la
Instructions condition devienne vraie.
Loop
Syntaxe 2 :
Do While condition On boucle tant que la condition
Instructions reste vraie ou jusqu'à ce que la
Loop condition soit fausse.
Syntaxe 3 :
Do Idem que la syntaxe 1 mais on
Instructions passe au moyen une fois.
Loop Until Condition
Syntaxe 3 :
Do
Instructions
Loop While condition
Pour vous aider dans cette démarche on utilise la fenêtre Débogage. Si vous
exécutez votre programme pas à pas ainsi vous allez examiner le code et les
variables.
Vous pouvez placer un point d'arrêt en cliquant dans la zone grise à gauche
de votre écran.
Pour éviter cela, on peut indiquer une séquence d'instruction en cas d'erreur.
Ce déroutage est effectué par l'instruction On error ou par un renvoi à une
procédure.
Syntaxe de l'étiquette :
On Error GoTo étiquette
Attention placé cette instruction en 1er ligne (avant les futurs erreurs).
Exemple :
Sub maprocédure()
On Error GoTo Erreur
Instructions
Exit Sub
Erreur :
MsgBox "une erreur est survenue. Elle porte le N° "&Err"
Resume Next
Exemple :
Sub procerreur()
On Error Resume Next
Instructions
If Err= … Then
Instructions
End If
End Sub
Personnellement je préfère utiliser une interface MDI qui est plus pratique.
Maintenant nous allons créer deux fenêtres filles. Pour cela il suffit de mettre
le code suivant au chargement de la feuille mère :
Par exemple vous voulez émettre un bip si l'utilisateur et en plus inhiber cette
saisie. Pour cela vous avez la propriété "Handled" qu'il faut mettre à "true"
If IsNumeric(Chr(e.KeyCode)) Then
Beep()
e.Handled = True
End If
Nous allons faire un petit logiciel de dessin qui trace un point à chaque
déplacement de la souris si on appuie sur le bouton gauche.
Vous tapez le code suivant sur l'événement MouseMove mais noté bien la
première ligne :
Maintenant vous allez ajouter le code suivant quand vous allez toucher à
votre molette de souris sur les 3 zones de texte.
Maintenant nous allons éviter de cliquez sur la zone de texte pour actionner
la molette grâce à l'événement "mouseHover" et en tapant le code :
9.1.1. Ouvrir
9.2.1. Le label
Le plus basique dont les propriétés essentielles sont :
9.2.2. LinkLabel
Idem que le contrôle "Label" et ajoute simplement un lien hyper texte grâce à
la propriété "LinkArea" pour indiquer la portion du texte qui activera le lien,
"linkcolor" pour la couleur normal, "visitedlinkcolor" pour la couleur après
une première utilisation et "activelinkcolor" au moment où l'on clique
dessus.
Quand l'utilisateur clique sur le lien, l'événement "LinkClicked" est
déclenché et à vous de jouer pour le code. La propriété "LinkVisited" permet
de valider que le lien a été cliqué.
Par exemple pour lancer votre navigateur sur la page de google.fr avec un
contrôle qui s'appelle lnk_internet :
9.4.1. Button
Le plus grand classique de vb et je n'ai pas grand-chose à vous dire sauf que
le symbole & permet de mettre un raccourci devant la lettre sur la propriété
Text.
9.4.2. MenuStrip
Ce contrôle permet de faire un menu dans votre formulaire. Ce menu peut
être composé de différents éléments comme un sous-menu, une liste
déroulante,…
Voici un exemple :
9.4.3. ContextMenuStrip
Permet de faire apparaitre un menu contextuel sur un contrôle. Pour cela
ajouter ce contrôle et ensuite par un clic droit, vous devez ajouter un
élément. Cet élément porte un nom qui sera ensuite utilisé sur le contrôle
que vous voulez pour votre menu et par la propriété "ContextMenuStrip".
Voici un exemple sur le contrôle "MaskedTextbox" :
Dans ce cours je me limite à une barre d'outils mais si vous voulez en avoir
plusieurs, il faut ajouter le contrôle de type "ToolstripContainer" pour gérer
leur emplacement dans votre formulaire.
9.5.1. Checkbox
Permet de faire un choix ou non. Attention une case à cocher peut avoir 3
états : coché, pas coché ou indéterminé (grisé). La propriété "Checked"
renvoie vrai ou faux.
Vous devez faire le formulaire suivant :
9.5.3. Groupbox
Permet de regrouper des radiobutton afin de les isoler. Voici un exemple :
9.5.4. Listbox
Permet de choisir parmi une liste. Les éléments de la liste sont gérés sous
forme de collection par la propriété "Items".
Votre premier travail est de remplir la liste grâce à la méthode add ou
directement sur le formulaire.
Par exemple nous allons ajouter un choix de couleur de fond sur notre
formulaire :
Pour le code :
9.5.5. DomainUpDown
Idem que la listbox mais n'accepte pas de sélection multiple et de
présentation légèrement différente.
9.5.6. CheckedListbox
Idem que la listbox mais n'accepte pas de sélection multiple. De plus il y a
des cases à cocher et la collection "CheckedItems" possède les éléments
cochés.
9.5.8. NumericUpDown
Permet de faire monter ou descendre une valeur numérique. La propriété
"Minimium" et "Maximum" gère l'intervalle et la propriété "Valeur" vous donne
la valeur sélectionné.
9.5.9. TrackBar
Idem que le contrôle "NumericUpDown" permet un effet plus visuel mais
sans afficher la valeur.
Pour cela il faut poser ce contrôle et cliquer sur "modifier les éléments"
Par le code :
Après avoir créé vos onglets, vous pouvez placer vos contrôles comme si il
s'agissait d'un formulaire.
9.6.1. TableLayoutPanel
Très intéressant car il permet de réorganiser votre formulaire si l'utilisateur
change sa dimension ou la résolution d'écran.
Il faut d'abord poser ce contrôle et ensuite faire des zones en fonction de vos
besoins sachant que dans une zone vous pouvez placer un seul contrôle.
Ensuite vous devez ancrer votre TableLayoutPanel sur le bord gauche, haut
et droit.
Il faut savoir que vous pouvez gérer les formats d'images du type jpg, bmp,
ico, gif, wmf.
De plus la propriété "SizeMode" gére le comportement comme l'adaptation
de la taille de l'image comme l'adaptation à la taille (Stretchimage), ou le
sens contraire (Autosize), …
9.6.3. Imagelist
Contrôle qui vous permet de stocker des images ico, jpg, gif,… sauf les wmf
pour les utiliser dans d'autres contrôles ayant la propriété "ImageList",
"SmallImageList" ou "LargeImageList".
9.7.1. Le Timer
L'objet TIMER permet l'exécution d'instruction pendant une période de temps
déterminée. . L'unité de temps est le 1/1000 seconde grâce à la propriété
"Interval". La propriété "Enabled" passe à False pour arrêter le Timer.
Par exemple vous voulez faire une horloge. Pour cela créez un formulaire
avec une zone de texte nommée "horloge" et un objet timer nommé "temps"
et avec comme intervalle 1000. Maintenant faîtes un double clic sur l'objet
timer et taper le programme ci-dessous :
9.7.3. MonthCalendar
Permet de faire des choses plus évoluées que le contrôle précédent. Par
exemple faire une plage de date en gras. Pour cela vous devez utiliser la
propriété "AnnuallyBoldedDates".
Par le code :
Formulaire VB
Base
Requête SQL de
données
10.1.1.Mode connecté
L'utilisateur est en permanence connecté aux données et cela se gère de la
manière suivante :
10.1.2.Mode déconnecté
Beaucoup plus difficile à programmer, mais l'utilisateur n'est pas en
permanence connecté. Ceci est très pratique pour des ordinateurs portables,
comme pour le monde du Web.
10.2.1.Fournisseurs d'accès
Vous avez le choix entre 4 fournisseurs d'accès dans le Framework.net :
L'ouverture (OPEN)
Le traitement
La fermeture (CLOSE)
11.1.1.L'ouverture
Pour ouvrir un fichier texte on utilise l'instruction suivante :
11.1.2.L'écriture
Pour écrire dans un fichier, s'est l'instruction Print # dont la syntaxe est la
suivante :