Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION _______________________________________________________________ 4
I-
Prsentation ___________________________________________________________________ 4
II-
III-
IV-
Le projet_______________________________________________________________________ 9
I-
Prsentation _____________________________________________________________________ 9
Utilisation de l'diteur____________________________________________________________ 13
IV-
Structures algorithmiques_______________________________________________________ 19
VII-
Dfinition d'objet________________________________________________________________ 29
IV-
Prsentation ____________________________________________________________________ 41
Page 1 / 92
BR_VB_concepts.doc
principe _______________________________________________________________________ 59
Introduction____________________________________________________________________ 62
IV-
Introduction____________________________________________________________________ 73
IV-
Prsentation ____________________________________________________________________ 78
Introduction____________________________________________________________________ 80
IV-
V- Erreurs inattendues______________________________________________________________ 82
Le dbogage___________________________________________________________________ 85
I-
Introduction____________________________________________________________________ 85
IV-
Prsentation ____________________________________________________________________ 90
Page 2 / 92
BR_VB_concepts.doc
III-
Page 3 / 92
BR_VB_concepts.doc
INTRODUCTION
I- PRESENTATION
Visual Basic de Microsoft est la fois un langage et un atelier de dveloppement.
On retrouve le langage dans chaque produit de la gamme Office : Word, Excel, Access. Dans les
versions antrieiures office 97, on le trouvait sous le nom de VBA (Visual Basic for Application)
Lenvironnement de dveloppement Visual Basic permet de crer des applications en mode
graphique (GUI, Graphical User Interface) pour toutes les versions de Windows (3.x, 95, NT).
C'est donc un langage de haut niveau, simple mettre en uvre, contrairement aux langages C
et C++. En effet, Visual Basic se charge de faire appel et de passer les paramtres aux API
(fonctions de base) de Windows.
Que l'on ait l'intention de crer un petit utilitaire ou une application pour une entreprise ou mme
des applications partages internationales sur Internet, Visual Basic met disposition tous les
outils ncessaires :
Les fonctions d'accs aux donnes, qui permettent de crer des bases de donnes et des
applications pour les formats de base de donnes les plus utiliss (Microsoft ou autres),
La technologie ActiveX qui permet d'utiliser les fonctionnalits offertes par d'autres
applications, telles que le traitement de texte, le tableur et autres applications Windows,
Les fonctionnalits Internet facilitent l'accs des documents et des applications sur Internet
depuis l'application.
Visual Basic permet de crer un pseudo-code excutable, c'est dire que l' application finale est
un vritable fichier .exe qui utilise l'excution une bibliothque de liaisons dynamiques (DLL,
Dynamic-Link Library) qui sont libres de diffusion.
Les applications dveloppes avec Visual basic peuvent donc tre distribues librement.
Visual Basic rpond certainement la grande majorit des besoins de dveloppement
notamment en informatique de gestion.
Il noffre cependant pas le degr de finesse et de souplesse ncessaire la production de
logiciels universels comme Word ou Excel. Ce domaine reste du ressort du langage C++.
Page 4 / 92
BR_VB_concepts.doc
Page 5 / 92
BR_VB_concepts.doc
4. PREMIER CONTACT
Avant de commencer, il est ncessaire de se familiariser avec un certain nombre de termes qui
seront rgulirement utiliss dans VB :
Terme
Description
projet
feuille
module
contrle
vnement
proprit
mthode
Page 6 / 92
BR_VB_concepts.doc
Page 7 / 92
BR_VB_concepts.doc
On pourra galement faire apparatre d'autres fentres, comme la fentre de palette de couleurs
ou la fentre de dbogage. On verra ces fentres ultrieurement dans le cours.
Toutes ces fentres peuvent tre simultanment ouvertes.
Page 8 / 92
BR_VB_concepts.doc
LE PROJET
I- PRESENTATION
* Toute application Visual basic est appele projet.
Plusieurs fichiers seront crs pour chaque projet, savoir :
un fichier de projet qui rpertorie tous les composants (.VBP)
Il est obligatoire, et sert mmoriser la liste de tous les fichiers ncessaires au projet, ainsi
que les options d'environnement du projet. C'est un fichier texte dont on peut afficher le
contenu.
Un ou plusieurs fichiers contenant des contrles ActiveX. Ces contrles taient auparavant
appels contrles OLE ou contrles personnaliss. Les ditions professionnelles et
entreprises contiennent un grand nombre de contrles ActiveX et offrent aussi la possibilit de
crer ses propres contrles. D'autres contrles ActiveX destins de multiples usages sont
disponibles auprs de nombreux fournisseurs.
un fichier en donnes binaires pour chaque feuille contrlant les proprits ayant des donnes
binaires comme valeurs (.FRX)
un fichier de ressources unique (.RES)
Des fichiers modules (.FRM, .BAS ou .CLS)
1. MODULES DE FEUILLE
Les modules de feuille (dont le nom de fichier possde l'extension .FRM) sont le fondement de la
plupart des applications VB. Ils peuvent contenir des procdures qui grent :
des vnements,
des procdures gnrales,
des dclarations de niveau feuille de variables, de constantes, de types et de procdures
externes.
B.ROCHE / IIRIAM 10/00
Page 9 / 92
BR_VB_concepts.doc
Le code que l'on crit dans un module de feuille est propre l'application laquelle la feuille
appartient. Il peut aussi faire rfrence d'autres feuilles ou objets internes cette application.
2. MODULES STANDARD
Les modules standard (dont le nom de fichier possde l'extension .BAS) sont des conteneurs de
procdures et de dclarations gnralement utiliss par d'autres modules internes l'application.
Ils peuvent contenir des dclarations de variables, de constantes, de types, de procdures
externes et de procdures globales.
Le code crit dans un module standard n'est donc pas ncessairement li une application
particulire. Un module standard peut tre rutilis dans plusieurs applications diffrentes,
condition de ne pas faire rfrence aux feuilles et aux contrles par leur nom.
On peut visualiser aisment le contenu, puisque c'est un fichier ASCII.
Un projet aura de zro n modules standards.
On trouvera souvent un module .BAS (appel souvent main), qui contiendra les dclarations de
variables globales au projet.
3. MODULES DE CLASSE
Les modules de classe (dont le nom de fichier possde l'extension .CLS) sont le fondement de la
programmation oriente objet dans VB; On crit du code dans les modules de classe pour crer
de nouveaux objets, qui peuvent inclure ses propres mthodes et proprits personnalises.
* remarques :
on pourra donner le nom que l'on veut chacun de ces fichiers (modules), mais il est
fortement conseill de leur attribuer le nom spcifi dans la proprit name de la feuille.
une fois le projet termin, il est possible de crer un fichier excutable (.EXE) en choisissant
dans le menu Fichier la commande Crer un fichier EXE. Tous les fichiers crs deviendront
alors inutiles, l'exception des fichiers .DLL, .VBX et .OCX qui devront tre stocks dans un
dossier accessible par un path.
Fonction
F5
Ctrl+Pause
F7
Shift+F7
Shift+F2 en tant positionn sur un
nom de procdure
Ctrl+Shift+F2
Ctrl+J
Ctrl+Shift+Initiale d'une proprit
B.ROCHE / IIRIAM 10/00
Excution
Bascule en mode arrt, trs utile en cas de
verrou (boucle infinie sur une msgbox par
ex.).
Bascule vers le module de code d'une
feuille.
Bascule du code vers l'objet.
Affiche le code de la procdure appele.
Affiche la procdure prcdemment
consulte.
Affiche nouveau la liste automatique des
mthodes et proprits d'un objet. Se
positionner dans la mthode ou la
proprit changer.
Accs immdiat dans la fentre des
Page 10 / 92
BR_VB_concepts.doc
* crer le projet
Crer sur le disque un dossier (rpertoire) qui ne contiendra que les fichiers propres au projet.
Ds le lancement de VB, faire Fichier / Enregistrer le projet sous... ds lors qu'il s'agit d'un
nouveau projet
Page 11 / 92
BR_VB_concepts.doc
Faire des indentations (dcalages droite) pour les structures si, tant que ,...
Ne pas hsiter commenter le programme notamment sur les points suivants :
titres de paragraphes afin de bien faire ressortir la structure du programme,
explications dtailles pour toutes les sections de programmes complexes.
Tester et dboguer
* crer l'aide en ligne
* imprimer la documentation automatique du projet
* crer le programme excutable
* crer les disquettes d'installation
* rdiger la notice d'installation
* rdiger la notice d'utilisation
* former les utilisateurs au projet
Page 12 / 92
BR_VB_concepts.doc
Il est important de matriser la mcanique de l'criture du code dans VB, afin de rduire les temps
de saisie de code, par exemple, l'diteur de code de VB fournit automatiquement des
informations sur le code que l'on tape. Ainsi, si on tape le nom d'un contrle suivi de l'oprateur
point (.), les proprits et mthodes de ce contrle s'affichent automatiquement dans une zone
de liste. De mme, quand on tape le nom d'une fonction dans la fentre Code, VB indique
automatiquement la syntaxe de celle-ci.
Comme tous les autres langages de programmation, VB possde ses propres rgles
d'organisation, de modification et de formatage du code. On va les dtailler maintenant.
I- UTILISATION DE L'EDITEUR
L'diteur de code de Visual Basic est une fentre dans laquelle on crit la majeure partie du
code. Elle se prsente sous la forme :
Liste objet
Liste procdure
Page 13 / 92
BR_VB_concepts.doc
Page 14 / 92
BR_VB_concepts.doc
Ils ne peuvent pas dpasser 255 caractres. Les noms des contrles, feuilles, classes et
modules sont limits 40 caractres.
Ils ne peuvent pas tre identiques des mots cls avec restrictions.
Un mot cl avec restrictions est un mot qui fait partie du langage Visual Basic. Il s'agit des
instructions prdfinies (comme Interface et Loop), des fonctions (comme Len et Abs) et des
oprateurs (comme Or et Mod).
On peut utiliser les crochets pour faire rfrence une feuille ou un contrle mais pas pour
dclarer une variable ou une procdure portant le mme nom qu'un mot cl avec restrictions. Les
crochets permettent aussi d'obliger Visual Basic accepter les noms issus d'autres bibliothques
de types et qui entrent en conflit avec des mots cls avec restrictions.
On retrouve cette notion dans le code VB Applications
On se rapportera galement page 29 : Convention d'criture des objets
Page 15 / 92
BR_VB_concepts.doc
I- LES VARIABLES
1. LE NOM DES VARIABLES
Le nom d'une variable commence par une lettre et doit comporter au plus 255 caractres
3. DECLARATION EXPLICITE
Dans le cadre d'une dclaration explicite, on utilise une des instructions suivantes :
Dim : variable dont la porte est limite au domaine l'intrieur duquel elle est dclare. Ce
domaine peut tre une procdure, une fonction, un module ou une feuille. La dure de vie de
la variable est alors limite au domaine l'intrieur duquel elle est dclare.
Static : Fonctionne sur le mme principe qu'une variable dclare avec Dim, mais sa dure de
vie est celle du projet. Elle conserve sa valeur en mmoire tout au long du projet, mme si
moment elle n'est pas accessible du fait de sa porte.
Public : variable devant tre dclare dans la section dclaration d'un module, qui sera dite
globale l'application, et qui sera accessible de n'importe quel endroit de l'application.
Page 16 / 92
BR_VB_concepts.doc
code
type
17
Integer
Long
Boolean
( partir de V4)
Single
11
Double
Currency
String
String * n
Date
Object
Dfinition
Variant
12
* Remarques :
Une chane de caractres s'crit entre guillemets ("ceci est en exemple de chane")
Une simple quote sur une ligne implique que le reste de la ligne est du commentaire ( ' )
La taille d'une chane peut aller jusqu' 65400 octets, une chane est de taille fixe ou
variable.
La valeur True quivaut au nombre entier 0
La valeur False quivaut au nombre entier -1
Le type variant admet tout type de donnes. VB associe cette variable le type de la
valeur attribue lors de l'affectation.
On peut tester le type de la variable avec la fonction VarType. En plus des valeurs vues ci
dessus, on pourra trouver les valeurs suivantes :
vbObject
vbError
vbDataObject
vbArray
9
10
13
8192
5. EXEMPLES
dim nom as string
' ceci est une chane de taille variable (adapte son contenu)
dim ville as string * 20 ' ceci est une chane de taille fixe gale 20
static Heure as date
Dim numcli as integer, adresse as string, ville, cp as string
Dans ce cas l, ville sera du type variant car on n'a pas dfini de type.
Page 17 / 92
BR_VB_concepts.doc
exemples :
dim tab_eleves (20) as string*20
dim tab_notes (10,20) As integer
dim tab_noms (5)
Page 18 / 92
BR_VB_concepts.doc
exemple : tab_notes(4,8) = 15
Visual Basic
Si condition
alors instructions
[sinon instructions]
Fin si
If condition
Then instructions
[Else instructions]
End if
Si condition
alors instructions
[sinon si condition2
alors instructions
[sinon instructions]]
Fin si
If condition
Then instructions
[ElseIf condition2
Then instructions
[Else instructions]]
End If
Selon variable
cas valeur1 instructions
cas valeur2 instructions
...
[autres cas instructions]
Fin selon
Page 19 / 92
BR_VB_concepts.doc
exemples
If total >= 1000
then remise = 0.2
end if
2. LES BOUCLES
Algorithme
rpter
suite dactions faire
jusqu <cond>
Visual Basic
Do
suite dactions faire
Loop Until <cond>
Le programme fait au moins un passage dans la boucle. Il bouclera jusqu' ce que la condition
soit satisfaite.
do While <cond>
suite dactions faire
Loop
Le programme ne rentre pas forcment dans la boucle. Il y rentre si la condition est satisfaite et
boucle tant qu'elle est vrifie.
On utilise cette structure lorsque lon sait le nombre de passages que lon veut effectuer dans la
boucle.
A la place de min et max, on peut mettre des valeurs ou bien des expressions.
L'incrmentation est automatique et la pas par dfaut est 1.
Page 20 / 92
BR_VB_concepts.doc
Variantes :
For i = min To max Step 2
suite dactions faire
Next
L'option step permet de faire varier le pas d'une autre valeur que 1. Ici le pas sera de 2.
On peut aussi avoir un pas ngatif :
V- LES OPERATEURS
1. OPERATEURS ALGEBRIQUES
+
*
^
/
\
Mod
&
2. OPERATEURS DE COMPARAISON
<
<=
>
>=
=
<>
Like
infrieur
infrieur ou gal
suprieur
suprieur ou gal
gal
diffrent de
comme le modle de chane fourni
Page 21 / 92
BR_VB_concepts.doc
exemples :
if nomclient like "R[OA]" then...
La condition sera vrifie si le nom du client commence par RO ou RA
if nomclient like "T?[!OA]" then ...
La condition sera vrifie si le nom du client commence par T et n'a pas O ou A en troisime
position.
3. OPERATEURS LOGIQUES
Not
And
Or
Xor
Eqv
Imp
()
Equivalence logique :
resultat = expression 1 eqv expression2
Si expression1 est
True
True
False
False
Et
expression2 est
True
False
True
False
rsultat a la valeur
True
False
False
True
Page 22 / 92
BR_VB_concepts.doc
Dans tous les cas, il est fortement recommand de faire une programmation modulaire, afin
d'augmenter la lisibilit des programmes et leur maintenance.
On distinguera galement les types suivants de procdures :
Les procdures Sub : elles ne renvoient pas de valeur.
Les procdures Function : elles renvoient une valeur.
Les procdures Property : elles peuvent renvoyer ou affecter des valeurs, et dfinir des
rfrences des objets.
b) Procdure gnrale
Une procdure gnrale indique l'application la faon de mener bien une tche particulire.
Une fois qu'une procdure gnrale est dfinie, elle peut tre appele par l'application. C'est la
notion de procdure telle qu'elle a t dfinie en cours d'algorithmique.
c) Procdure d'vnement
Une procdure d'vnement, au contraire, reste inactive jusqu'au moment o elle est appele
pour ragir des vnements provoqus par l'utilisateur ou dclenchs par le systme.
Dans VB, lorsqu'un objet reconnat qu'un vnement s'est produit, il appelle automatiquement la
procdure d'vnement dont le nom correspond l'vnement. Comme le nom associe les objets
et le code, on dit que les procdures d'vnement sont attaches aux feuilles et aux contrles.
Toutes les procdures d'vnement utilisent la mme syntaxe gnrale:
Page 23 / 92
BR_VB_concepts.doc
End Sub
End Sub
* Remarque :
Il est aussi conseill de dfinir la proprit Name des contrles avant de commencer crire les
procdures d'vnement qui leur sont associes. En effet, si on modifie le nom d'un contrle
aprs lui avoir associ une procdure, on doit galement modifier le nom de la procdure afin
qu'elle corresponde au nouveau nom du contrle. En effet, VB n'tablit pas de lien entre le
contrle et la procdure. Lorsqu'un nom de procdure ne correspond aucun nom de contrle, la
procdure devient une procdure gnrale.
d) Appel
call nom_procedure (liste des paramtres)
* Remarques :
le mot cl call est facultatif.
Si la procdure n'a pas de paramtres, on indique les parenthses ouvrantes et
fermantes dans la dclaration. On ne les fait pas apparatre dans l'appel.
a) Dclaration
[Private|Public][Static]Function nom_fonction (liste des paramtres) as type_valeur_retourne
<dclaration des variables locales>
dim variablex as type_valeur_retourne
suite dactions
variablex = ...
nom_fonction = variablex
End Function
b) Appel
valeur = nom_fonction (liste des paramtres)
* Remarque :
Page 24 / 92
BR_VB_concepts.doc
Si on place le mot Static devant Sub ou Function, alors toutes les variables locales seront
considres comme statiques.
4. LE PASSAGE DE PARAMETRES
On peut passer un paramtre de deux faons :
soit par valeur,
soit par rfrence.
Si l'on n'indique rien (ou si on indique ByRef ) devant un paramtre dans la dclaration de la
procdure ou de la fonction, le type de passage sera par rfrence.
Si l'on veut effectuer un passage par valeur il suffit d'ajouter ByVal devant le nom du paramtre.
Exemple :
Sub controle (Byval nomp1 As string, testp1 As Boolean, nump1 As Integer)
nomp1 est pass par valeur,
testp1 et nump1 sont passs par rfrence.
* Remarque :
on peut aussi dclarer des paramtres facultatifs avec le mot optional (depuis la version 4)
Sub test (v1 As Integer, Optional v2 As Integer)
On ne peut pas trouver de paramtre obligatoire aprs un paramtre facultatif.
Description
retourne le code ASCII du premier caractre de la chane passe
en argument.
retourne le caractre correspondant au code ASCII (0 255) pass
en argument.
convertit la chane passe en argument en donne numrique
ex : val("1234") donne la valeur 1234.
conversion d'un nombre en chane
formate une chane avec des instructions de formatage passes
comme arguments
retourne une chane correspondant une conversion Hxa ou
Octale de l'argument numrique.
convertit une expression en donne de type double.
convertit une expression en donne de type currency.
convertit une expression en donne de type integer.
convertit une expression en donne de type long.
Page 25 / 92
BR_VB_concepts.doc
Csng
Cstr
Cvar
Cbool
Cbyte
Cdate
IsNumeric
IsEmpty
IsNull
IsArray
IsError
IsMissing
VarType
TypeName
Page 26 / 92
BR_VB_concepts.doc
4. FONCTIONS MATHEMATIQUES
Abs
Fix, Int
Log
Rnd
Sgn
Sqr
5.
Valeur absolue
Partie entire
Logarithme nprien
Renvoie un nombre alatoire
Renvoie le signe d'un nombre (-1, 0, 1)
racine carre
FONCTIONS DIVERSES
Il existe de nombreuses autres fonctions prdfinies, notamment en ce qui concerne les finances,
les accs aux disques et la manipulation des fichiers.
Voir la documentation VB.
Page 27 / 92
BR_VB_concepts.doc
NOTIONS D'OBJETS
I- DEFINITION D'OBJET
Un objet est une entit manipulable par l'ordinateur et laquelle correspond :
une classe d'objet
des propres proprits
des mthodes
des procdures d'vnement
des procdures et fonctions
En fait on peut citer quelques objets :
la fentre d'accueil de l'application,
la fentre de saisie d'un client,
le bouton de "quitter" de la feuille affiche l'cran,
...
Ces exemples font directement rfrence aux objets manipuls par Visual Basic, on peut
toutefois en citer d'autres :
le client Dupont,
l'imprimante connecte au poste de Monsieur Dupont,
la facture n 2345,
...
* Chaque objet possde un nom.
Exemples :
* CmdQuit : nom du bouton de commande "quitter"
* FrmAccueil : nom de la feuille d'accueil de l'application,...
Prfixe
frm
chk
cbo
dbc
cmd
dat
dir
drv
fil
fra
grd
dbg
hsb
Page 28 / 92
Exemple
frmFileOpen
chkReadOnly
cboEnglish
dbcEnglish
cmdCancel
datBiblio
dirSource
drvTarget
filSource
fraLanguage
grdPrices
dbgPrices
hsbVolume
BR_VB_concepts.doc
Objet
Feuille
Dessin
Etiquette
Ligne
Zone de liste
Zone de liste dpendante
Menu
Conteneur OLE
Bouton d'option
Zone dimage
Forme (cercle, carr, ovale, rectangle, rectangle arrondi
et carr arrondi)
Zone de texte
Minuterie
Barre de dfilement verticale
Prfixe
frm
img
lbl
lin
lst
dbl
mnu
ole
opt
pic
shp
Exemple
frmFileOpen
imgIcon
lblHelpMessage
linVertical
lstPolicyCodes
dblPolicyCode
mnuFileOpen
oleObject1
optFrench
picDiskSpace
shpCircle
txt
tmr
vsb
txtGetText
tmrAlarm
vsbRate
Les noms d'objet et les noms de variable sont soumis aux mmes rgles, comme tout ce qui sera
cr sous Visual Basic.
Les noms sous VB :
doivent commencer par une lettre ;
ne doivent contenir que des lettres, des chiffres et le trait de soulignement (_), mais pas
de caractres de ponctuation ni despaces ;
ne doivent pas dpasser 40 caractres.
Page 29 / 92
BR_VB_concepts.doc
exemples :
* la proprit caption qui reprsente le titre d'une fentre ou d'un bouton,
* la proprit Font qui reprsente la police de caractre du titre d'une fentre ou d'un
bouton,...
La plupart des proprits (mais pas toutes) sont modifiables aussi bien lors de la conception que
lors de son excution.
Lors de la conception on peut modifier la valeur d'une proprit via la fentre des proprits.
Si la feuille des proprits n'est pas apparente, il suffit d'appuyer sur la touche F4 ou de cliquer
sur l'icne proprits :
Objet auquel se
rapporte la liste de
proprits
Classe de l'objet
Nom de la proprit
Valeur
Dfinition de la
proprit
Page 30 / 92
BR_VB_concepts.doc
En fait cette instruction modifie le texte du bouton de nom FrmAccueil se trouvant dans la feuille
courante.
Liste des principales proprits, leur signification et les objets auxquels elles s'appliquent :
Proprits
ActiveControl
ActiveForm
Align
Signification
contrle qui aurait le focus si le conteneur tait
actif.
feuille active pour une application MDI.
alignement automatique sur le bord de la feuille.
Alignment
cadrage du texte
Appearance
AutoRedraw
Caption
CellSelected
Col
Cols
ColWidth
nombre de colonnes.
largeur des colonnes.
ClipControls
Page 31 / 92
Objets
Form
MDIForm
MDIForm
Data
PictureBox
CheckBox
Label
OptionButton
TextBox
tout contrle
visible
Form
PictureBox
MDIForm
Label
PictureBox
tout contrle
visible
Label
Shape
Form
Grid
Image
Label
Line
PictureBox
Shape
TextBox
CheckBox
CommandButton
Data
Form
Frame
Label
MDIForm
OptionButton
Grid
Form
Frame
PictureBox
DBGrid
Grid
Grid
Grid
DBGrid
BR_VB_concepts.doc
ControlBox
Controls
Count
CurrentX
position de la souris en X.
CurrentY
position de la souris en Y.
DataChanged
DataField
DataSource
DragIcon
DragMode
DrawMode
DrawStyle
DrawWidth
Drive
Enabled
FillColor
FillStyle
motif de remplissage.
Page 32 / 92
Form
Form
PictureBox
Frame
SStab
Form
PictureBox
Frame
SStab
Form
PictureBox
Form
PictureBox
CheckBox
DBCombo
DBList
Image
Label
PictureBox
TextBox
CheckBox
ComboBox
DBCombo
DBGrid
DBList
Image
Label
ListBox
PictureBox
TextBox
idem
tout contrle
visible
tout contrle
visible
Form
Line
PictureBox
Shape
Form
PictureBox
Form
PictureBox
DriveListBox
tout contrle
Form
PictureBox
Shape
Form
Grid
PictureBox
BR_VB_concepts.doc
FixedCols
FixedRaws
Font
FontBold
FontItalic
FontSize
FontStrikethru
FontTransparent
FontUnderline
ForeColor
GridLines
GridLineWidth
hDC
Height
hWnd
Icon
Index
Interval
KeyPreview
Left
List
ListCount
ListIndex
Shape
nombre de colonnes fixes.
Grid
nombre de lignes fixes.
Grid
police de caractres active pour la mthode print.
tout objet
pouvant contenir
du texte
boolen indiquant si la police est en gras ou non.
tout objet
pouvant contenir
du texte
boolen indiquant si la police est en italique ou
tout objet
non.
pouvant contenir
du texte
taille de la police.
tout objet
pouvant contenir
du texte
boolen indiquant si la police est barre ou non.
tout objet
pouvant contenir
du texte
boolen indiquant si le fond de la police est
tout objet
transparent ou non.
pouvant contenir
du texte
boolen indiquant si la police est souligne ou non. tout objet
pouvant contenir
du texte
couleur des caractres.
tout objet
pouvant contenir
du texte
boolen indiquant si il y a affichage du quadrillage Grid
ou non.
largeur des traits de quadrillage.
Grid
Handle graphique attribu par Windows.
Form
PictureBox
hauteur d'un contrle.
tout contrle
Handle de la fentre attribu par Windows.
contrles listes
contrles boutons
Form
Frame
Grid
H et VScrollBar
MDIForm
PictureBox
TextBox
fichier icne de la feuille.
Form
MDIForm
numro dans un groupe de contrle.
tout contrle
visible
priodicit de vnement timer en millisecondes
Timer
boolen indiquant si la feuille doit recevoir les
Form
vnements clavier avant ses contrle ou non.
coordonne en X du bord suprieur gauche.
tout contrle
tableau des textes d'une liste.
contrles listes
nombre d'lments d'une liste.
contrles listes
indice de l'lment slectionn dans une liste.
contrles listes
Page 33 / 92
BR_VB_concepts.doc
Locked
Max
MaxButton
MaxLenght
MDIChild
Min
MinButton
MouseIcon
MousePointer
MultiLine
MultiSelect
Name
NewIndex
Parent
PasswordChar
Path
Picture
Row
RowHeight
Rows
ScrollBars
Selected
SelEndCol
SelEndRow
SelLenght
SelStart
SelStartRow
Column (Grid)
TextBox
H et VScrollBar
Form
TextBox
Form
H et VScrollBar
Form
tout contrle
visible
tout contrle
visible
TextBox
contrles listes
tout contrle
contrles listes
tout contrle
TextBox
DirListBox
FileListBox
fichier du dessin de fond.
Form
Image
MDIForm
PictureBox
n de la ligne de la cellule courante.
Grid
DBGrid
hauteur d'une ligne.
Grid
DBGrid
nombre de lignes.
Grid
boolen indiquant la prsence de barres de
Column (Grid)
dfilement ou non.
Grid
MDIForm
TextBox
tableau de boolens indiquant l'tat de slection de contrles listes
chaque lment d'une liste.
n de la colonne de la dernire cellule slectionne. Grid
DBGrid
n de la ligne de la dernire cellule slectionne.
Grid
longueur de la slection
ComboBox
DBCombo
TextBox
position du premier caractre slectionn.
ComboBox
DBCombo
TextBox
n de la ligne de la premire cellule slectionne.
Grid
Page 34 / 92
BR_VB_concepts.doc
SelStartCol
SelText
Shape
Sorted
Stretch
Style
TabIndex
TabStop
Tag
Text
Top
Value
Visible
Width
WindowState
largeur du contrle.
tat de la fentre (normale, icne, plein cran).
Grid
DBGrid
ComboBox
DBCombo
TextBox
Shape
ComboBox
ListBox
Image
ComboBox
DBCombo
tout contrle
pouvant avoir le
focus
tout contrle
pouvant avoir le
focus
tout contrle
Column (Grid)
contrles listes
Grid
DBGrid
TextBox
tout contrle
contrles boutons
H et VScrollBar
tout contrle
visible !
tout contrle
Form
MDIForm
Page 35 / 92
BR_VB_concepts.doc
FrmAccueil.show
affichera la feuille de nom FrmAccueil (si la proprit visible est gale true).
LstListetitre.AddItem "Monsieur le Directeur"
On ajoutera la rubrique "Monsieur le Directeur" l'objet LstListetitre qui correspond une liste
droulante.
* Remarque :
On utilise pour les mthodes la notation pointe, comme pour les proprits.
Exemple :
Private Sub Command2_Click()
calculette.Hide
Form1.Show
End Sub
Page 36 / 92
BR_VB_concepts.doc
Les objets globaux sont des objets qui existent systmatiquement. Ils correspondent des
fonctions du systme dexploitation tels que lobjet Screen, Printer ou Clipboard ou contiennent
des informations sur lapplication elle-mme.
I- L'OBJET APP
L'objet App permet de dterminer des informations relatives lap plication.
1. PROPRIETES ESSENTIELLES
EXEName
HelpFile
Hinstance
LogMode
LogPath
Path
PrevInstance
StartMode
TaskVisible
Title
ThreadID
UnattendedApp
OLERequestPendingTimeOut
OLEServerBusyMsgText
OLEServerBusyMsgTitle
OLEServerBusyRaiseError
OLEServerBusyTimeOut
B.ROCHE / IIRIAM 10/00
BR_VB_concepts.doc
occup apparat.
3. METHODES
LogEvent
StartLogging
II- SCREEN
Permet dobtenir des informations sur lcran et de contrler le pointeur de la souris en dehors
des feuilles de lapplication excute.
1. PROPRIETES
ActiveControl
ActiveForm
FontCount
Fonts
Height
MousePointer
TwipsPerPixelX
TwipsPerPixelY
Width
Exemple
1. PROPRIETES
ColorMode
Copies
Count
DeviceName
DriverName
Duplex
FONTCOUNT
Fonts
Height
Orientation
Page
PaperBin
PaperSize
Port
PrintQuality
TrackDefault
B.ROCHE / IIRIAM 10/00
BR_VB_concepts.doc
TwipsPerPixelY
TwipsPerPixelX
Width
Zoom
2. METHODES
EndDoc
KillDoc
NewPage
PaintPicture
IV- CLIPBOARD
Permet de manipuler le contenu du Presse-papiers.
1. METHODES
Clear
GetData
GetFormat
GetText
SetData
V- DEBUG
Permet denvoyer les donnes de sortie dans la fentre de dbogage pendant lexcution.
1. METHODES
Assert
Page 39 / 92
BR_VB_concepts.doc
I- PRESENTATION
1. DEFINITION
La feuille VB reprsente l'interface avec l'utilisateur, dans quasiment tous les projets.
Un projet peut comporter de nombreuses feuilles.
Une feuille peut jouer un rle particulier, c'est la feuille de dmarrage. C'est elle qui apparatra
lors du lancement du projet, si toutefois elle a t dclare comme fentre de dmarrage dans le
menu outil/option/projet. On peut aussi dmarrer un projet par la procdure main. Il suffit de le
signaler dans le mme menu.
Les principales proprits sur les objets ont t dcrites dans le chapitre prcdent, il faut
maintenant voir les mthodes et vnements.
Non Possible
Fentre A modale
Fentre A modale
Fentre C modale
Fentre A modale
Possible
Fentre A modale
La plupart des feuilles seront modales. Toutes les feuilles d'information, de message d'erreur ou
de confirmation seront obligatoirement modales, puisque le programme a besoin de connatre la
rponse du message pour pouvoir continuer travailler.
Page 40 / 92
BR_VB_concepts.doc
Mthode
Show
Hide
Move
PopupMenu
Description
Rend visible une feuille l'cran. Si la feuille n'est pas
prsente en mmoire, elle est charge automatiquement.
Cache une feuille tout en la gardant en mmoire
Dplace et redimensionne la feuille selon les coordonnes
fournies en paramtre.
Affiche le menu contextuel spcifi
Printform
Imprime la feuille
SetFocus
Exemple :
FrmCalcul.Show 1
Cette mthode affichera (aprs avoir ventuellement charg) la feuille FrmCalcul. Le 1 signifie
que la fentre est modale. Par dfaut une fentre est non modale (valeur 0).
2. LES EVENEMENTS
Les vnements prsents ici concernent uniquement la feuille et non les contrles situs sur la
feuille.
Le principaux vnement sur une feuille sont les suivants :
Evnement
Description
Load
DblClick
Resize
Unload
Activate
Deactivate
Click
Page 41 / 92
BR_VB_concepts.doc
Exemple :
load FrmCalcul
Cette instruction chargera en mmoire la feuille FrmCalcul, sans toutefois l'afficher , et
dclenchera la procdure d'vnement Form_Load().
Page 42 / 92
BR_VB_concepts.doc
quelle est l'origine du dchargement (Windows, Feuille mre MDI, Instruction Unload,
Utilisation des cases "systme"). L'argument Cancel fonctionne comme un boolen. En
plaant sa valeur sur True dans la procdure vnementielle, le dchargement de la
feuille est annul.
Form_Unload(Cancel As Integer) : signale le dchargement de la feuille. Peut tre
annul par l'emploi de l'argument Cancel (Cancel=True). Sans annulation, l'vnement
Unload signifie le dchargement des proprits, mais pas celui des variables qui
restent charges. Les variables publique, prives, statiques dclares dans une feuille
survivent donc la fermeture de celle-ci.
Page 43 / 92
BR_VB_concepts.doc
Le principe est le mme, sauf qu'avec la fonction MsgBox, il sera possible de savoir sur quel
bouton l'utilisateur a appuy, et ainsi de conditionner la suite du programme.
Exemple :
L'xemple ci-dessous montre une procdure qui utilise la fois l'instruction MsgBox et la fonction.
On notera que les paramtres ne sont pas les mmes).
Titre
Prompt
Page 44 / 92
BR_VB_concepts.doc
Syntaxe :
MsgBox(prompt[, boutons][, titre][, helpfile, context])
Seul le prompt est prcis pour l'instruction. Helpfile et Context sont rarement utiliss.
Prompt : il s'agit du texte du message. Il ne doit pas excder 1024 caractres . Le passage la
ligne sera automatique, moins d'introduire la caractre de code ASCII 13 pour forcer le passage
la ligne l'endroit souhait.
Boutons : C'est une valeur numrique gale la somme des 4 indications suivantes :
* sur les boutons
Code
0
1
2
3
4
5
types de boutons
OK
OK et Annuler
Abandonner, rpter et Ignorer
Oui, Non et Annuler
Oui et Non
Rpter et Annuler
Code
16
32
48
64
types d'icne
Message critique "X"
Confirmation "?"
Avertissement "!"
Information "i"
* sur l'icne
Page 45 / 92
BR_VB_concepts.doc
On peut tester, avec la fonction MsgBox quel bouton a t activ par l'utilisateur.
Les valeurs de retour sont les suivantes :
Code
bouton slectionn
1
OK
2
Annuler
3
Abandonner
4
Rpter
5
Ignorer
6
Oui
7
Non
Titre : C'est le texte affich dans le bandeau de la bote de dialogue (son titre).
Page 46 / 92
BR_VB_concepts.doc
* Remarques :
Le type retourn par la fonction est du chane. Attention donc ventuellement convertir la
valeur saisie.
Si l'utilisateur appuie sur le bouton Annuler, la fonction retournera une chane vide.
Page 47 / 92
BR_VB_concepts.doc
LES CONTROLES
Les principaux contrles offerts par Visual Basic sont consigns dans la bote outils qui
apparat dans le projet.
On tudiera dans ce chapitre les principaux.
Pointeur
Label
Zone d'image
Texte (textBox)
Cadre (frame)
Bouton de commande
Case cocher
Case d'option
Zone de liste
(ListBox)
Barre de dfilement
verticaal
Zone de liste d'units
Zone de liste de fichiers
Ligne (line)
Donne (data)
Dialogue commun
Liste dpendante (DBList)
Grille dpendante(DBGrid)
1. LE POINTEUR
Permet de dplacer et de redimensionner des feuilles et des contrles.
(Il ne s'agit pas d'un contrle.)
Page 48 / 92
BR_VB_concepts.doc
On utilisera ce contrle comme tiquette en regard d'un champ de saisie, comme titre, pour
placer un commentaire ou afficher une donne non modifiable.
Proprits courantes
Alignement
Caption
Enabled
Valeurs
Description
texte align gauche
nombre align droite
centr
Texte qui sera affich dans le contrle
Affiche en gris le contrle si la valeur est
False. Le contrle ne pourra ragir aux
vnements gnrs par l'utilisateur
Gras
Italique
Soulign
Police de caractres
Taille de la police de caractres
Nom du contrle (ne pas confondre avec le
contenu)
Visible sur la feuille ou non
(voir la paragraphe accs aux donnes)
(voir la paragraphe accs aux donnes)
0
1
2
Texte
True ou False
FontBold
FontItalic
FontUnderline
FontName
FontSize
Name
True ou False
True ou False
True ou False
Visible
DataSource
DataField
True ou False
* Remarques
D'autres proprits sont disponibles, qui se rapportent la prsentation du contrle
(couleur, bordure,...), mais il est conseill de se rapporter la norme Windows et de s'y
conformer.
Valeurs
MaxLengh
Nombre
Multiline
True ou False
Description
BR_VB_concepts.doc
Proprits courantes
PasswordChar
ScrollBars
Valeurs
TabIndex
un caractre
0
1
2
3
nombre
TabStop
True ou False
Text
Description
de texte.
Caractre affich dans un mot de passe
pas de barre de dfilement
Barre de dfilement horizontale
Barre de dfilement vertical
Barres de dfilement horizontale et verticale.
numro d'ordre des tabulations dans sa feuille
mre.
Arrt ou pas sur la zone de texte en cas de
tabulation
Texte qui sera affich dans le contrle.
* Remarques
D'autres proprits sont disponibles, qui se rapportent la prsentation du contrle
(couleur, bordure,...), mais il est conseill de se rapporter la norme Windows et de s'y
conformer.
Il est possible de se positionner directement sur un champ de saisie en utilisant le et
commercial dans la proprit caption du label prcdent le champ de saisie dans
l'ordre des tabulations. Ce caractre sera alors soulign et on pourra se rendre
directement sur le champ de saisie par le raccourci clavier ALT + caractre soulign
True ou False
Default
True ou False
Valeurs
Description
Page 50 / 92
BR_VB_concepts.doc
* Remarques
D'autres proprits sont disponibles, qui se rapportent la prsentation du contrle
(couleur, bordure,...), mais il est conseill de ne pas abuser de ces proprits et de
laisser les proprits par dfaut.
On peut mettre, la place du texte (proprit caption), une image ou une animation.
Cela peut parfois tre utile, mais attention aux abus et au ct gadget qui risque de
lasse l'utilisateur.
Il est possible de faire prcder un caractre de la proprit caption d'un et commercial
(&). Ce caractre sera alors soulign et on pourra slectionner le bouton de commande
par le raccourci clavier ALT + caractre soulign (comme pour les menus).
Il est conseill d'utiliser la mme valeur pour le nom du contrle (proprit Name) et
pour son contenu (proprit caption). Si on utilise un prfixe on fera prcder le nom
du prfixe (ex : Quitter / CmdQuitter).
la proprit Cancel gale True est gnralement attribue un bouton du type
Annuler et la proprit Default est gnralement attribue un bouton du type OK
Proprits courantes
Alignment
Caption
Enabled
FontBold
FontItalic
FontName
FontSize
FontUnderline
Index
Name
TabIndex
TabStop
Visible
Value
Valeurs
Description
0 ou 1
0
1
2
* Remarque
Les proprits DataSource, DataField et DataChanged seront vues dans le paragraphe
accs aux donnes.
Page 51 / 92
BR_VB_concepts.doc
Valeurs
Description
0 ou 1
True
False
* Remarques
Les valeurs de la proprit Value ne sont pas les mmes que pour un contrle case
cocher.
Les proprits DataSource, DataField et DataChanged ne sont aps disponibles pour ce
contrle.
N'utiliser ces cases que lorsque l'on sait que les valeurs des options proposes ne vont
pas changer ou qu'il ne faudra pas en rajouter d'autres, afin de limiter la maintenence
des programmes.
Exemple :
Page 52 / 92
BR_VB_concepts.doc
Page 53 / 92
BR_VB_concepts.doc
7.
LE CADRE
(FRAME)
Constitue un conteneur fonctionnel et visuel pour des contrles. Il est surtout utilis pour
les cases d'option. Il s'avre indispensable dans une feuille o il y a plusieurs groupes de
cases d'option afin de les distinguer. On pourra alors choisir une option dans chaque
cadre. On s'en sert galement titre visuel pour permettre une meilleure lisibilit de la
feuille. On regroupe alors dans chaque cadre des informations de mme nature.
Proprits courantes
Caption
FontBold
FontItalic
FontName
FontSize
FontUnderline
Name
Visible
Value
Valeurs
True
False
Description
* Remarques
On peut forcer une option par dfaut en mettant la valeur true dans la proprit value
lors de la conception de la feuille.
Si l'on ne veut pas faire figurer le cadre sur la grille pour des raisons esthtiques, mais
que celui-ci est indispensable, on peut mettre la proprit visible false.
Exemple :
dans cet exemple, on pourra choisir une option dans le cadre Sexe et une autre dans le cadre
Situation de Famille.
Page 54 / 92
BR_VB_concepts.doc
Page 55 / 92
BR_VB_concepts.doc
En fait cette liste peut tre considre comme un tableau, dont l'index du premier lment a
la valeur 0.
par programme
On peut, par programme, modifier la liste en utilisant les mthodes suivantes :
Mthode
Syntaxe
Objet.AddItem valeur[,index]
AddItem
ajout d'un lment dans la liste
Objet.RemoveItem index
RemoveItem
Suppression d'un lment
Objet.Clear
Clear
Suppression de tous les
lments de la liste
Exemple
Cmbcru.AddItem "Ctes de
Bourg"
CmbCru.RemoveItem 1
CmbCru.Clear
On peut aussi travailler sur les lments de la liste en utilisant les proprits suivantes :
Proprit
Fonction
Exemple
Accs un lment de la liste TxtVin.text = CmbCru.list(4)
List(index)
Position de l'lment
pos = CmbCru.ListIndex
ListIndex
slectionn dans la liste
Fournit le nombre d'lments
ListCount
de la liste.
tri de la liste
Attention avec la mthode
Sorted
AddItem
* Remarque : On pourra associer une zone de liste les lments d'une table relationnelle. On
tudiera ce cas dans le chapitre concernant les donnes.
Page 56 / 92
BR_VB_concepts.doc
On peut demander ce que la liste permette la slection multiple simple (chaque clic slectionne
ou dslectionne un lment), ou tendue (avec les touche CTRL ou MAJ) avec la proprit
multiselect. Par dfaut cette proprit vaut 0 (pas de slection multiple).
Pour savoir si un lment de la liste a t slectionn, on peut utiliser la proprit Selected(index)
qui correspond un tableau de boolens indiquant l'tat de slection de chaque lment.
Exemple : if LstVin.Selected(j) then i = i + 1
3.
Ces trois listes vont gnralement ensemble. Ils correspondent aux contrles suivants :
La liste d'units de disques (DriveListBox) est une liste droulante sans saisie, dont la liste
contient automatiquement toutes les units de disques de la machine (y compris CDROM). La proprit drive permet de connatre l'unit de disque slectionne.
La liste des rpertoires (DirListBox) donne la liste des sous-rpertoire du rpertoire
courant. La proprit path permet de connatre le rpertoire slectionn.
La liste des fichiers (FileListeBox) donne la liste des fichiers du rpertoire dont le nom est
contenu dans la proprit path du contrle liste des fichiers.
La proprit pattern permet de spcifier un filtre d'affichage (*.* par dfaut).
En fait, chaque slection de l'utilisateur les rpercutions d'une liste l'autre ne sont pas
automatiques. Il suffit d'crire deux lignes de code pour que tout se passe bien, en utilisant la
procdure d'vnement Change chaque fois que le lecteur ou le rpertoire courant change :
Exemple :
Page 57 / 92
BR_VB_concepts.doc
I- PRINCIPE
On appelle glisser l'opration qui consiste dplacer un contrle en maintenant enfonc un
bouton de la souris.
On appelle dplacer le relchement de ce bouton.
Le tableau suivant indique les proprits, vnements et mthodes associes aux oprations de
glisser - dplacer.
Catgorie
Proprits
Elment
DragMode
DragIcon
Evnements
DragDrop
DragOver
Mthodes
Move
Drag
Description
Permet le glissement automatique ou
manuel d'un contrle
Spcifie l'icne afficher lors du
dplacement du contrle
Correspond la dpose d'un contrle sur un
objet
Correspond au glissement d'un contrle sur
un objet
Dplace un contrle un nouvel
emplacement de coordonnes X et Y
Commence ou arrte un glissement manuel
Les contrles Menu, timer, Line et Shape ne reconnaissent pas les proprits DragMode et
DragIcon, ainsi que la mthode drag (on ne pourra donc pas les dplacer)
Les feuilles reconnaissent les vnements DragDrop et DragOver, ne reconnaissent pas les
proprits DragMode et DragIcon, ainsi que la mthode Drag.
Page 58 / 92
BR_VB_concepts.doc
5.
(EVENEMENT DRAGOVER)
Cet vnement se produit lorsque on fait glisser un contrle sur un autre objet. On peut donc
crire du code dans la procdure d'vnement correspondante, notament pour changer par
exemple le pointeur de la souris pour lui signifier que le dplacement du contrle sur cet objet est
interdit.
La procdure d'vnement comporte 3 paramtres :
source qui donne le contrle dplac et qui peut tre utilis comme un contrle
B.ROCHE / IIRIAM 10/00
Page 59 / 92
BR_VB_concepts.doc
Page 60 / 92
BR_VB_concepts.doc
I- INTRODUCTION
Visual basic permet d'accder des donnes stockes sur disque. Ceci est indispensable en
informatique de gestion pour un langage de dveloppement.
Les donnes peuvent tre stockes :
soit dans des fichiers classiques,
soit dans des bases de donnes.
L'objet de ce chapitre est de traiter l'accs aux donnes stockes dans des bases de donnes.
On peut accder aux donnes d'une base de plusieurs faons. Nous ne nous intresserons ici
l'accs aux donnes d'une base Access 2, dans la mesure o le moteur DataJet est inclus dans
VB. Le contrle Data permet d'accder aux donnes sans quasiment crire de code. L'accs aux
donnes par programmation est largement dvelopp dans le cours D.A.O (Data Access Object).
Page 61 / 92
BR_VB_concepts.doc
2. MISE EN OEUVRE
Il est ncessaire de suivre les tapes suivantes :
Ajouter le contrle Data la feuille.
Une fois que le contrle dessin et dimensionn le contrle sur la feuille, une lgende apparat
(dans l'exemple suivant il s'agit de Data1). Le nom par dfaut du contrle est Data1, il s'agit de la
proprit Caption, que l'on peut changer comme l'on veut.
Dfinir ses proprits de faon identifier la base de donnes et la table partir desquelles
on veut obtenir des informations.
En dehors de la proprit caption, il faut renseigner les proprits suivantes :
Connect : il s'agit du type de base de donnes que l'on souhaite utiliser
DatabaseName pour dfinir le nom du fichier et du rpertoire de la base de donnes
laquelle on souhaite se connecter.
RecordSource pour le nom de la table de base de donnes laquelle on souhaite accder.
On peut modifier les informations contenues dans la base de donnes en changeant la valeur
affiche dans l'un des contrles dpendants. Lorsque l'on clique sur une flche du contrle Data
pour passer un nouvel enregistrement, Visual Basic enregistre automatiquement toutes les
modifications apportes aux donnes.
Bien entendu, on peut ajouter du code pour enrichir l'application.
Page 62 / 92
BR_VB_concepts.doc
Description
Indique si une valeur affiche dans un contrle dpendant a chang.
Spcifie le nom d'un champ dans le jeu d'enregistrements cr par le contrle
Data.
Spcifie le nom du contrle Data auquel le contrle est li.
Page 63 / 92
BR_VB_concepts.doc
Constante
vbEOFActionMoveLast
vbEOFActionEOF
vbEOFActionAddNew
Valeur
Action
0
Une mthode MoveLast a t utilise pour positionner
l'enregistrement en cours au niveau du dernier enregistrement
du jeu d'enregistrements et ainsi empcher l'utilisateur de
poursuivre le dfilement au-del de la fin du jeu
d'enregistrements.
1
Positionne l'enregistrement en cours au niveau de
l'enregistrement non valide (EOF) et dsactive le bouton
correspondant la mthode MoveNext dans le contrle Data.
2
Valide le dernier enregistrement et invoque automatiquement
la mthode AddNew avant de positionner le contrle Data au
niveau du nouvel enregistrement.
Si la proprit EOFAction a la valeur vbEOFActionAddNew, lorsque l'utilisateur se dplace audel du dernier enregistrement, le contrle Data cre automatiquement un nouvel enregistrement
et autorise l'utilisateur taper des donnes. Quand l'utilisateur tape de nouvelles donnes puis
quitte l'enregistrement en cours (le nouvel enregistrement), celui-ci est automatiquement mis
jour et enregistr dans la base de donnes. En revanche, si l'utilisateur quitte le nouvel
enregistrement sans ajouter des donnes, celui-ci est effac.
Utilisation de la mthode AddNew
Il est galement possible d'ajouter un nouvel enregistrement l'aide de la mthode AddNew de
l'objet Recordset du contrle Data. Cette mthode ncessite toutefois l'emploi de code Visual
Basic. Sa syntaxe est la suivante :
Data1.Recordset.AddNew
Quand la mthode AddNew est utilise, Visual Basic ajoute un nouvel enregistrement la fin du
jeu d'enregistrements. A ce stade, tous les contrles dpendants sont vids de leur contenu et on
peut taper les valeurs du nouvel enregistrement. Aprs l'ajout d'un nouvel enregistrement, on doit
enregistrer les informations en appliquant la mthode Update ou en cliquant sur une flche du
contrle Data pour atteindre un autre enregistrement. La syntaxe de la mthode Update est la
suivante :
Data1.Recordset.Update
Quand on utilise les flches du contrle Data ou une des mthodes Move pour se dplacer
jusqu' un autre enregistrement, la mthode Update est automatiquement appele pour
enregistrer le nouvel enregistrement.
Page 64 / 92
BR_VB_concepts.doc
* Remarque : Une tentative d'ajout ou de modification d'un enregistrement peut chouer dans
les conditions suivantes :
la table possde un index unique et cet enregistrement figure dj dans la table ;
la valeur Null est affecte un des champs de la cl d'index de votre enregistrement ;
on ne dispose pas de la permission d'criture pour la table ou la base de donnes ;
la base de donnes, la table ou le champ ne peut pas tre mis jour ;
la page qui contient l'enregistrement est verrouille ;
le contenu du contrle dpendant ne correspond pas la dfinition du champ dans la base de
donnes ;
la modification enfreint une des rgles d'intgrit de la base de donnes;
la modification enfreint une des rgles de validation que l'on a spcifi.
Il faudra donc systmatiquement envisager ces cas lorsque l'on fera une modification ou un ajout
d'enregistrement en crant des routines de gestion d'erreur.
Si on souhaite annuler la mthode AddNew, il suffit d'excuter une nouvelle fois cette mme
mthode ( condition de ne pas avoir valid l'enregistrement par update ou par la flche du
contrle Data) et de passer un autre enregistrement. On peut galement excuter la mthode
UpdateControls du contrle Data pour restaurer les valeurs prcdentes des contrles
dpendants.
Page 65 / 92
BR_VB_concepts.doc
Contrairement la plupart des autres contrles dpendants, les contrles DBList et DBCombo
se caractrisent par cinq proprits spciales, numres dans le tableau ci-aprs, qui
dfinissent la liaison aux donnes.
Proprit
DataSource
DataField
RowSource
BoundColumn
ListField
Description
Nom du contrle Data auquel est li le contrle DBList ou
DBCombo.
Nom d'un champ dans le jeu d'enregistrements spcifi par la
proprit DataSource. Ce champ servira dterminer quel
lment de la liste sera mis en surbrillance. En cas de nouvelle
slection, ce champ est mis jour quand on passe un autre
enregistrement
Nom du contrle Data qui servira remplir la liste.
Nom d'un champ dans le jeu d'enregistrements spcifi par la
proprit RowSource. Cette liste doit tre du mme type que le
champ DataField qui sera utilis pour mettre jour DataField.
Nom d'un champ dans le jeu d'enregistrements spcifi par la
proprit RowSource qui sera utilis pour remplir la liste.
Ces contrles sont gnralement utiliss pour construire une liste d'lments sur la base d'une
requte de base de donnes partir de laquelle un utilisateur peut slectionner ou taper une
valeur, voire modifier le champ slectionn dans le cas d'une liste modifiable dpendante.
Lorsqu'un lment de la liste est slectionn, la valeur BoundColumn qui lui est associe devient
accessible au contrle Data spcifi par la proprit DataSource. Ds que le contrle Data passe
un autre enregistrement ou est mis jour d'une autre manire, le jeu d'enregistrements est mis
jour avec le texte slectionn ou modifi.
Exemple
On va tudier un exemple concret pour d'utilisation que l'on peut faire de ces deux contrles.
On gre des lves qui appartiennent un lyce. Un lve n'est inscrit que dans un et un seul
lyce, on a donc naturellement le numro du lyce dans la table des lves. Lorsqu'on saisit un
lve, on veut lui affecter le numro de lyce adquat. Le problme, c'est que dans une feuille de
saisie digne de ce nom, on veut que l'oprateur choisisse parmi une liste de nom de lyces et
que le numro soit automatiquement affect dans la table des lves de manire transparente.
Voici donc le mode opratoire pour raliser cet exemple.
La table ELEVES contient les champs suivants : noel de type compteur, nomel de type chane,
prenomel de type chane, nolyc de type entier long.
La table LYCEE est compose de : nolyc de type compteur, nomlyc de type chane, ville de type
chane.
Sur une feuille de travail, on place les contrles ncessaires la saisie ou la modification d'un
lve :
- 4 contrles de type zone de texte (textbox) appels txtnoel, txtnomel, txtprenomel et txtnolyc,
- un contrle data appel data1.
Les proprits du contrle donnes modifier sont :
- databasename : le nom de la base avec son chemin d'accs (VB offre un parcours standard),
- recordsource : eleve.
Page 66 / 92
BR_VB_concepts.doc
Pour chacun des contrles zone de texte, il faut que la proprit datasource contienne la valeur
data1 et que la proprit datafield contienne le nom du champ de la table lve correspondant.
Pour la liste des lyces, on insre un contrle dbcombo, appel DbClistlyc, et un deuxime
contrle de donnes appel data2 (dont on peut mettre la proprit visible false).
La proprit databasename de data2 est la mme que data1, la proprit recordsource de data2
doit contenir lycee.
Les proprits du contrle DbClistlyc sont :
- rowsource : data2,
- listfield : nomlyc,
- datasource indique le contrle donnes devant tre mis jour, ici : data1,
- datafield est le champ devant tre mis jour, ici : nolyc (numro de lyce de la table ELEVE),
- Boundcolumn indique le lien entre les deux tables, ici : nolyc (numro de lyce de la table
LYCEE).
Lorsqu'une slection est faite dans la liste, la proprit boundtext contient la valeur du champ
indiqu dans boundcolumn correspondant la ligne slectionne; en clair elle contiendra le
numro du lyce correspondant au nom de lyce slectionn dans la liste.
Le problme est que le report n'apparat pas immdiatement l'cran, pour que cela se fasse il
suffit d'ajouter la ligne de code suivante dans la procdure vnement change du contrle
DbClistlyc :
nolyc.text = lystlyc.boudtext
Pour ajouter un nouvel enregistrement, on place un bouton de commande, sur l'vnement click
on crit la ligne suivante :
data1.recordset.addnew
2. LE CONTROLE DBGRID
Il est possible de personnaliser intgralement le contrle DBGrid et de le manipuler
directement dans le code, ce qui confre une grande souplesse dans la cration d'applications de
base de donnes sur mesure.
Dans bien des cas cependant, DBGrid servira afficher et parcourir rapidement tous les
enregistrements d'une table de base de donnes. On peut effectuer cette opration en quelques
minutes, sans crire une seule ligne de code.
Pour utiliser DBGrid afin d'afficher et de parcourir une table de base de donnes existante, il faut
suivre la procdure suivante :
Ajouter un contrle Data une nouvelle feuille et spcifier la base de donnes et la table
afficher (proprits DatabaseName et RecordSource de ce contrle).
-2. Ajouter un contrle DBGrid la feuille et li attribuer le contrle Data que l'on vient de crer
(proprit DataSource).
3. Excutez l'application.
Page 67 / 92
BR_VB_concepts.doc
Lorsque le programme s'excute, la table de base de donnes que spcifie s'affiche dans le
contrle DBGrid, avec tous ses lments : titres de colonne (provenant du Recordset du contrle
Data) et barres de dfilement. On peut immdiatement passer en revue tous les enregistrements
et les champs de la table. De plus, il est possible de modifier n'importe quelle cellule de la table,
la mise jour s'effectuant automatiquement ds que l'on passe une autre ligne ( condition que
la mise jour du Recordset sous-jacent soit possible et que la proprit AllowUpdate du contrle
DBGrid ait la valeur True).
Si les proprits AllowAddNew et AllowDelete possdent la valeur True, On peut mme
supprimer des enregistrements en slectionnant et en supprimant la ligne toute entire.
a) Concepts fondamentaux
Le contrle DBGrid dpend de deux autres objets :
L'objet Recordset du contrle Data ;
La collection Columns de ce contrle DBGrid.
DBGrid est en fait une collection d'objets Column, comportant chacun un nombre de lignes
variable. Chaque colonne correspond un champ d'une table de base de donnes et chaque
ligne un enregistrement. La proprit Count de la collection Columns du contrle dtermine le
nombre de colonnes, et la proprit RecordCount du Recordset du contrle Data dtermine le
nombre de lignes.
A l'excution, les proprits Row et Col spcifient la cellule courante dans une grille. On peut
donc utiliser ces proprits dans le code. L'utilisateur peut la modifier l'excution, l'aide d'une
souris ou des touches de direction. Quand l'utilisateur change de cellule courante, le Recordset
du contrle Data sous-jacent est repositionn automatiquement sur l'enregistrement contenant la
cellule slectionne.
(1)
Page 68 / 92
BR_VB_concepts.doc
Page 69 / 92
BR_VB_concepts.doc
Page 70 / 92
BR_VB_concepts.doc
(3)
Champs calculs
Il est possible d'utiliser le contrle DBGrid pour afficher des champs calculs. On appelle ainsi
des champs qui ne figurent pas rellement dans la base de donnes, mais sont calculs partir
des donnes contenues dans les champs de cette base.
Un exemple de champ calcul est fourni par l'affichage d'une colonne "TVA" lorsque la base de
donnes contient seulement un champ "prix".
Pour afficher un champ calcul il faut :
Ajouter un champ indpendant au contrle DBGrid.
- Sur l'vnement RowLoaded, effectuer le calcul et affecter le rsultat la proprit Value
de la colonne.
Page 71 / 92
BR_VB_concepts.doc
I- INTRODUCTION
L'objet de ce chapitre est de traiter l'accs aux donnes stockes dans des fichiers sachant que
c'est loin d'tre le cas le plus frquent. Stocker des informations dans des fichiers peut tre
toutefois intressant dans une application, par exemple pour stocker des donnes de manire
temporaire, ou bien lorsque l'on ne manipule qu'un nombre trs restreint d'informations (tant en
nombre de fichiers que d'enregistrements).
Le type de donnes contenues dans le fichier permet de dterminer le type d'accs ce fichier. Il
existe trois types d'organisation et d'accs de fichiers dans Visual Basic :
Squentiel : concerne les fichiers texte standards. Les donnes sont stockes sous forme de
caractre ANSI. Chaque caractre du fichier reprsente un caractre de texte ou bien un
caractre de mise en forme (Retour chariot par exemple). On peut visualiser le contenu de ces
fichiers sous un diteur de texte.
Alatoire : contient un certain nombre d'enregistrements de longueur fixe. Un enregistrement
peut donc comporter un certain nombre de champs. Les informations sont stockes en binaire.
On accde un enregistrement avec son numro.
Binaire : il s'agit du mme type de fichier que le prcdent, mis part le fait qu'il n'y a pas de
contrainte quant aux types de donnes ni la longueur des enregistrements. On ne l'utilisera
quasiment jamais.
LOF
Seek
Signification
Renvoie le nom d'un fichier, d'un rpertoire, ou bien le nom de
volume d'un lecteur.
Renvoie une valeur qui indique si la fin d'un fichier est atteinte.
EOF(filenumber)
Copie un fichier. FileCopy source, destination
Renvoie une date qui indique la date et l'heure de la cration ou
de la dernire modification d'un fichier. FileDateTime(pathname)
Renvoie la taille d'un fichier en octets. FileLen(pathname)
Renvoie le numro de fichier disponible suivant l'usage de
l'instruction Open. FreeFile[(plage)]
Renvoie un nombre qui reprsente les attributs d'un fichier ou
d'un rpertoire. GetAttr(pathname)
Renvoie la position de lecture/criture en cours dans un fichier
ouvert. Loc(filenumber)
Renvoie la longueur, exprime en octets, d'un fichier ouvert
l'aide de l'instruction Open. LOF(filenumber)
Renvoie la position de lecture/criture en cours dans un fichier
ouvert l'aide de l'instruction Open. Seek(filenumber)
Page 72 / 92
BR_VB_concepts.doc
Fonction
SetAttr (instruction)
Signification
Dfinit les attributs d'un fichier. SetAttr pathname, attributes
Page 73 / 92
BR_VB_concepts.doc
Page 74 / 92
BR_VB_concepts.doc
LES ENREGISTREMENTS
Dans un fichier en accs alatoire, tous les enregistrements doivent avoir une longueur fixe. On
peut donc, si besoin, dclarer des types d'enregistrements.Les types de donnes dfinis par
l'utilisateur peuvent contenir un ou plusieurs lments d'un type de donnes fondamental
quelconque, d'un type de tableau ou d'un autre type prcdemment dfini par l'utilisateur.
exemple :
Type Enfants
MonNom As String
MonAnniversaire As Date
MonSexe As Integer
End Type
2. OUVERTURE
Open chemin For Random [Access accs] [verrou] As [#]numrofichier Len=longueur
chemin
accs
verrou
numrofichier
longueur
Page 75 / 92
BR_VB_concepts.doc
numrofichier
numroenreg
variable
Exemple
Type Enreg
' Dfinit un type dfini par l'utilisateur.
ID As Integer
Nom As String * 20
End Type
Dim MonEnreg As Enreg
' Dclare la variable.
Open "FICHTEST" For Random As #1 Len = Len(MonEnreg) ' Ouverture du fichier en Random.
Position = 3
' Dfinit le numro d'enregistrement.
Get #1, Position, MonEnreg
' Lit le troisime enregistrement.
Close #1
' Ferme le fichier.
Remarque : Pour supprimer un enregistrement dans un fichier accs alatoire, il faut crer
un nouveau fichier alatoire, recopier dedans les enregistrements garder, supprimer le fichier
d'origine (instruction Kill) et renommer le nouveau fichier pour lui donner le nom de celui que l'on
vient de dtruire (instruction Name).
Page 76 / 92
BR_VB_concepts.doc
I- PRESENTATION
Une application MDI (Multiple Document Interface) permet de visualiser, dans une feuille
principale, un ensemble de feuilles-enfants (MDIChild). Ces feuilles peuvent contenir :
des reprsentations diffrentes d'une mme information,
plusieurs enregistrements d'une base de donnes
des informations complmentaires...
Exemple de visualisation d'une mme information dans 2 feuilles-enfants :
On pourrait utiliser des feuilles indpendantes pour raliser la mme opration, alors pourquoi
une application MDI ? En fait, il y a plusieurs avantages offerts par cette technique; tout d'abord,
les feuilles-enfants ne sortent pas de la fentre principale lorsqu'on les dplace. On peut iconifier
les feuilles-enfants l'intrieur de la feuille principale. On dispose de mthodes permettant la
matrise de positionnement des feuilles-enfants. Ces avantages sont essentiellement lis une
meilleur utilisation de l'cran pour les applications ouvrant trop de fentres afin que l'espace de
travail de l'utilisateur ne soit pas trop surcharg.
Page 77 / 92
BR_VB_concepts.doc
Valeurs
Page 78 / 92
BR_VB_concepts.doc
I- INTRODUCTION
Lorsque des erreurs surviennent dans le code et que l'on ne les vrifie pas, Visual Basic gnre
souvent une erreur d'excution qui arrte l'excution du code et empche gnralement
l'utilisateur de poursuivre l'application. Il existe aussi d'autres types d'erreurs qui n'arrtent pas
l'excution du code, mais qui peuvent tre l'origine d'actions imprvisibles.
Visual Basic permet d'intercepter ces erreurs. Le processus de gestion d'erreurs comprend trois
tapes :
Dfinir (ou valider) un intercepteur d'erreur en indiquant l'application o effectuer le
branchement en cas d'erreur, c'est--dire quelle routine de gestion d'erreur excuter.
L'instruction On Error valide cet intercepteur et dirige l'application vers une tiquette.
Ecrire une routine de gestion d'erreur qui soit en mesure de rpondre aux diverses erreurs
susceptibles d'intervenir. Si le contrle passe effectivement l'intercepteur, celui-ci est alors
dit actif
Quitter la routine de gestion d'erreur.
Les instructions Resume et Resume Next permettent de reprendre le droulement de
l'application.
On Error GoTo 0
Page 79 / 92
BR_VB_concepts.doc
Un intercepteur d'erreur est valid lorsque Visual Basic excute l'instruction On Error,
laquelle dsigne un gestionnaire d'erreur. L'intercepteur demeure ensuite Valid tant que la
procdure qui le contient est active, c'est--dire jusqu' ce qu'une instruction Exit Sub, Exit
Function, Exit Property, End Sub, End Function ou End Property soit excute pour cette
procdure. Bien qu'un seul intercepteur d'erreur puisse tre valid la fois pour une procdure
donne, on peut crer plusieurs intercepteurs d'erreur et valider tel ou tel intercepteur selon la
situation. Il est galement possible d'invalider un intercepteur d'erreur l'aide de l'instruction
On Error Goto O. (Voir chapitre Erreurs inattendues).
Resume Next
Resume ligne
Page 80 / 92
BR_VB_concepts.doc
V- ERREURS INATTENDUES
Comme on l'a vu plus haut, on dit qu'un gestionnaire d'erreur est valid par l'excution d'une
instruction On Error et s'il n'a pas encore t arrt par une instruction On Error GoTo O ou en
quittant la procdure o il a t valid. On dit d'un gestionnaire d'erreur qu'il est actif lorsqu'il est
en cours d'excution. Un gestionnaire d'erreur doit tre valid avant de pouvoir tre actif, mais il
n'est pas ncessairement actif par ce simple fait. Aprs une instruction Resume, par exemple, le
gestionnaire est dsactiv, mais demeure valid.
Lorsqu'une erreur intervient l'intrieur d'une procdure ne contenant pas de routine de gestion
d'erreur valide ou au sein d'une routine de gestion d'erreur active, Visual Basic recherche dans
la liste des appels une autre routine de gestion d'erreur valide.
On visualise ce phnomne dans le cas suivant :
1 Une procdure d'vnement appelle la procdure A.
2.La procdure A appelle la procdure B.
3 La procdure B appelle la procdure C.
Sub ProcedureA ()
X = ProcedureB()
......
End Sub
Function Procedure B ()
ProcedureC()
Sub ProcedureC ()
......
......
End Funct
......
End Funct
Si une erreur se produit dans la procdure C et si celle-ci ne contient pas de gestionnaire d'erreur
valid, Visual Basic en recherche un en remontant dans les procdures en attente, en
l'occurrence, d'abord dans la procdure B, puis dans la procdure A, puis dans la procdure
d'vnement d'origine (mais pas plus loin). Il excute le premier gestionnaire d'erreur valid
rencontr. S'il n'en existe aucun, il affiche le message appropri et arrte l'excution.
Si Visual Basic trouve une routine de gestion d'erreur valide, l'excution se poursuit dans celleci, comme si l'erreur s'tait produite dans la procdure qui contient le gestionnaire d'erreur. Si une
instruction Resume ou Resume Next est excute l'intrieur de la routine de gestion d'erreur,
l'excution se poursuit comme indiqu dans le tableau suivant :
Page 81 / 92
BR_VB_concepts.doc
Rsultat
Resume Next
On peut remarquer que l'instruction excute est situe dans la procdure dans laquelle la
procdure de gestion d'erreur est localise et non pas ncessairement dans celle o l'erreur s'est
produite. Si on ne tient pas compte de ceci, le code risque d'avoir des comportements imprvus.
Pour faciliter le dbogage du code, on peut simplement passer en mode Arrt chaque fois qu'une
erreur se produit. (voir les options de dbogage).
Exemple de gestion des erreurs
La procdure suivante renvoie la valeur True si le fichier spcifi existe et dans le cas contraire,
la valeur False. Elle ne contient pas de code de gestion d'erreur :
Function FileExists (filename) As Boolean
FileExists = (Dir(filename) <> "")
End Function
En effet, cette fonction utilise la fonction Dir qui renvoie le nom du premier fichier (avec ou sans
caractres gnriques, lettre de lecteur ou chemin d'accs) correspondant celui qui est spcifi.
En revanche, si elle ne trouve aucun fichier correspondant, elle renvoie une chane de longueur
nulle.
Le code semble rpondre aux deux rsultats possibles de l'appel de la fonction Dir. Cependant,
si la lettre de lecteur spcifie dans l'argument ne correspond pas un lecteur valide, l'erreur
Priphrique non disponible est gnre. De mme, si le lecteur spcifi est un lecteur de
disquette, cette fonction ne s'excute correctement que si le lecteur en contient une et que son
volet est referm. Si ce n'est pas le cas, Visual Basic gnre l'erreur Disque non prt et arrte
l'excution du code.
Pour remdier aux problmes causs par un lecteur non valide ou par l'absence de disquette
dans un lecteur, il suffit d'ajouter le code suivant :
Function FileExists (filename) As Boolean
Dim Msg As String
On Error GoTo CheckError ' Active l'interception des erreurs afin que la routine
de gestion d'erreur ragisse si une erreur est
dtecte.
FileExists = (Dir(filename) <> "")
Exit Function
CheckError:
Page 82 / 92
BR_VB_concepts.doc
Page 83 / 92
BR_VB_concepts.doc
LE DEBOGAGE
I- INTRODUCTION
Les techniques de dbogage de Visual Basic incluent des points d'arrt, des expressions d'arrt,
des expressions espionnes, un mode d'excution pas pas, un mode d'excution procdure par
procdure et l'affichage des valeurs des variables des proprits. Visual Basic comprend aussi
des options spciales de dbogage, telles que la possibilit de modifier et de continuer
l'excution, la dfinition de l'instruction suivante excuter et la vrification des procdures
pendant que l'application est en mode arrt.
1. ERREURS DE COMPILATION
Elles proviennent d'un code incorrectement construit. (exemples : erreur de syntaxe,mot cl mal
orthographi, signes de ponctuation, une instruction Next sans l'instruction For
correspondante,...). Visual Basic dtecte ces erreurs lors de la compilation de l'application.
On peut viter de rencontrer ces erreurs lors de la compilation, en utilisant l'option "Vrification
automatique de la syntaxe", qui forcera Visual Basic afficher un message d'erreur ds que l'on
aura fait une erreur de syntaxe en saisissant le Code.
Pour activer l'option "vrification automatique de la syntaxe " :
Choisir Outils Options, et cliquer sur l'onglet Environnement dans la bote de dialogue
Options.
- Slectionner "Vrification automatique de la syntaxe".
2. ERREURS D 'EXECUTION
Les erreurs d'excution surviennent (et sont dtectes par Visual Basic) lorsqu'une instruction
tente une opration impossible excuter. L'exemple courant est la division par zro. Comme
l'application doit s'excuter pour pouvoir dtecter cette erreur, il est recommand d'inclure dans
les applications un code destin intercepter et grer les erreurs d'excution lorsqu'elles se
produisent. Voir le chapitre "Gestion des erreurs".
3. ERREURS DE LOGIQUE
Les erreurs de logique se produisent lorsqu'une application ne s'excute pas comme prvu. Une
application peut tre crite correctement d'un point de vue syntaxique, se drouler sans
rencontrer d'oprations non valides, et toutefois produire des rsultats incorrects. Ce n'est qu'en
testant l'application et en analysant les rsultats que l'on peut en vrifier le bon fonctionnement.
Visual Basic fournit des outils pour faciliter la mise au point de l'application.
Page 84 / 92
BR_VB_concepts.doc
Informations immdiates
La barre de titre de Visual Basic indique toujours le mode en cours. Ce mode est l'un des trois
suiavnts : cration, excution et mode arrt. On passe de l'un l'autre l'aide des trois boutons
de la barre d'outils.
La disponibilit de ces boutons dpend du mode dans lequel se trouve Visual Basic (excution,
cration ou arrt). Le tableau suivant indique les boutons accessibles dans chacun de ces modes
:
Mode
Boutons disponibles
Cration
Excuter
Excution
Arrt, Fin
Arrt
Continuer, Fin
Page 85 / 92
BR_VB_concepts.doc
2. T ECHNIQUES DE DEBOGAGE
Avant l'excution d'un programme qui pose problme, on peut spcifier les lignes sur lesquelles
on souhaite que le programme s'arrte.
En mode cration, on place le curseur sur une ligne de programme on clique sur le bouton
"Basculer le point d'arrt" ou on appuie sur la touche F9.
On vient alors de dclarer un point d'arrt. Pour l'enlever, on refait la mme opration.
Pour dboguer votre programme, on le lance normalement et il va s'arrter sur le premier point
d'arrt qu'il rencontre. A ce moment, on peut choisir l'une des possibilits suivantes :
ignorer simplement le point d'arrt en demandant au programme de continuer s'excuter
normalement : il suffit de cliquer sur le bouton "excution de l'application" pour poursuivre ou bien
appuyer sur la touche F5
continuer l'excution du programme instruction par instruction. C'est le mode "pas pas".
On peut choisir entre le mode pas pas dtaill (bouton ou touche F8) ou principal (bouton ou
touche MAJ + F8).
L'excution pas pas principale est identique l'excution pas pas dtaill, sauf lorsque
l'instruction en cours contient un appel une procdure. Contrairement la commande pas pas
dtaill qui excute progressivement la procdure appele, la commande pas pas principal
excute la procdure en bloc, puis passe l'instruction suivante de la procdure en cours.
spcifier la prochaine instruction excuter, si on ne souhaite pas que ce soit l'instruction
suivante (cela peut tre fort utile pour sortir d'une boucle infinie !!!), on clique sur l'instruction o
on dsire aller et on tape sur les touches Ctrl + F9 (ou Excuter Dfinir l'instruction suivante),
afficher dans la fentre "Information immdiate" le contenu d'une variable dont on doute : on
slectionne la variable dans le programme et on clique sur le bouton information immdiate (celui
qui reprsente une paire de lunettes).
ajouter une variable espion, en cliquant sur le bouton "Ajouter" de la fentre "information
immdiate". Ceci permettra d'ajouter une ligne permanente dans la fentre "Debug" o le contenu
de la variable souhaite s'affichera et sera rafrachie chaque modification.
utiliser le bas de la fentre "Debug" pour y taper n'importe quelle instruction Visual Basic
valide, y compris l'instruction "?" qui quivaut Print et qui est fort utile pour afficher
immdiatement la valeur d'une variable ou d'une expression.
corriger une erreur d'excution et poursuivre l'excution du programme. Cette possibilit est
trs utilise, notamment quand l'erreur provient de noms mal orthographis ou de proprits ou
mthodes mal accordes aux objets.
Page 86 / 92
BR_VB_concepts.doc
1. LE VOLET "ESPION"
Le volet Espion affiche les expressions espionnes en cours, qui sont des expressions dont on
dcide de contrler les valeurs au fur et mesure de l'excution de l'application. Dans ce volet,
la colonne "Contexte" indique la procdure, le module ou les modules dans le(s)quel(s) chaque
expression est value.
Le volet Excution peut afficher la valeur d'une expression espionne pour autant que l'instruction
en cours figure dans le contexte spcifi. Sinon, la colonne "Valeur" affiche un message
indiquant que l'instruction est hors contexte.
2. LE VOLET EXECUTION
Le volet Excution affiche des informations fournies par les instructions de dbogage du code ou
des informations que l'on demande en tapant directement des commandes dans le volet.
La procdure et la feuille (ou module) en cours dterminent les variables qui peuvent s'afficher,
conformment aux rgles de porte des variables.
On peut employer la mthode Debug.Print pour examiner les valeurs de variables locales de la
procdure affiche ou la valeur d'une variable publique.
B.ROCHE / IIRIAM 10/00
Page 87 / 92
BR_VB_concepts.doc
Page 88 / 92
BR_VB_concepts.doc
LES MENUS
I- PRESENTATION
On peut utiliser le Crateur de menus pour ajouter des commandes des menus existants ou
remplacer des commandes existantes par des commandes propres l'application, crer des
menus et barres de menus, modifier ou supprimer des menus et barres de menus existants. Le
Crateur de menus est trs simple d'utilisation. On peut personnaliser des menus de faon
entirement interactive, rduisant ainsi les tches de programmation.
Pour afficher le Crateur de menus, il suffit de choisir Outils Crateur de menus dans la barre
de menu ou de cliquer sur le bouton le bouton "Crateur de menus" dans la barre d'outils.
Le crateur de menus se prsente ainsi :
La plupart des proprits des contrles de menu peuvent tre dfinies l'aide du Crateur de
menus. Par contre, toutes les proprits de menus sont disponibles dans la fentre Proprits.
Les deux principales proprits des contrles de menu sont les suivantes :
Name : Nom utilis pour faire rfrence au contrle de menu dans le code de l'application.
Caption : Texte qui apparat sur le contrle que verra l'utilisateur).
Page 89 / 92
BR_VB_concepts.doc
La position du contrle de menu dans la zone de liste des contrles de menu indique si le
contrle est un titre de menu, un lment de menu, un titre de sous-menu ou un lment de
sous-menu :
Un contrle de menu align gauche dans la zone de liste apparat comme un titre de menu
dans la barre de menus.
Un contrle de menu qui prsente un premier niveau de retrait dans la zone de liste apparat
sur le menu lorsque l'utilisateur clique sur le titre du menu prcdent.
Un contrle de menu suivi de plusieurs contrles de menu en retrait est un titre de sous-menu
et les contrles de menu qui le suivent sont les lments qui composent ce sous-menu.
Un contrle de menu avec un tiret (-) comme paramtre de proprit caption, apparat comme
une barre sparatrice. Une barre sparatrice spare les lments de menu en groupes logiques.
II- CONCEPTION
Pour crer des contrles de menu dans le Crateur de menus, il faut suivre les tapes suivantes :
Slectionner la feuille.
- Slectionner Outils Crateur de menus ou Choisir le bouton "Crateur de menus" dans la
barre d'outils.
Dans la zone de texte "Caption", taper le texte du premier titre de menu que l'on veut voir
apparatre dans la barre de menus. De mme, insrer le signe & avant la lettre que l'on souhaite
dfinir comme touche d'accs rapide pour cet lment de menu. Cette lettre sera
automatiquement souligne dans le menu. Le texte du titre du menu apparat dans la zone de
liste des contrles de menu.
Dans la zone de texte "Name", taper le nom que l'on utilisera pour faire rfrence au contrle
de menu dans le code.
A l'aide des boutons "Flche gauche" et "Flche droite", modifier le niveau de retrait du
contrle.
B.ROCHE / IIRIAM 10/00
Page 90 / 92
BR_VB_concepts.doc
Si ncessaire, dfinir d'autres proprits pour ce contrle. On pourra les modifier par la suite.
Choisir le bouton "Suivant" pour crer un autre contrle de menu ou choisir le bouton "Insrer"
pour ajouter un contrle de menu entre des contrles existants. On peut galement utiliser les
boutons "Flche vers le haut" et "Flche vers le bas" pour dplacer le contrle parmi les contrles
existants.
Une fois que l'on a cr tous les contrles de menu voulus pour cette feuille, choisir "OK" pour
fermer le Crateur de menus.
Les titres de menus que l'on vient de crer apparaissent sur la feuille. Pour drouler le contenu
d'un menu, il suffit de cliquer sur le titre correspondant.
Syntaxe
mnuTitreMenu
mnuTitreMenuItem
mnuTitreMenuArray
mnuTitreSous-MenuItem
Page 91 / 92
Exemple
mnuFichier
mnuFichierItem
mnuFichierArray
mnuCouleurItem
BR_VB_concepts.doc