Vous êtes sur la page 1sur 51

Cours 1 : Prsentation de l'interface de VB

Aprs avoir lanc Visual Basic, vous devez voir apparatre l'cran une bote de
dialogue vous demandant quel genre d'application voulez-vous crer? Choisissez "EXE
Standard" si vous voulez crer un programme. Quant aux autres types d'applications,
laissez-les de ct pour le moment. Vous verrez alors apparatre en face de vous une
fentre fragmente en plusieurs petites fentres. Au premier abord, cela doit
certainement vous effrayer de voir une multitude de mini fentres. Ne vous inquitez pas,
votre comportement est tout fait normal. N'importe quel NEWBIE aurait eu ce
comportement. Moi-mme, je l'ai t et j'ai pens au dbut que Visual Basic tait un
logiciel trop compliqu pour moi et j'ai voulu laisser tomber ce fabuleux logiciel. Mais ce
qui m'a encourag continuer utiliser Visual Basic, c'est la possibilit de crer, crer
un programme mme si ce n'est qu'une simple petite application car je sais qu'aprs je
pourrai concevoir des programmes plus labors au fur mesure que j'acquiers de
nouvelles connaissances.
Ca y est? Vous tes dcid continuer apprendre ce langage informatique et faire
partie de la communaut des programmeurs? Alors, allons-y! Commenons par dcrire
toutes ces multitudes de fentres.
La partie suprieure de la fentre est form du systme de menus et d'une barre

d'outils tout comme d'autres logiciels(Office, Lotus,...).


La partie de gauche est constitu de la bote outils. (Attention, ne confondez pas
barre d'outils avec bote outils. La barre d'outils est une version simplifie du
systme de menus. Elle permet d'accder plus rapidement aux sous-commandes
du systme de menus.) Quant la bote outils, elle permet de slectionner les
contrles (ou si voulez "objets"), puis ensuite de les placer sur la partie centrale
de la fentre. Pour placer un contrle, slectionnez d'abord un contrle dans la bote
outils, puis, tracez une zone rectangulaire sur la feuille qui se trouve au milieu. Si
vous voulez ajouter de nouveaux contrles dans la bote outils, appuyez sur le
bouton droit de votre souris dans la bote outils pour faire apparatre le menu
contextuel. Appuyez sur la sous-commande "Composants" pour faire apparatre
la liste de tous les contrles mis votre disposition.
Cette feuille situe au centre, n'est autre que la future interface graphique de votre
application (appel aussi "interface utilisateur").
Enfin, la partie de droite est constitue de 3 botes de dialogue :
1. La 1re est la bote de dialogue "Projet" qui donne la liste de toutes les
feuilles qui constituent votre future application.
2. La 2me est la bote de dialogue "Proprits". Elle donne accs aux
proprits du contrle slectionn.
3. Enfin, la 3me est la bote dialogue "Prsentation des feuilles". Elle permet
de modifier la position de la feuille de travail actuellement slectionne.

Cours 2 : Structure des procdures


Une application est constitue essentiellement de l'interface utilisateur, forme elle-mme
de plusieurs contrles, et de procdures qui gnre des actions. A prsent, analysons la
structure
d'une
procdure.
La syntaxe d'criture d'une procdure est la suivante :
[Public / Private] [Static] Sub Nom_proc (arguments)
[Dclarations]
[Instructions]
[exit Sub]
[Instructions]
End Sub

Le mot Sub peut ou non tre prcd des options suivantes :


1. Les mots Public ou private dfinissent les limites de la procdure.

o Avec Public, la procdure peut tre appele depuis n'importe quelle

instruction de l'application.
o Avec private, la procdure ne peut tre appele qu' l'intrieur de la mme

feuille ou du mme module.


2. Vous devez dclarer en dbut de procdures vos variables et constantes si vous ne
l'avez pas fait dans la partie Gnral de la liste droulante Objet qui se trouve en
haut, gauche de l'diteur de code. Remarquez que si vous dclarez vos variables
l'intrieur de la procdure, sa porte sera limite qu' cette procdure;
3. Static signifie que toutes les variables locales dclares dans la procdure doivent
conserver leur valeur entre 2 appels.
4. Exit Sub permet de quitter la procdure avant la fin normale de celle-ci;
5. End Sub ferme la procdure.
Pour cela, prenons un simple exemple :
Private Sub Form_Load()
Dim DateNaissance
Dim Message, Titre As String
Message = "Date de naissance ?"
Titre = "Entrez votre date de naissance : "
DateNaissance = InputBox(Message, Titre)
If DateNaissance <> "" Then
DateNaissance = Format(DateNaissance, "Long Date")
MsgBox DateNaissance, vbOKOnly + vbInformation, "Vous tes n(e)
le"
End
Else
While DateNaissance = ""
MsgBox "Entrez une date", vbOKOnly + vbExclamation, "Attention!"
DateNaissance = InputBox(Message, Titre)
Wend
DateNaissance = Format(DateNaissance, "Long Date")
MsgBox DateNaissance, vbOKOnly + vbInformation, "Vous tes n(e)
le"
End
End If
End Sub

Le but de ce programme est certes inutile, vous direz-vous, puisqu'il consiste juste
demander la date de naissance quelqu'un et de l'afficher par la suite. Mais les
instructions de cette procdures renferment une partie des bases de la programmation en
VB6.
Ce n'est pas important si vous n'avez pas compris toutes les instructions de cette
procdure. Contentez-vous pour l'instant de lire cette procdure et observez simplement
de
quoi
peut
tre
compose
une
procdure.
A prsent, passons une analyse simplifie de cette procdure :

La 1re ligne contient des infos sur le nom de la feuille principale (Form1) du

projet, du type d'vnement qui permet de lancer cette procdure. Ici


L'vnement en question est Load, ce qui veut dire que cette procdure sera
excute au chargement de la feuille "Form1".
dans les 2mes et 3mes lignes, sont dfinis des variables limites cette procdure
uniquement.
Les lignes suivantes sont formes d'instructions servant dfinir le comportement
de la feuille ds son chargement. (Nous verrons de plus prs ces instructions dans
les cours suivants.)
La dernire ligne End Sub clt la procdure.

Cours 3 : Les variables et les constantes

Dfinition des variables | Diffrents type de variables | Dclaration des variables | Porte des
variables | Les constantes

1. Dfinition des variables

Les variables sont des donnes ou des valeurs qui peuvent changer l'intrieur d'une
application. C'est pourquoi, il est fort utile de les nommer par un nom, de dclarer quel
genre de variables est-ce (nombre entier, nombre dcimal, lettres...) et leur affecter,
lorsque
cela
est
ncessaire
une
valeur.
La longueur maximale du nom d'une variable est de 255 caractres. Ceux-ci peuvent tre
des chiffres, des lettres ou autres symboles. Notez que ce nom doit obligatoirement
commencer
par
une
lettre.
En effet, Visual basic classe les variables en fonction de la valeur affecte la variable.
Ainsi, une variable dclare comme du type numrique ne peut pas recevoir une valeur
chane
de
caractre,
ainsi
qu'
l'inverse.
Notez que si vous ne dclarez pas une variable, Visual Basic se chargera d'affecter par
dfaut un type de variable (Variant) celle-ci. Une variable du type Variant peut aussi
bien recevoir des donnes numriques que des chanes de caractres. tout dpend de ce
que
vous
avez
affect

cette
variable.

2. Type de variables
A prsent, observons de plus prs les diffrents types de variables :
Type de donnes

Mot cl

Occupe

Limite de valeurs

Byte

1 octet

0 255

Logique

Boolean

2 octets

True(-1) ou False(0)

Entier

Integer

2 octets

-32 768 32767

Entier long

Long

4 octets

-2 147 483 648 2 147 483 647

Dcimal simple

Single

4 octets

Nombre rel avec 7 chiffres aprs la


virgule

Dcimal double

Double

8 octets

Nombre rel avec 15 chiffres aprs la


virgule

Currency 8 octets

Nombre rel avec 15 chiffres avant la


virgule et 4 chiffres aprs la virgule

Date

Date

8 octets

1er janvier 100 au 31 dcembre 9999

Objet

Object

4 octets

Toute rfrence des types Object

Chane de
caractres

String

10 octets + longueur
de chane

Chane de caractre dont la longueur ne


doit pas excder 2^31 caractres

Variant (avec
chiffres)

Variant

16 octets

toute valeur numrique jusqu' l'tendue


d'un double

Variant (avec
lettres)

Variant

22 octets+longueur de
chane

Mme tendue que pour un String de


longueur variable

Type

L'tendue de chaque lment est la


mme que son type de donnes

Octet

Montaire

Dfini par
l'utilisateur

Notez que les types de variables les plus utilises sont : String, Integer, Long, Single,
Double et Currency.

3. Dclaration de variables
Pour utiliser des variables, il est normalement obligatoire de les prdfinir, soit dans la
section Dclarations de la liste droulante Objet, soit en dbut de procdure ou de
fonction. Un programme o les variables sont bien dclares rend un programme plus

facile comprendre, lire et surtout corriger en cas d'erreurs. Certes, il n'est pas
obligatoire de les dclarer mais faites-le quand mme, c'est un conseil. Si vous tes prt
dclarer une variable que vous voulez utilisez mais que vous tes un tourdi, alors,
utilisez simplement l'instruction Option Explicit ( placer dans la section Dclarations de
la liste droulante Objet) qui vous oblige chaque fois dclarer toutes vos variables
avant de pouvoir excuter l'application.
3.1 Dclaration explicite d'une variable
Pour dclarer une variable, on utilise l'instruction Dim suivi du nom de la variable puis
du type de la variable. Reprenons l'exemple du cours 2 :
Dim DateNaissance
Dim Message, Titre As String

Remarquez que la 1re dclaration ne contient pas d'information sur le type de

variable. Si vous dclarez une variable sans donner d'information sur le type de
variable que c'est, alors, cette variable (DateNaissance) aura par dfaut une
variable du type Variant. Si vous avez bien lu l'exemple prcdent, vous aurez
compris qu'il s'agit ici d'une variable de type Variant (avec chiffres) qui lui est
affecte par dfaut.
La 2me dclaration est par contre explicite. Vous pouvez aussi mettre 2 variables
sur une mme ligne condition que le type de variable est le mme pour les 2 et en
les sparant par une virgule.
3.2 Dclaration implicite d'une variable
Il existe une autre mthode de dclarer des variables. Pour cela, il suffit d'ajouter juste
avant
la
variable,
un
symbole
spcifique.
Voici la liste des symboles avec le type de variable auxquelles il se rapportent :
Symbole Type de variable
%

Integer

&

Long

Single

Double

Currency

String

Dans l'exemple ci-aprs, les deux premires instructions sont quivalentes la troisime :

Dim V1 as Integer
V1 = 25
V1% = 25

4. Porte des variables


En gnral, toute variable dclare a une porte limite. Cette mme variable a une valeur
nulle au dpart. De plus, elle ne s'applique pas forcment toutes les procdures d'une
application. Tout dpend de 2 lments : la manire de dclarer et l'emplacement de la
variable.
dans une procdure, si vous dclarez une variable l'aide de l'instruction Dim, sa

porte se trouve limite seulement cette procdure. On dit que la variable est
locale. Elle est donc initialise chaque appel de la procdure et dtruite lorsque
celle-ci se termine ( moins que vous remplacez le mot Dim par Static). Elle n'est
pas accessible en dehors de la procdure. Vous pouvez remplacer l'instruction
Dim par Private, les deux termes tant quivalentes s'ils sont placs l'intrieur
d'une procdure.
Si vous dclarez une variable dans la section Gnral/Dclarations d'une feuille ou
d'un module en utilisant l'instruction Dim (ou Private), la variable est dite locale
au module. Cette variable est disponible pour toutes les procdures de la feuille ou
du module, mais pas pour les autres feuilles du projet.
Enfin, si vous dclarez une variable dans la section Gnral/Dclarations d'un
module (et non d'une feuille) en utilisant l'instruction Public au lieu de Dim, elle
devient accessible par toutes les feuilles et tous les modules de l'application. On dit
qu'elle est globale.

5. Les constantes
Contrairement aux variables dont les valeurs diffrent souvent, les constantes ont des
valeurs fixes. Mais tout comme les variables, on affecte aux constantes, un nom et une
valeur qui est elle, fixe. De plus, les constantes se dfinissent de la mme faon que les
variables. Tout dpend donc de l'endroit o est dfini la constante. Le mot Const peut
tre prcd de l'option Public pour que toutes les feuilles et modules de l'application
puissent
y
accder.
Attention cependant ne pas affecter une constante des noms identiques aux

constantes prdfinies (VbSystemModal, VbOkOnly, VbArrow...) dans Visual Basic !


Prenons l'exemple du taux de TVA :
Const TVA = 20.6
TotalTTC=PrixHorsTaxe x (1 + (TVA / 100))

Cours 4 : Les tableaux


1re mthode | 2me mthode | 3me mthode | 4me mthode

1. Premire mthode pour dfinir un tableau


Les tableaux de valeurs sont utiles lorsque l'on manipule des donnes en tout genre.
Ainsi, dans un carnet d'adresses, vous pouvez stocker toutes les adresses dans un tableau
structur.
Par exemple :
Dim Adresses (1 to 50 ) As String
Adresses(1) = "12, avenue de la Fayette, Paris"
........
Adresses(50) = "4, rue de la Paix, Paris"
Comme vous pouvez le constatez, la dfinition d'un tableau ressemble beaucoup celle
d'une variable la seule diffrence que vous devez donner une limite aux nombres de
valeurs contenues dans un tableau. Pour appeler une des variables du tableau, il faut
faire prcder de la variable, un numro qui permet d'identifier la variable spcifique
recherche parmi toutes celles du tableau. ce tableau est une dimension,
Voici un exemple 2 dimensions:
Dim Adresses (1 to 50, 1 to 50) As String
Adresses(1,0) = "Vincent"
Adresses(1,1) = "12, Rue de la paix, Paris"
.....
Adresses(50,0) = "Philip"
Adresses(50,50) = "7, Boulevard de la Villette"
Notez qu'avec les fonctions LBound et UBound, vous pouvez obtenir les limites
infrieures
et
suprieures
d'un
tableau.

2. Deuxime mthode pour dfinir un tableau


Il existe une autre faon de dfinir un tableau :
Dim Adresses(50) As String
Adresses(0) = "12, avenue de la Fayette, Paris"
........
Adresses(49) = "4, rue de la Paix, Paris"
Avec cette mthode, les limites du tableau ne sont pas dfinies. Notez que le nombre
d'adresses est de 50 mais la numrotation va de 0 49 et non de 1 50. Il existe
cependant un moyen pour que la numrotation commence 1 : c'est en utilisant
l'instruction Option Base (par exemple: Option Base = 1) qu'il faut placer dans la section
Dclarations.

3. Troisime mthode pour dfinir un tableau


Pour construire
Exemple :

un

tableau,

on

peut

aussi

utiliser

la

fonction

Array

Dim Semaine, Jour As String


Semaine = Array("lundi", "mardi", "mercredi", "jeudi",
"vendredi", "samedi", "dimanche")
Jour = (3) 'retourne jeudi

4. Quatrime mthode pour dfinir un tableau


Une autre mthode consiste en la cration de tableaux dynamiques. Pour comprendre
cette mthode, prenons un exemple :
Dim Adresse() As String
Dim NbAdresses As Integer
'Nouvelle adresse
NbAdresses = nbAdresses + 1

Redim Adresse (NbAdresses)


Adresse (NbAdresses) = "75, Rue Lecourbe, Paris"
Ainsi, chaque fois que l'on lance cette procdure, le nombre total d'adresses
(NbAdresses) est incrment (augment) de 1 et la nouvelle adresse est plac la fin du
tableau. en effet, Redim a pour effet de reformater le tableau, et donc, tout ceux qui tait
dans le tableau est aussi effac sauf la dernire valeur entre.
Cependant, il existe un moyen de conserver les donnes dj prsentes dans le tableau.
Pour cela, on fait appel l'instruction Preserve :
Redim Preserve Adresse (NbAdresses)
Enfin, pour terminer, il est possible d'effacer toutes les donnes d'un tableau. Pour cela,
on utilise l'instruction Erase suivi du nom du tableau.

Cours 5 : Structure des conditions (tests, boucles)


La structure des tests | La structure des boucles

1. Structure des tests


1.1 La structure : If...Then...Else...end If

Voici un exemple de structure simple avec l'instruction If :


If condition Then
Instructions 1
else
Instructions 2
End if

Interprtation : Si la condition est vrifie alors les instructions 1 sont excutes sinon les
instructions 2 sont excutes la place. (Notez que l'on peut utiliser des oprateurs
logiques And (et) et Or (ou) pour que plusieurs conditions doivent d'abord tre vrifies
avant de pouvoir excuter les instructions suivantes.). Le mot Else et les instructions qui
suivent ne sont pas obligatoire.

Voici un autre exemple de structure avec If mais un peu plus complexe:


If Condition 1 Then
Instruction 1
ElseIf Condition 2 Then
Instruction 2
Else
Instructions X
End If
Interprtation : Si la condition 1 est vrifie alors les instructions 1 sont excutes. Sinon
si la condition 2 est vrifie alors les instructions 2 sont excutes. Sinon, si aucune de ces
deux conditions ne sont vrifies alors les instructions X sont excutes.
Il existe une autre structure simplifie de If mais qui moins utilise:
Variable = IIf (Condition, instructions 1, instructions 2)
Interprtation : Si la condition est vrifie alors les instructions 1 sont excutes sinon les
instructions 2 sont excutes la place.
L'instruction IIf(Immediate If) est utile lorsque qu'il n'y a que une ou deux instructions
en fonction d'une condition. Par ailleurs, la valeur retourne par la condition est affecte
une variable.
1.2 La structure Select Case...End Select

Lorsque l'on doit effectuer toute une srie de tests, il est prfrable d'utiliser la structure
Select Case...End Select au lieu de If...Then...End if.
Ainsi, les deux exemples suivants sont quivalents :
Select
Case 1
Jour =
Case 2
Jour =
Case 3
Jour =
Case 4
Jour =
Case 5
Jour =
Case 6
Jour =

Case Semaine
"Lundi"
"Mardi"
"Mercredi"
"Jeudi"
"Vendredi"
"Samedi"

Case 7
Jour = "Dimanche"
Else
MsgBox "erreur", vbOKOnly , "Note"
End Select
If Semaine = 1 Then
Jour = "Lundi"
ElseIf Semaine = 2 Then
Jour = "Mardi"
ElseIf Semaine = 3 Then
Jour = "Mercredi"
ElseIf Semaine = 4 Then
Jour = "Jeudi"
ElseIf Semaine = 5 Then
Jour = "Vendredi"
ElseIf Semaine = 6 Then
Jour = "Samedi"
ElseIf Semaine = 7 Then
Jour = "Dimanche"
Else
MsgBox "erreur", vbOKOnly , "Note"
End If
Interprtation : Si la variable Semaine vaut 1, alors la variable Jour reoit la valeur
Lundi. Si la variable Semaine vaut 1, alors la variable Jour reoit la valeur Mardi.
(Etc...). Si la variable Semaine ne reoit aucune valeur comprise entre 1 et 7, alors un
message indiquant une erreur est affich.

2. Structure des boucles


2.1 La structure For..Next

La structure For...Next est utile lorsqu'on doit rpter plusieurs fois la mme instruction.
Exemple :
For J = 1 To 10
T(J) = J
Next

Interprtation : Dans cette boucle, l'instruction "T(J)=J" est rpte 10 fois c'est dire
jusqu' ce que J soit gale 10. A chaque passage, l'instruction "T(J)=J" affecte T(J)
les valeurs 1 10.
Pour que l'instruction soit excute une fois sur deux, vous pouvez utiliser l'instruction
Step :
For J = 1 To 10 Step 2
T(J) = J
Next
Interprtation : Dans cette boucle, l'instruction "T(J)=J" affecte T(J) les valeurs
1,3,5,7,9.
2.2 La structure For Each...Next

Cette structure est moins utilise que la prcdente. Elle sert surtout excuter des
instructions portant sur un tableau.
Exemple :
Dim Semaine(1 to 7) As String
Dim Jour As Variant
Semaine(1) = "Lundi"
'Etc...
For Each Jour In Semaine()
Combo1.AddItem Jour
Next
Interprtation : Pour chaque Jour de la Semaine, on ajoute la liste combine, la valeur
de la variable Jour jusqu' ce que l'indice de la semaine soit gale 7.
2.3 Les structures Do...Loop et While...Wend

Avec ces boucles, le nombre de fois o sont rptes les instructions est indfini.
Les deux exemples qui suivent sont quivalents :
i = 1
Do
T(i) = i
i = i + 1
Loop Until i > 10

i = 1
While i < 10
T(i) = i
i = i + 1
Wend
Interprtation : La variable i est initialise 1 au dpart. Les instructions qui suivent
sont excutes jusqu' ce que i soit suprieure 10. A chaque passage, on affecte la
variable T d'indice i la valeur de i.
Il existe d'autres variantes de ces boucles et qui sont chacune quivalentes :
Do
Instructions
Loop While Condition
Do Until Condition
Instructions
Loop
Do While Condition
Instructions
Loop

Cours 6 : Les contrles standards

Ne vous fiez pas aux apparences. le Pointeur n'est pas un contrle. Il sert juste
dplacer
et

redimensionner
un
contrle
plac
sur
une
feuille.
Le contrle PictureBox sert afficher une image en mode point, une icne ou un
mtafichier. Il sert aussi regrouper des boutons radio. Remarquons que ce contrle est
le seul qui puisse tre plac dans une feuille MDI. En effet, essayez de placer d'autres
contrles sur une feuilles MDI, vous verrez que a ne marche pas!
Le contrle Label sert placer du texte qui ne peut tre modifi ou effac lors de
l'excution
de
l'application.
Le contrle Textbox sert placer du texte qui peut tre ou non modifi par
l'utilisateur
lors
de
l'excution
de
l'application.

Le contrle Frame sert regrouper plusieurs contrles(checkbox, optionbutton,...)


dans un cadre avec un titre que vous pouvez modifier dans ses proprits.
Le contrle CommandButton sert afficher un bouton de commande qui lorsque
l'on clique dessus, la portion de code crite dans sa procdure est excute.
Le contrle Checkbox sert placer une case cocher. En plaant plusieurs cases
cocher dans une application, l'utilisateur aura le choix entre plusieurs options. Selon les
options
slectionnes,
une
portion
de
code
sera
excute.
Le contrle OptionButton s'utilise comme un contrle CheckBox. Contrairement aux
cases cocher, une seule option peut tre slectionne parmi un groupe d'options
composes
de
boutons
radio.
Le contrle ComboBox laisse l'utilisateur le choix de slectionner un lment parmi
d'autres
dans
une
liste.
Le contrle ListBox s'utilise comme le contrle ComboBox sauf que dans la liste
d'option,
plusieurs
options
sont
affiches
simultanment.

large

Les barres de dfilement permettent de lire la suite du contenu d'une fentre trop
ou
trop
longue
pour
tre
affiche
en
une
seule
fois.

Le contrle Timer permet de gnrer un vnement intervalle rgulier, par exemple


dans une horloge o toutes les minutes, l'aiguille des minutes bouge. Notons que le
contrle Timer n'apparat pas pendant l'excution d'une application.
Le contrle DirListBox permet l'utilisateur de choisir un des lecteurs de disques de
l'ordinateur. Les noms des lecteurs sont affichs dans une liste non modifiable.

de

Le contrle DirListBox permet d'afficher la liste de tous les rpertoires d'une lecteur
disque.

Le contrle FileListBox permet d'afficher la liste de tous les fichiers d'un rpertoire
du
disque.
Le contrle Shape permet de dessiner des figures dans une feuille (rectangle, carr,
cercle). Le type de forme est choisi dans la proprit Shape du contrle.

Le contrle Line permet de tracer des lignes dans une feuille. La proprit
BorderStyle permet de choisir le type de ligne que vous dsirez : continu, invisible,
pointill...
Le contrle Image permet tout comme le contrle PictureBox d'insrer des images en
mode point, icne, ou mtafichier. Cependant, il requiert moins de ressource et donc
diminue
la
taille
de
votre
application.

Le contrle Data permet d'accder aux donnes provenant de bases de donnes.


Le contrle OLE permet d'incorporer ou de lier un objet provenant d'une autre
application (feuille Excel, feuille Access,...).

Cours 7 : Les botes de dialogues communes


Il existe 5 botes de dialogue communes en Visual Basic :
Celle de l'ouverture
Celle de l'enregistrement
Celle de la couleur
Celle de la police de caractres
Celle de l'impression

Avant tout, pour pouvoir utiliser les botes de dialogue communes, il faut ajouter le
contrle CommonDialog dans votre bote outils. Pour ce faire, placer votre souris sur la
bote outils et cliquez sur le bouton droit. Ensuite, choisissez la commande
"Composants". Une liste de tous les contrles apparat alors. Celui qui nous intresse ici,
c'est le contrle CommonDialog. Cochez la case du contrle Microsoft Common Dialog
Control 6.0 (SP3) et appuyez sur le bouton Appliquer. Le contrle CommonDialog va
alors apparatre sur votre bote outils. A prsent, vous pouvez l'utilisez dans vos
applications.
Note: commencez par modifier les proprits du contrle avant d'utiliser les mthodes
respectives.

1. La bote de dialogue Ouvrir

La bote de dialogue "Ouvrir" permet d'ouvrir un fichier parmi tous ceux mmoriss sur
votre disque dur, disquette ou CD-ROM. Pour faire apparatre la bote de dialogue
"Ouvrir", on fait appel la mthode ShowOpen. Cependant, il est aussi ncessaire de
renseigner
plusieurs
proprits
de
la
bote
de
dialogue.
Voici la liste principale des proprits renseigner :
Proprit
CancelError

Utilisation
Initialise True, elle renvoie le code d'erreur 32755 (CDERR_CANCEL)
lorsque le bouton Annuler a t press.

DefaultExt

Elle dfinit l'extension par dfaut du nom du fichier ouvrir.

DialogTitle

elle dfinit le titre de la bote de dialogue situ sur la barre de titre.

FileName

Elle dfinit le chemin d'accs et le nom du fichier slectionn par dfaut.

Filter

Elle dfinit le(s) filtre(s) qui sert spcifier quel type de fichier pouvant tre
ouvert en lecture. Par exemple, avec l'instruction " CMD.Filter =" DLL
(*.DLL)|*.DLL|Excutables (*.EXE)|*.EXE|Tous (*.*)|*.*| ", vous pouvez
choisir de n'ouvrir que les fichiers DLL ou Excutables ou bien d'ouvrir tous les
fichiers.

FilterIndex

Elle spcifie le filtre utiliser par dfaut dans la bote de dialogue. Reprenons
l'instruction prcdente : avec l'instruction suivante "CMD.FilterIndex = 2", le
filtre utilis par dfaut sera donc Excutables (*.EXE)|*.EXE|.

Flags

Elle dfinit les options de la bote de dialogue. La syntaxe de l'instruction est :


"Objet.Flags = valeur" o "valeur" peut valoir "&H1&", "&H2&", "&H3&" ou
bien "&H2& + &H1&".

InitDir

Elle dfinit le rpertoire des fichiers affichs l'ouverture de la bote de


dialogue.

2. La bote de dialogue Sauvegarder sous


La bote de dialogue "Enregistrer sous" permet de sauvegarder un fichier ouvert. Pour
l'afficher,
on
fait
appel

la
mthode
ShowSave.
Pour ce qui est des proprits modifier, reportez-vous ceux de la bote de dialogue
"Ouvrir".

3. La bote de dialogue Couleur


La bote de dialogue "Couleur" permet une couleur parmi d'autres. En l'agrandissant,
vous pourrez dfinir une couleur par ses composantes: teinte, saturation, RVB et
luminance. Pour l'afficher, on fait appel la mthode ShowColor. Tout comme les botes
de dialogue prcdentes, vous devrez renseigner certaines proprits du contrle.
Voici les principales proprits :
Proprit
CancelError

Utilisation
Initialise True, elle renvoie le code d'erreur 32755 (CDERR_CANCEL)
lorsque le bouton Annuler a t press.

Flags

Elle dfinit les options de la bote de dialogue. La syntaxe de l'instruction est :


"Objet.Flags = valeur" o "valeur" peut valoir "&H1&", "&H2&", "&H3&" ou
bien "&H2& + &H1&".

Color

Elle slectionne une couleur par dfaut. La syntaxe de l'instruction est:


"Objet.Color = QBColor(valeur)".

2. La bote de dialogue Police de caractres


La bote de dialogue "Police de caractres" permet de slectionner une police et ses
attributs. Pour l'afficher, on fait appel la mthode ShowFont. Ensuite, renseignez les
proprits suivantes:
Proprit
CancelError

Flags

Utilisation
Initialise True, elle renvoie le code d'erreur 32755 (CDERR_CANCEL)
lorsque le bouton Annuler a t press.
Elle dfinit les options de la bote de dialogue. La syntaxe de l'instruction est
: "Objet.Flags = valeur" o "valeur" peut valoir "&H1&", "&H2&", "&H3&"
ou bien "&H2& + &H1&".

FontBold

Elle dfinit le style Gras par dfaut.

FontItalic

Elle dfinit le style Italique par dfaut.

FontName

Elle dfinit la police par dfaut.

FontSize

Elle dfinit la taille par dfaut.

FontStrikethru

Elle dfinit le style Barr par dfaut.

FontUnderline

Elle dfinit le style Soulign par dfaut.

Max

Elle dfinit la taille maximale des polices affichs.

Min

Elle dfinit la taille minimale des polices affichs.

2. La bote de dialogue Imprimer


La bote de dialogue "Imprimer" sert dfinir les paramtres de l'impression. Pour
l'afficher, on fait appel la mthode ShowPrinter. Ensuite, renseignez les proprits
suivantes:
Proprit
CancelError
Copies

Flags

FromPage
PrinterDefault
ToPage

Utilisation
Initialise True, elle renvoie le code d'erreur 32755 (CDERR_CANCEL)
lorsque le bouton Annuler a t press.
Elle dfinit le nombre d'exemplaires imprimer.
Elle dfinit les options de la bote de dialogue. La syntaxe de l'instruction est :
"Objet.Flags = valeur" o "valeur" peut valoir "&H1&", "&H2&", "&H3&"
ou bien "&H2& +&H1&".
Elle dfinit le numro de la premire page imprimer.
Elle sert indiquer si les paramtres entrs doivent devenir les nouveaux
paramtres par dfaut.
Elle dfinit le numro de la dernire page imprimer.

Cours 8 : Systme de menus

Le systme de menus | Le menu contextuel

Un systme de menus est compos de plusieurs menus qui eux-mmes peuvent tre
composs de plusieurs sous-menus. La plupart des logiciels de Microsoft possdent un
systme de menus pour faciliter l'utilisateur dans ses actions.

1. Le systme de menus
Pour crer un systme de menus, allez dans le menu "Outils" du systme de menu de
Visual Basic et choisissez la commande "Crateur de menus" ou pour aller plus vite,
cliquez
sur
la
3me
image
de
la
barre
d'outils.

A premire vue, a a l'air compliqu. Mais aprs quelques manipulations, ce sera facile.
Bon,
voyons
de
plus
prs
ce
systme
de
menus.
L'esperlouette "&" que vous voyez dans chaque menu et commande vous permet de
crer des raccourcis. Ainsi, pour ouvrir le menu "Fichier", vous pouvez tout simplement
appuyer sur Alt+F. Notez que pour un menu, vous n'avez pas besoin de lui affecter une
lettre pour pouvoir crer un raccourci. C'est automatiquement "Alt" + la lettre
prcdant l'esperlouette. Pour les commandes, allez dans la liste droulante Shortcut et
choisissez le raccourci que vous voulez pour votre commande de menu.

Pour crer une commande de menu, il faut l'indenter au menu auquel il est rattach.
Pour cela, la suite de la cration du menu "Fichier", appuyez sur la flche de droite
pour indenter la commande "Ouvrir". Visual basic permet un maximum de 5 niveaux
d'indentation. Par exemple, vous pouvez aprs avoir cr la commande "Ouvrir", crer
une
sous-commande
en
l'indentant

ce
dernier.
Vous pouvez par ailleurs crer une barre sparatrice afin de sparer plusieurs
commande de menu. Pour cela, dans "Caption", mettez un "-" et donnez-lui un nom
quelconque.
La case cocher "Checked" permet d'afficher ou d'effacer une marque de

slection en face d'une commande de menu.


La case cocher "Enabled" permet d'empcher l'utilisateur de slectionner une

commande. Si vous dcochez cette case, l'utilisateur ne pourra pas slectionner le


menu ou la commande auquel vous avez dcochez la case "Enabled".
La case cocher "Visible" permet de cacher ou d'afficher un menu ou une
commande de menu.
La case cocher "Windowlist" permet d'afficher les derniers fichiers ouvert par
l'application concerne.
Pour les autres options, laissez-les de ct, pour le moment.
Voil, c'est termin, pour la cration de menu. Il ne reste plus qu' affecter chaque
commande de menu une action spcifique. Pour affecter une action une commande,
cliquez sur celui-ci dans la feuille o est cr le systme de menus. Pour les actions de
chaque commande, lisez les cours qui suivent.

2. Le menu contextuel
Dans une quelconque application de Microsoft, lorsque vous cliquez sur le bouton droit
de votre souris, une srie de commande apparat: c'est le menu contextuel (ou Popup
menu
en
anglais).
La cration d'un popup menu se fait presque comme un systme de menu. Pour cela,
faites exactement comme si vous crez un systme de menu. Dfinissez ensuite, une action
pour chaque commande du menu contextuel. Par la suite, il faut dfinir dans quelles
conditions doit apparatre le menu contextuel. Double-cliquez sur la feuille o est cr le
systme de menu et dans la liste droulante "vnement", slectionnez l'vnement
"MouseDown". Entrez les instructions suivantes :
Private Sub Form_MouseDown(Button As Integer, Shift As Integer,
X As Single), Y As Single
If (Button = 2) Then

PopupMenu X
end if End Sub
Interprtation : Lorsque le bouton droit de la souris a t cliqu, le menu contextuel X
apparat.
Vous pouvez remplacer la valeur de la variable "Button" si vous voulez que le menu
contextuel apparaisse une autre action de l'utilisateur :
Pour que le menu contextuel apparaisse en cliquant sur le bouton gauche de la

souris, remplacez 2 par 1 dans la condition (Button = 1);


Pour que le menu contextuel apparaisse en cliquant sur le bouton central de la

souris, remplacez 2 par 4 dans la condition (Button = 4);


Enfin, revenez dans la bote de dialogue "crateur de menu" et dcochez la case
"Visible" du menu que vous dsirez rendre contextuel. Ne le faites pas avant car si vous
le faites, vous ne pourrez pas dfinir une action pour chaque commande du menu
contextuel.

Cours 9 : Accs aux fichiers


Il existe trois mode d'accs aux fichiers dans Visual Basic 6 :
1. Les fichiers accs squentiel ne peuvent ouvrir que des fichiers avec un contenu
textuel.
2. Les fichiers accs direct sont forms en gnral de plusieurs enregistrements de
longueur fixe.
3. Les fichiers binaires sont tous les fichiers avec un contenu graphique.

1. Les fichiers accs squentiel


Il existe trois manires d'ouvrir un fichier texte :
1. La 1re manire est l'ouverture d'un fichier uniquement en lecture l'aide de
l'instruction Input.
2. La 2me manire est l'ouverture d'un fichier uniquement en criture l'aide de
l'instruction Output.

3. La dernire manire est l'ouverture d'un ficher en criture aussi mais la seule
diffrence de la prcdente manire, les nouvelles donnes sont entres la suite
de l'enregistrement prcdent. Pour cela, on utilise l'instruction Append.

Pour comprendre son fonctionnement, prenons un exemple. Lancez Visual Basic et


ouvrez un nouveau projet. A la proprit Caption de la feuille Form1, affectez-lui la
valeur "Bloc-note". Sur la feuille Form1, tracez un rectangle assez grand en utilisant le
contrle TextBox. Allez dans la bote de proprit du contrle TextBox et allez sa
proprit Text. Effacez-y le contenu. Ensuite, sa proprit Multiline, choisissez True.
Maintenant, placez sur la feuille 4 contrles CommandButton. Pour chacun des 4
contrles, donnez leur, les valeurs "&Ouvrir", "&Effacer", "&Sauvegarder" et
"&Quitter" la proprit Caption et les valeurs "Ouvrir","Effacer", "Sauvegarder" et
"Quitter"

la
proprit
Name.
Voici
l'allure
que
la
feuille
form1
doit
avoir

prsent
:

Pour que ce bloc-note soit oprationnel, il faut dfinir des procdures qui grent les
actions
de
chaque
contrle
prsent
dans
la
feuille.
Double-cliquez sur le bouton de commande "Ouvrir" et crivez la portion de code
suivant :
Private Sub ouvrir_Click()
On Error Resume Next
Open "C:\Windows\Bureau\note.TXT" For Input As #1
retour = Chr$(13) + Chr$(10)
Line Input #1, texte

tout = texte
If Len(tout) <> 0 Then
While Not EOF(1)
Line Input #1, texte
tout = tout + retour + texte
Wend
End If
Close #1
End Sub
Explication :
L'instruction On error Resume Next permet d'ignorer toute erreur que peut

entraner cette procdure.


L'instruction Open "C:\Windows\bureau\note.TXT" For Input As #1 permet

d'ouvrir le fichier "note" situ sur le bureau. Lorsque l'application est excute
pour la premire fois, une erreur 53 devrait apparatre car le fichier "note"
n'existe pas encore. Mais grce l'instruction On Error Resume Next, cette erreur
sera tout simplement ignore.
L'instruction retour = Chr$(13) + Chr$(10) permet d'aller la ligne suivante. Le
code ASCII 13 correspond au "retour chariot", c'est--dire de revenir gauche
du texte et 10 au "passage la ligne", c'est--dire d'aller la ligne suivante. Vous
pouvez aussi utiliser le code vbCrLf la place et c'est plus court et plus facile
retenir.
Vous
aurez
ainsi:
"tout = tout + vbCrlf + texte"
L'instruction Line Input permet de placer dans la variable "texte" le contenu de la
premire ligne du fichier "note.TXT".
Ensuite, le contenu de la variable "texte" est son tour, affect la variable
"tout".
Le test avec l'instruction If permet de vrifier que le fichier "note.TXT" n'est pas
vide l'aide de la fonction Len qui compte le nombre de lettres ou tout autre
symbole contenu dans la variable "tout". Si le nombre de lettres est diffrent de
zro alors, les instructions l'intrieur du test sont excuts.
La boucle avec While permet de parcourir tout le fichier la recherche
d'ventuelles autres lignes que la premire. La fonction EOF permet de savoir si
l'on arrive la fin du fichier ouvert. Cette boucle est donc excute jusqu' ce que
tout le contenu du fichier soit plac dans la variable tout. Les chanes de
caractres affectes la variable "tout" sont concatnes (concatnes = ajoutes)
aux prcdentes contenues dans la variable. La variable "retour" provoque un
retour la ligne chaque fois que cela est ncessaire.
Lorsque tout le contenu du fichier sera affect la variable "tout", cette dernire
sera son tour affecte la proprit Text du contrle TextBox. Ce qui
provoquera l'affichage du contenu du fichier dans le contrle TextBox.
L'instruction Close ferme le fichier ouvert en lecture.

crivons maintenant la portion de code correspondant au bouton "Sauvegarder" :


Private Sub Sauvegarder_Click()
Open "C:\Windows\Bureau\note.TXT" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
Explication :
L'instruction Open "C:\Windows\Bureau\note.TXT" For Output As #1 ouvre le

fichier "note.TXT" en criture.


Le contenu de la zone de texte "Text1" est ensuite copi dans le fichier l'aide de
l'instruction Print.
Enfin, le fichier est ferm l'aide de l'instruction Close.

Passons l'criture de la procdure concernant le bouton "Effacer" :


Private Sub Effacer_Click()
Text1.Text = ""
Text1.SetFocus
End Sub
Explication :
L'instruction Text1.Text = "" permet d'effacer tout ce qui se trouve sur la zone de

texte du contrle TextBox.


L'instruction Text1.SetFocus donne le focus la zone de texte, c'est--dire que cette

instruction provoque l'affichage d'une barre d'insertion dans la zone de texte.

Enfin, crivons la portion de code correspondant l'action du bouton "Quitter" :

Private Sub Quitter_Click()


End
End Sub
Explication :
L'instruction End permet de quitter l'application en cours.

Voil, c'est tout. A prsent, excutez le programme et voyez ce que a donne. Bien sr, ce
n'est qu'un simple petit programme mais en acqurant plus de connaissances par la
suite, vous pourrez l'amliorer, lui ajouter de nouvelles fonctions, action,...

2. Les fichiers accs direct


Les fichiers accs direct contiennent des donnes contenues dans plusieurs
enregistrements fixes. Pour dclarer un enregistrement, on utilise l'instruction Type pour
crer un nouvel type de variable. Ensuite, On dclare une variable de ce type. Pour
ouvrir un fichier accs direct, on utilise l'instruction Open en indiquant la longueur de
chaque enregistrement. Ainsi, un fichier accs direct s'ouvre de la manire suivante :
Open "C:\Windows\Bureau\fichier.adr" For Random As #1 Len = Len(Adr) o adr est le
nom
d'une
variable
de
type
prdfini.
La lecture d'un enregistrement s'effectue de la manire suivante: Get #1, Numro, adr.
L'criture dans un fichier accs direct s'effectue de la manire suivante: Put #1,
Numro, adr.

3. Les fichiers accs binaire


Dans la mesure o le fonctionnement des fichiers accs binaires est trs proche de celui
des fichiers accs direct, reportez-vous aux fichiers accs direct.

Cours 10 : Le presse-papier
Le presse-papier est indispensable pour toute opration de copie et de collage. Ces
oprations
s'effectuent
grce

l'objet
ClipBoard.
Remarque : Si vous utilisez le contrle TextBox, vous n'avez pas besoin de dfinir des
procdures pour le presse-papier dans la mesure o il est dj intgr dans le contrle.
Par contre, si vous utilisez le contrle RichtextBox, alors il vous faudra dfinir vousmme le presse-papier. La diffrence entre ces 2 contrles de saisie est que le contrle
RichTextBox possde quelques fonctions supplmentaires comme la possibilit de dfinir
des
marges
autour
du
texte.
Passons maintenant aux mthodes utilises pour dfinir le presse-papier :
ClipBoard.GetText permet de lire le contenu du presse-papier(uniquement avec des

donnes textuelles).

ClipBoard.SetText permet d'crire dans le presse-papier(uniquement avec des

donnes textuelles).
ClipBoard.Clear permet d'effacer le contenu du presse-papier.
ClipBoard.GetFormat(type) permet d'indiquer quel type de donnes est prsent

dans le presse-papier. Les valeurs que peut retourner Visual Basic sont :
1. (vbCFText) : donnes de type texte.
2. (vbCFBitmap) : image en mode point(bitmap).
3. (vbCFMetafile) : mtafichier vectoriel(wmf).
4. vbCFDib) : image bitmap indpendante du priphrique.
5. (vbCFPalette) : palette de couleur.
6. (vbCFEMetafile) : mtafichier amlior(emf).
7. (vbCFFile) : noms de fichiers copis depuis l'Explorateur de Windows.
8. &FFFFBF00 (vbCFLink) : liaisonDDE(valeur exprime sous forme
hexadcimale).
9. &FFFFBF01 (vbCFRTF) : texte au format RTF.
ClipBoard.GetData permet de lire le contenu du presse-papier(uniquement avec des
donnes graphiques).
ClipBoard.SetData permet d'crire dans le presse-papier(uniquement avec des
donnes graphiques).

Cours 11 : La barre d'outils et la barre d'tat


La barre d'outils | La barre d'tat

Tout d'abord, pour pouvoir utiliser les contrles pour placer une barre d'outils ou d'tat,
il faut qu'ils soient dj prsent dans votre bote outils. Or ce n'est pas le cas. Pour ce
faire, choisissez la commande "Composants" du menu "Projet". Cochez le contrle
Microsoft Windows Common Controls 6.0 et validez. A prsent, une srie de contrle est
apparue sur votre bote outils. Vous y trouverez le contrle ToolBar et le contrle
StatusBar.

1. La barre d'outils

Commencez par slectionner le contrle ToolBar dans la bote d'outils et sur la feuille
tracez un rectangle d'une quelconque taille. Cela n'a aucune importance dans la mesure

o la barre d'outils se placera automatiquement sur le haut de votre feuille.


Ensuite, slectionnez le contrle ImageList et placez-le son tour sur la feuille. (Notez
que l'emplacement de ce contrle n'a aucune importance.) Slectionnez nouveau le
contrle ImageList mais cette fois, sur la feuille et cliquez sur le bouton droit de votre
souris. Dans le menu contextuel, choisissez la commande "Proprits". Dans l'onglet
"Gnral", vous avez la possibilit de modifier la taille de vos images prsentes dans la
barre d'outils. C'est dans l'onglet "Images" que vous allez pouvoir choisir les images qui
y seront places. Appuyez sur le bouton "Insrer une image". Les images par dfaut
fournies avec Visual Basic sont situs dans le rpertoire C:\Program Files\Microsoft
Visual Studio\Common\Graphics\Bitmaps. slectionnez les images que dsirez mettre sur
votre barre d'outils. Attribuez chacune de ces images un nom dans la proprit "Key".
Validez
ensuite
en
appuyant
sur
le
bouton
"Appliquer".
A prsent, faites un clic droit sur le contrle ToolBar et slectionnez "proprits". Dans
l'onglet "Gnral", slectionnez "ImageList1" dans les proprits "ImageList",
"DisabledImageList" et "HotImageList". slectionnez aussi "1-TbrFlat" dans la
proprit "Style". Passons prsent l'onglet "Boutons". Renseignez les principales
proprits. crivez dans la proprit "Key" le nom des images que vous avez choisi dans
le contrle ImagaList. La proprit "ToolTipText" vous permet d'afficher une bulle
lorsque vous survolez l'image. Enfin, dans la proprit "Image", crivez les numros qui
sont respectifs aux images contenues dans le contrle ImagaList. N'oubliez pas que ce
dernier permet d'afficher des images sur votre barre d'outils. Ok, maintenant, revenez
la feuille principale. Vous avez vu, votre barre d'outils est prsent visible.
A present, occupons-nous du code pour relier chaque icne de la barre d'outils une
action. Double-Cliquez sur la barre d'outils. Pour grer chaque action, utilisons la
structure Select Case qui convient parfaitement ce que l'on veut faire.
Select Case Button.Key
Case "New"
Nouveau_Click
Case "Open"
Ouvrir_Click
End Select
"Nouveau_Click" correspond la procdure que vous avez normalement attribu la
commande "Nouveau" du systme de menus. Si ce n'est pas le cas, alors, il va vous falloir
ici, lui attribuer une action. Par ailleurs, au lieu d'utiliser "Button.key" pour tester la
condition, vous pouvez aussi utiliser "Button.Image", mais alors, au lieu d'avoir "New",
vous devrez mettre la place le numro leur correspondant que vous avez dfini dans le
contrle ToolBar, l'onglet Boutons, dans le champs "Image".

2. La barre d'tat

Choisissez le contrle StatusBar et placez-le n'importe o. cela n'a pas d'importance car
au bout du compte, il s'affichera automatiquement tout en bas de votre feuille. Faites un
clic droit sur ce dernier qui est prsent plac sur la feuille et allez dans l'onglet
"Proprits".
Paramtrez
les
diffrentes
proprits
qui
s'y
trouvent.
Ca y est! A prsent, votre application est comparable toute autre logiciel. Avec
quelques rglages supplmentaires, vous pouvez mme rivaliser avec les applications de
Microsoft! Super, non?

Cours 12 : Les tableurs et les graphes


Tout d'abord, pour pouvoir utiliser les tableurs et graphes, vous devez au pralable
placer dans votre bote d'outils, les contrles Microsoft Flexgrid Control 6.0 et Microsoft
Chart Control 6.0. Pour cela, faites un clic droit sur la bote d'outils et choisissez la
commande "Composants". Ensuite, cochez les cases correspondant aux contrles et
validez.
Grce au contrle MSFlexGrid et aprs avoir acquis une certaine exprience, vous
pouvez mme crer des tableurs semblables ceux du logiciel Excel de Microsoft. Les
proprits du contrle MSFlexGrid permettent de manipuler les cellules de ce dernier.
Rows

Elle permet de dfinir ou de connatre le nombre de lignes du contrle.

Cols

Elle permet de dfinir ou de connatre le nombre de colonnes du contrle.

FixedRows

Elle permet de dfinir ou de connatre le nombre de lignes fixes du


contrle.

FixedCols

Elle permet de dfinir ou de connatre le nombre de colonnes fixes du


contrle.

Row

Elle permet de dfinir ou de connatre les coordonnes de la cellule


courante.

Col

Elle permet de dfinir ou de connatre les coordonnes de la cellule


courante.

Text

Elle permet de dfinir ou de connatre le contenu de la cellule courante.

ColWidth

Elle permet de dfinir ou de connatre la largeur d'une colonne.

RowHeight

Elle permet de dfinir ou de connatre la hauteur d'une ligne.

ColAlignment

Elle permet de dfinir ou de connatre l'alignement des donnes d'une


colonne.

RowSel

Elle permet de slectionner ou de connatre les coordonnes d'une plage de


cellules.

ColSel

Elle permet de slectionner ou de connatre les coordonnes d'une plage de


cellules.

De mme, les proprits du contrle Microsoft Chart Control 6.0 permettent de dfinir un
graphe
donn.

Column

Elle renvoie ou dfinit la colonne active de la grille de donnes.

Data

elle renvoie ou dfinit la valeur d'un point de donnes spcifique dans la


grille de donnes identifie par Row et Column.

DrawMode Elle dtermine quand et comment est rafrachi l'affichage du graphique.


CharType

Elle renvoie ou dfinit le type de graphiques utilis pour tracer les donnes
dans la grille de donnes.

Cours 13 : Les applications MDI


Tout d'abord, dfinissons ce que c'est qu'une application MDI. Vous connaissez
srement le logiciel de traitement de texte WORD de Microsoft. Eh ben, c'est une
application MDI et comme son nom l'indique, elle est compose d'une fentre
principale(appel aussi fentre parent) et d'une ou plusieurs fentres de
documents(appels aussi fentre fille. Les applications MDI sont en gnral pourvu d'un
systme de menu, d'une barre d'outils et d'une barre d'tat. Elle permettent de visualiser
plusieurs documents en mme temps. Ce qui permet d'viter d'ouvrir plusieurs fois la
mme application. Passons prsent sa mise en place!

1. Mise en place de la fentre parent


Elle se droule en 3 tapes:

1. Pour crer la fentre parent en tant que tel, ouvrez un nouveau projet puis
slectionnez dans la fentre de projet la feuille ouverte par dfaut Form1. Faites
un clic droit dessus et choisissez la commande "Supprimer Form1". Ensuite, allez
dans le menu "Projet" et slectionnez la commande "Ajouter une feuille MDI".
Voil! Vous avez cr une fentre parent, facile non?
2. Passons la cration du systme de menus. pour cela, reportez-vous au cours 8.
3. Enfin, passons la cration de la barre d'outils et celle d'tat. Pour cela, reportezvous au cours11.

2. Mise en place de la fentre fille


Sa mise en place est simple. Pour la dfinir, placez une nouvelle feuille dans le projet.
Ensuite, initialisez True sa proprit MDIChild. C'est tout!

Cours 14 : Les bases de donnes

L'laboration d'une base de donnes se fait l'aide du contrle Data. Ainsi, vous pouvez
accder pas mal de fichiers de donnes divers tels que ceux de Access, Excel, FoxPro,
Lotus
1-2-3,
BTrieve
ou
tout
fichier
ASCII.
En clair, le contrle Data est indispensable dans la ralisation d'une gestion d'une base de
donnes. Cependant, il ne suffit pas simplement de placer le contrle sur la feuille. Il faut
imprativement renseigner quelques unes de ses proprits sans quoi, le contrle ne
marchera
pas.
Mais rassurez-vous, ce n'est pas aussi dur que vous le pensiez. D'ailleurs, j'tais comme
vous auparavant. Je me disais que les bases de donnes, c'est pas du tout mon truc et rien
que d'entendre ce mot, a me donnait la migraine. Mais aprs une trs courte sance
d'apprentissage, je me suis vite rendu compte que ce n'tait pas aussi cailloux comme le
prtendent certains. Ca y est, vous avez repris confiance en vous? Allez, c'est parti!
Tout d'abord, dfinissez un nouveau projet et placez le contrle Data sur la feuille
"Form1". Maintenant, passons au renseignement de quelques unes de ses proprits.

Connect

Indiquez-y quel type de bases de donnes vous voulez utiliser: Access,


Excel, Paradox, Foxpro...

DataBaseName Indiquez-y o se trouve votre fichier de base de donnes sur votre disque.

RecordSource

Indiquez-y le nom de la table diter.

Pour pouvoir afficher les donnes de votre fichier, vous aurez sans doute besoin d'un ou
plusieurs champs de texte crs l'aide du contrle TextBox. L aussi, vous aurez
modifier quelques une de ses proprits.
DataSource Indiquez-y le nom du contrle Data auquel il se rapporte.
DataField

Indiquez-y le nom du champ de valeurs auquel il se rapporte.

Passons prsent, aux principales mthodes utilises pour grer une base de donnes
dans une application.

AddNew

Delete
Movefirst,
MoveLast,
MovePrevious,
MoveNext
Refresh

UpdateRecord

Elle sert crer un nouvel enregistrement. Cependant, Les donnes


nouvellement entres ne sont pas tout de suite enregistres moins
que vous n'appuyez sur une des flches du contrle Data. Pour
qu'elles soient valides, on pourrait faire appel la mthode
Updaterecord suivi de l'instruction suivante:
Data1.recordSet.BookMark = Data1.RecordSet.LastModified qui
permet de revenir la dernire donne enregistre ou modifie.
Exemple: Data1.RecordSet.AddNew.
Elle sert supprimer un enregistrement donn.
Exemple: Data1.RecordSet.Delete
Elles servent respectivement revenir au premier enregistrement,
aller au dernier enregistrement, revenir l'enregistrement
prcdent et aller l'enregistrement suivant.
Exemple: Data1.RecordSet.MoveFirst.
Elle sert rafrachir la base de donne.
Exemple: Data1.Refresh.
Elle sert mettre jour une donne nouvellement enregistre ou
modifie.
Exemple: Data1.UpDateRecord.

Pour aller un peu plus loin, nous allons ici traiter des requtes SQL sans s'y attarder trop
longtemps.
Avant tout, faites attention la casse des mots. Si vous crivez Select au lieu de SELECT,
a
marchera
pas!

Pour comprendre son fonctionnement, prenons l'exemple de l'instruction suivante:


Data1.RecordSource = "SELECT * FROM Produits WHERE [Nom de produit] = 'Riz';".
En terme plus clair, Cette requte extrait tous les champs (*) de la table Produits (FROM
Produits) pour lesquels le champ "Nom de produit" a pour valeur "Riz"(WHERE [Nom
de
produit]='Riz').
Dans cette requte, le champ "Nom de produit" a t mis entre crochet car il contient des
espaces. Autrement dit, ces crochets ne sont ncessaires que pour les champs avec un
nom
ne
contenant
qu'un
seul
mot.
L'instruction suivante: Data1.RecordSource = "SELECT * FROM Produits; " permet
nouveau d'avoir accs toutes les donnes du fichier. Tous les champs(*) de la table
"Produits"(FROM Produits) sont nouveau accessible l'utilisateur.

Cours 15 : Le multimdia
La lecture des fichiers audio ou vido se fait l'aide du contrle MMControl. Pour cela,
choisissez la commande "Composants" du menu "Projet". Cochez le contrle Microsoft
Multimedia Control 6.0 et validez. A prsent, le contrle MMControl est dans votre bote
d'outils.
Notez qu'il existe plusieurs types d'objet multimdia comme vous pouvez vous en douter.
Les plus courantes sont:
Type d'objet multimdia

Type de fichier

Extension

WaveAudio

Fichier sonore numris WAV

.WAV

Sequencer

Fichier musical MIDI

.MID

CDAudio

Morceau de musique sur un CD audio

AVIVideo

Fichier numrique au format AVI

.AVI

Bien sur, il en existe bien d'autres types d'objet multimdia mais nous nous contenterons
de
ceux
cits
dans
le
tableau.

Pour ouvrir un fichier multimdia, servez-vous des botes de dialogue communes.


Pour imiter les commandes du contrle MMControl, il est utile de connatre les
commandes MCI. Elles agissent sur le comportement de ce dernier.
Voici une liste des commandes MCI, les plus importantes:

Commande MCI

Fonction

Stop

Stoppe immdiatement la lecture en cours.

Play

Joue le fichier slectionn.

Open

Ouvre le fichier slectionn.

Close

Ferme le fichier slectionn.

Pause

Interrompt la lecture en cours.

Eject

jecte le CD contenu dans le CD-ROM.

Par exemple, l'instruction MMControl1.Command = "Stop" permet de stopper


immdiatement le fichier audio/vido en cours. Ainsi, pour lire un fichier ".wav",
commencer par l'ouvrir avec la commande "Open", puis pour la lecture de ce fichier,
utilisez la commande "Play". Si vous dsirez stopper la lecture en cours, utilisez la
commande "Stop". Enfin, n'oubliez pas de bien refermer le fichier l'aide de la
commande "Close" car il se peut qu'il reste encore en mmoire et donc qu'il occupe
encore
une
partie
de
votre
mmoire
vive.
Pour les fichiers "CDAudio", cela se passe un peu diffremment. Placez la portion de
code qui suit dans la procdure "Form_Load()":
Private Sub Form_Load()
MMControl1.DeviceType = "CDAudio"
MMControl1.Command = "Open"
MMControl1.UpdateInterval = 1000
MMControl1.Timeformat = 10
End Sub
Explication:
La 1re instruction informe au contrle MMControl du type de fichier qui va

ouvert. Cela est ncessaire car les fichiers "CDAudio" sont diffrents des autres.
La 2nde instruction permet d'ouvrir le premier morceau de musique.
La 3me instruction permet de dterminer l'intervalle de temps o doit s'excuter

la procdure MMControl1.StatusUpdate(), c'est--dire, toutes les secondes (ici, le


temps est dfini en milliseconde), la procdure MMControl1.StatusUpdate().
La 4me instruction dtermine le format horaire utiliser pour exprimer les
informations relatives la position en cours dans le CDAudio, par exemple
combien de temps se sont couls depuis la lecture d'une musique.

Pour jecter le CD du CD-ROM, placez la portion de code qui suit dans la procdure
"MMControl1_EjectClick(Cancel As Integer)":

Private Sub MMControl1_EjectClick(Cancel As Integer)


MMControl1.Command = "Eject"
MMControl1.Command = "Close"
End
End Sub
Explication: Comme vous vous doutez, la 1re instruction permet d'jecter le CD ,la
2nde de fermer le priphrique MCI (sorties audio/vido) et la dernire de quitter
l'application.
Enfin, le plus important, placez la portion de code qui suit dans la procdure
MMControl1_StatusUpdate():
Private Sub MMControl1_StatusUpdate()
Dim All, Seconde, Minute, Misc
All = MMControl1.Position Mod 16777216
Seconde = All / 65536
Minute = (All - Seconde * 65536) /256
Misc = All - Seconde * 65536 - Minute * 256
Piste.Caption = " Piste " + Str(Misc)
Temps.Caption = " Dure " + Minute + " : " + Seconde
End Sub
Explication: Les 3 premires instructions permettent d'extraire le numro de la piste et
du temps coul depuis le dbut. La 4me instruction place le numro de la piste en cours
dans le contrle "Piste" (il peut tre un contrle "Texbox" ou "Label"). Enfin, la
dernire instruction place la dure du temps coul depuis la premire piste dans le
contrle "Temps" il peut tre un contrle "Texbox" ou "Label").

Cours 16 : Le langage de requte structur SQL


Tout d'abord, il faut que je vous explique ce que c'est que ce langage de requte et quoi
est-ce
qu'il
sert.
Eh bien, SQL("Structured Query Language" ou pour les francophones, "Langage de
Requte Structur") est un langage qui a t cr dans le but de communiquer avec une
base
de
donnes
relationnelle.
Pour ceux qui ne le savent pas, une base de donnes relationnelle est une base de donnes
o les donnes sont stockes dans des tables. Ces dernires sont en interaction les unes et
les autres.
ATTENTION:
veuillez noter que le langage SQL peut varier d'un constructeur l'autre. Dans ce cas, il
vous
faut
consulter
la
documentation
qui
lui
est
propre.
Le langage SQL abord ici, est le langage standard et peut ne pas tre compatible avec votre

base de donnes. Si vous constatez que les codes qui suivent ne fonctionnent pas, eh bien, a
veut dire qu'il n'est pas compatible avec votre base.
SQL permet d'interroger une base de donnes, d'insrer de nouvelles donnes mais aussi
mettre

jour
vos
donnes
existantes.
A prsent voyons cela de plus prs.

Recherche de donnes
Ajout et suppression de donnes
Mise jour de donnes
Groupement d'instructions SQL en transactions
Recherche partir d'un champ de texte

1. Recherche de donnes

1.1 La syntaxe

L'instruction utilise pour effectuer une recherche dans une base de donnes est
SELECT. Elle sert interroger une base et de retourner si elles existent, les donnes que
vous
recherchez.
La syntaxe de l'instruction SELECT est la suivante:
SELECT [ *|ALL|DISTINCT ] [ TOP X [PERCENT] ] Colonne1,Colonne2
FROM Tables
WHERE (Critre de recherche)|(Critre de jointure)
AND|OR [ (Critre de recherche) ]
GROUP BY [ ALL ] Colonne1, Colonne2
HAVING (Critre de recherche)
ORDER BY Colonnes [ ASC|DESC ]
Je sais, premire vue d'oeil, a peut paratre compliqu. Mais il n'en est rien en ralit.
En observant de plus prs, vous verrez que c'est trs abordable. Bon, je vous explique en
dtail cette syntaxe.

L'instruction SELECT permet de slectionner les donnes partir d'une ou

plusieurs colonnes d'une table.


L'argument * permet de faire une recherche dans toutes les colonnes de la
table donne.
L'argument ALL sert indiquer de retourner toutes les valeurs recherches
mme ceux qui sont en double. Par exemple, dans une base de donnes
contenant une liste de tous les clients d'une socit, il est parfaitement
possible qu'il y ait 2 clients ayant le mme nom de famille ou le mme
prnom. Eh bien, cet argument indique de retourner les donnes de ces 2
clients. Cet argument est celui par dfaut. Il est facultatif.
L'argument DISTINCT est le contraire de ALL. Il sert indiquer de ne
retourner que les donnes uniques. Il est facultatif.
L'argument TOP permet de prciser le nombre d'enregistrements que vous
souhaitez recevoir en rponse votre requte partir du premier
enregistrement. PERCENT indique le pourcentage X d'enregistrements
que vous souhaitez retournez. Il est facultatif.
Les mots Colonne1,Colonne2 Indiquent dans quel(les) colonne(s) de la table
ou des tables vous souhaitez effectuez votre recherche. N'oubliez pas la
virgule si vous effectuez votre recherche dans plusieurs colonnes.
La clause FROM sert indiquer partir de quel(les) table(s) les donnes doivent
tre extraites. Cette clause est indispensable pour toute requte
Tables reprsente le nom des diffrentes tables dans lesquelles vous dsirez
faire des recherches.
La clause WHERE permet d'insrer des critres de recherche dans votre requte. Il
est facultatif.
Le mot Critre de recherche reprsente les critres de recherche. Par
exemple: "WHERE Client = 'Alphonse'" ou bien "WHERE Prix < '1500'".
Le mot Critre de jointure permet d'effectuer une recherche dans une
colonne prsente dans 2 tables diffrentes.
Les oprateurs AND et OR permettent d'insrer un autre critre de recherche. Ils
sont facultatifs.
Le mot Critre de recherche reprsente aussi des critres de recherche. Par
exemple: "WHERE Client='Alphonse' OR Client='Jean'".
La clause GROUP BY permet de regrouper des donnes. Il est facultatif.
Pour le mot ALLVoir prcdemment.
La clause HAVING permet d'insrer un critre de recherche pour les donnes
regroupes avec la clause GROUP BY. Il est facultatif.
Pour le mot Critre de recherche, voir prcdemment.
Enfin, la clause ORDER BY permet de trier les donnes par colonnes. Il est
facultatif.
Le mot Colonnes reprsente le nom des colonnes dans lesquelles sont tries
les donnes.
L'argument ASCPermet de trier les donnes par ordre croissant. C'est
l'ordre par dfaut. Il est facultatif.
L'argument DESC permet de trier les donnes par ordre dcroissant. Il est
facultatif.

C'est pas trs vident mais avec de la pratique, tout vous paratra clair. De plus, vous
n'tes pas oblig d'utiliser tous les clauses et arguments montrs ci-dessus.
Voici un exemple simple sur la faon d'utiliser les requtes avec SQL en s'appuyant sur
le contrle Data qui vous permet de visualiser les donnes:
Data.RecordSource="SELECT * FROM Fichier WHERE Prix<'1500' AND Prix>'3000'
ORDER BY Prix"

Il vous suffit de placer ce code dans un bouton de commande pour qu'il fasse apparatre
la liste de tous les prix compris entre 1500 et 3000 de la table "Fichier". La clause
ORDER BY permet de ranger le rsultat de votre recherche par ordre croissant(ordre
par
dfaut).

1.2 Les oprateurs

Vous pouvez aussi faire appel des oprateurs pour spcifier des conditions dans une
instruction SQL ou servir de conjonction plusieurs conditions. Vous vous rappelez,
vous en avez dj vu 2 oprateurs avant: ce sont AND et OR. Ces deux l, sont des
oprateurs conjonctifs. Il existe 5 types d'oprateur en tout:
Les oprateurs de comparaisons servent vrifier les conditions d'galit, de non-

galit, les valeurs suprieures et les valeurs infrieures . Les voici:


=,<>,<,>,<=,>=.
Les oprateurs conjonctifs permettent d'effectuer plusieurs conditions la fois. Les
voici: AND et OR.
Les oprateurs logiques servent effectuer des comparaisons. Les voici: IN, NOT
IN, BETWEEN, NOT BETWEEN, LIKE, NOT LIKE, IS NULL, IS NOT NULL,
EXISTS, NOT EXISTS, ALL et ANY.
Les oprateurs arithmtiques servent effectuer des oprations de calcul. Les
voici: +,-,* et /.

Le tableau suivant vous montre comment utiliser tous ces oprateurs.


Oprateur

Exemple

Interprtation

WHERE Prix='1500'

Retourne les valeurs dont le prix est


gal 1500

<>

WHERE Prix<>'1500'

Retourne les valeurs dont le prix est


diffrent de 1500

<

WHERE Prix<'1500'

Retourne les valeurs dont le prix est


strictement infrieur 1500

>

WHERE Prix>'1500'

Retourne les valeurs dont le prix est


strictement suprieur 1500

<=

WHERE Prix<='1500'

Retourne les valeurs dont le prix est


infrieur ou gal 1500

>=

WHERE Prix>='1500'

Retourne les valeurs dont le prix est


suprieur ou gal 1500

AND

WHERE Prix>'1500' AND


Prix<'2000'

Retourne les valeurs dont le prix est


compris entre 1500 et 2000 non
inclus.

OR

WHERE Prix='1500' OR Prix='2000'

Retourne les valeurs dont le prix est


gal 1500 ou 2000

IN

WHERE Prix IN('1500','2000')

Retourne les valeurs dont le prix est


gal 1500 ou 2000

NOT IN

WHERE Prix NOT IN('1500','2000')

Retourne les valeurs dont le prix est


diffrent de 1500 ou de 2000

BETWEEN

WHERE Prix BETWEEN '1500'


AND '2000'

Retourne les valeurs dont le prix est


compris entre 1500 et 2000 non
inclus.

NOT
BETWEEN

WHERE Prix NOT BETWEEN


'1500' AND '2000'

Retourne les valeurs dont le prix n'est


pas compris entre 1000 et 1500 non
inclus.

LIKE

WHERE Nom LIKE 'c*' or LIKE


'*a'

Retourne les valeurs dont le nom du


client commence par un "c" ou se
terminant par un "a"

NOT LIKE

WHERE Nom NOT LIKE '*k*'

Retourne les valeurs dont le nom du


client ne contient pas la lettre "k"

IS NULL

WHERE Prix IS NULL

Retourne les valeurs dont aucun prix


n'a t fix

IS NOT
NULL

WHERE Prix IS NOT NULL

Retourne les valeurs dont le prix a t


fix

EXISTS

WHERE EXISTS (SELECT Prix


FROM Fichier WHERE Prix='1500')

Teste pour vrifier s'il y a des prix


gaux 1500

NOT
EXISTS

WHERE NOT EXISTS (SELECT


Prix FROM Fichier WHERE
Prix='1500')

Teste pour vrifier s'il y a des prix


diffrent 1500

ALL

WHERE Prix > ALL (SELECT Prix teste pour vrifier s'il y a des produits
FROM Fichier_concurrent WHERE concurrent se trouvant Marseille
Lieu='Marseille')
qui cotent moins cher que le vtre

ANY

WHERE Prix < ANY (SELECT Prix Teste le prix du produit pour savoir
FROM Fichier_concurrent WHERE
s'il est plus bas que celui du
Lieu='Marseille')
concurrent se trouvant dans

Marseille

1.3 Les fonctions mathmatiques

Il est aussi possible avec le langage SQL d'effectuer des calculs directement partir des
donnes. Cela se fait l'aide des fonctions mathmatiques suivantes:
Fonction

Utilisation

COUNT() Comptabilise le nombre d'enregistrements retourn

Prenons

quelques

SUM()

Calcule la somme des valeurs retournes

AVG()

Calcule la moyenne des valeurs retournes

MAX()

Retourne la plus haute des valeurs trouves

MIN()

Retourne la plus petite des valeurs trouves

exemples

pour

mieux

comprendre:

Plaons ce bout de code dans un champs de texte.


Data.RecordSource="SELECT COUNT(Produit) FROM Fichier
Ce code permet de voir combien est-ce qu'il y a de produits vendu dans un magasin.
Les autres fonctions fonctionnent de la mme manire que cette dernire.

2. Ajout et recherche de donnes

2.1 Ajout de donnes

Pour ajouter des donnes dans une base de donnes, on utilise l'instruction INSERT.
La syntaxe pour ajouter de nouvelles donnes avec SQL est la suivante:
INSERT INTO Table (Colonnes)
VALUES (valeurs1,valeurs2)
L'instruction INSERT permet d'insrer de nouvelles donnes.

Le mot-cl INTO est spcifique une base Access. Ne la mettez que que si
vous utilisez Access.

Le mot Table reprsente la table o doit tre insr ces nouvelles donnes.
Le mot Colonnes reprsente les colonnes dans lesquelles sont places ces
nouvelles donnes.
La clause VALUES vous permet d'insrer de nouvelles donnes. C'est ici qu'il faut
placer les nouvelles valeurs.
Les mots valeurs1, valeurs2 reprsentent les donnes qui vont tre entres
dans la base.
Par exemple:
INSERT INTO Fichier_client(Nom,Prnom,Id) VALUES ('Dupont','Jean','568')
Le client Dupont Jean, numro d'identification 568, a t ajout dans la base de donnes.
2.2 Suppression de donnes

La suppression de donnes se fait l'aide de l'instruction


La syntaxe pour supprimer des donnes l'aide de SQL est la suivante:

DELETE.

DELETE FROM table WHERE (Critre de recherche)

L'instruction DELETE permet d'effacer des donnes d'une base.

La clause FROM sert indiquer partir de quel table les donnes doivent
tre dtruites.
Le mot table reprsente le nom de la table.
La clause WHERE permet d'introduire un critre de recherche.
Le mot Critre de recherche permet d'effectuer une recherche afin de
dterminer quelles donnes doivent tre effac de la base.

Par exemple:
Le

client

Dupont

DELETE FROM Fichier_client WHERE Client='Dupont'


t
supprim
dans
la
base
de
donnes.

3. Mise jour de donnes

La mise jour de vos donnes se fait l'aide de l'instruction UPDATE.


La syntaxe est la suivante:
UPDATE table SET Colonne='valeur'
WHERE (Critre de recherche)

L'instruction UPDATE permet de mettre jour vos donnes.

Le mot table reprsente le nom de la table dans lequel vont tre mis jour
des donnes.
La clause SET permet d'introduire un critre de recherche.
Le mot Colonne reprsente le nom de la colonne dans lequel vont tre mis
jour des donnes.
Le mot valeur reprsente la nouvelle valeur.
La clause WHERE permet d'introduire un critre de recherche.
Le mot Critre de recherche permet d'effectuer une recherche afin de
dterminer quelles donnes doivent tre effac de la base.

Par exemple:
UPDATE Fichier SET date='20/05/01' WHERE Produit='Lait'
Tous les enregistrements de la colonne date vont tre modifi par '20/05/01'. Mais avec la
seul
les
produits
laitiers
seront
concern.
clause
WHERE,

4. Les transactions

Les transactions permettent de grouper une srie d'instruction SQL. Ne croyez pas que
a sert rien. Cette mthode de regroupement peut s'avrer tre trs utile lorsque vous
manipulez des donnes sensibles. En effet, lorsque qu'une instruction SQL choue, vous
avez la possibilit d'annuler la transaction et de revenir en arrire c'est--dire avant que
les
donnes
soient
modifies.
Cette transaction se fait l'aide des commandes suivantes:
BEGINTRANS marque le dbut d'une transaction.
COMMITTRANS marque la fin d'une transaction.
ROLLBACK annule la transaction et vous retrouvez vos donnes initiales.

Voici la syntaxe d'une transaction:


On Error GoTo Erreur
BeginTrans
Srie d'instruction
CommitTrans
Exit Sub
Erreur:
MsgBox Error$

RollBack
exit Sub

Vous avez d remarqu qu'une routine de traitement d'erreur a t plac dans ce code.
C'est dans le cas o la transaction chouerait. Sinon, je pense que vous avez compris son
fonctionnement en voyant la syntaxe. C'est pas dur comprendre.

5. Recherche partir d'un champ de texte

Voici comment faire pour effectuer une recherche partir d'un mot tap dans un champ
de texte. Voil, il faut que vous placiez un champ de texte nomm par exemple, "Text1"
et un bouton de commande appel par exemple, "Chercher". Placez le bout de code
suivant dans la procdure du bouton:
valeur = "SELECT * FROM Liste WHERE Produit LIKE " + " ' " + Text1.Text + " ' "
Data.RecordSource = valeur
Data.refresh

Voil, c'est tout! Si vous ne comprenez pas quelque chose, n'hsitez pas poser votre
question sur le forum.

Cours 17 : L'diteur de ressources


Tout d'abord, faut que je vous explique ce que c'est qu'un diteur de ressources et quoi
sert-il. C'est un utilitaire qui permet de stocker des donnes comme une base de donnes.
On pourrait dire que c'est une alternative pour stocker vos donnes au lieu de faire appel

des
bases
de
donnes.
Vous pouvez par exemple vous servir de cet utilitaire pour permettre de traduire une
application en plusieurs langues. Vous pouvez y stocker 5 types de donnes:

Note:

Les chanes de caractre;


Les bitmaps;
Les icnes;
Les curseurs;
Les ressources de type binaires tels que les fichiers son(WAV) ou vido(AVI).
La

taille

des

fichiers

est

limit

64Ko.

Bon, en premier lieu, il faut le charger. pour cela, allez dans le menu "Complments" et
choisissez la commande "Gestionnaire de complments". Ensuite, placez vous sur la
ligne "diteur de ressources" et cochez la case "Charger/Dcharger" en bas droite.
Voil, prsent, vous pouvez remarquer dans la barre d'outils, une icne avec des ptits
carrs
verts,
c'est
l'diteur
de
ressources.
Lorsque vous avez cliqu sur cet icne, la fentre de l'diteur de ressource apparat. Vous
pouvez constater qu'il est vide. Normal, vous n'y avez encore rien mis. Passons au chose
srieuse!
A droite de la barre d'outils, vous pouvez remarquer la prsence de 5 icnes permettant
de charger la ressource voulue. Chargeons par exemple des chanes. Cliquez sur l'icne
"Modifier les tables d'une chane...". Vous verrez alors apparatre un tableau. La
premire colonne contient le numro d'identification pour chacune des ressources. La
deuxime colonne contient les chanes de caractre en franais. Vous pouvez rajouter
d'autres colonnes si vous souhaitez avoir plusieurs langues. Les numros de la premire
colonne correspondent la langue utilise par votre ordinateur(LCID). Par exemple,
supposons que vous avez plac deux colonnes contenant des chanes en franais et en
anglais. Si la langue utilis par votre ordinateur est le franais, alors, ce sera les
ressources en franais qui sera utilis. par contre, si la langue utilise par votre
ordinateur est l'anglais, alors, ce sera les ressources contenant les chanes en anglais qui
sera utilis. Remarquez, si la langue utilise par votre PC ne fait pas partie de vos
ressources,
alors,
ce
sera
la
premire
colonne
qui
sera
utilis.
Passons

la
pratique
maintenant!
Voici les fonctions qui permettent d'utiliser ces ressources dans votre projet. -Pour
charger une chane, vous utiliserez la fonction LoadResString(id) o "id" correspond au
numro
de
la
chane
contenue
dans
l'diteur
de
ressources.
-Pour charger un curseur, une icne ou un bitmaps, vous utiliserez la fonction
LoadResPicture(id,type) o "id" correspond au numro de la chane contenue dans
l'diteur de ressources et o "type" correspond au type de ressources que vous voulez
charger.
Les diffrents types sont:
Pour les bitmaps, c'est 0 ou "vbResBitmaps"
Pour les icnes, c'est 1 ou "vbResIcon"
Pour les curseurs, c'est 3 ou "vbResCursor"

-Pour charger une ressource personnalise, vous utiliserez la fonction


LoadResData(id,type) o "id" correspond au numro de la chane contenue dans l'diteur
de ressources et o "type" correspond au type de ressources que vous voulez charger.
Pour ce dernier, modifiez la proprit en crivant par exemple "WAV" comme type
pour
un
fichier
son
WAV.

Enfin, si vous voulez que l'utilisateur puisse choisir la langue utiliser, placez toutes vos

chanes dans une seule colonne et utilisez la fonction "LoadResString" suivi de l'ID de la
chane.

Cours 18 : Le contrle Winsock

Winsock est le contrle idal et indispensable pour toute communication entre


ordinateurs. Il s'appuie principalement sur le protocole TCP/IP(Transmission Control
Protocol/Internet Protocol) qui est le langage commun utilise par la plupart des
ordinateurs pour communiquer. Winsock, diminutif de Windows Sockets, est souvent
utilise pour crer des applications client/serveur. Mais il peut trs bien servir d'autres
fins comme par exemple, accder un serveur par FTP(File Transfer Protocol). Au cas
o ceux qui ne savent pas en quoi consiste les applications client/serveur, je vais vous
expliquer un peu comment a fonctionne. De manire gnrale, ce sont deux programmes
qui communiquent en s'changeant des informations. D'une manire plus prcise,
l'application client envoie une requte l'application serveur pour demander des
informations. Dans le sens inverse, le serveur aprs avoir reu la requte du client, essaie
de rpondre cette requte puis renvoie la rponse de la requte au serveur.
Bon, je vous explique prsent comment fonctionne ce contrle. Le contrle Winsock
n'est pas prsent par dfaut dans la bote outils. Faites un clic droit sur la souris et
choisissez la commande "Composants". Cochez sur la case "Microsoft Winsock
Control" et validez.

Les proprits
Les mthodes
Les vnements
Un exemple d'applications client/serveur

1. Les proprits du contrle Winsock


Pour utiliser Winsock correctement, il est trs important de bien paramtrer les
proprits de ce dernier, faute de quoi, votre application ne marchera. Notez que
certaines de ses proprits ne sont accessibles que lors de l'criture du code. Toutes les
proprits du contrle ne sont pas expliqus. Seuls, les plus importantes le sont et les
voici:

BytesReceived
Indique en octets, les donnes prsentes dans la mmoire tampon de rception. Cette
proprit n'est disponible que lors de l'excution de l'application et n'est pas modifiable.
La valeur retourne est un nombre entier
LocalHostName
Retourne le nom du serveur local. Cette proprit n'est disponible que lors de l'excution
de l'application et n'est pas modifiable. La valeur retourne est une chane de caractres.
LocalIP
Retourne l'adresse IP du serveur local. Cette proprit n'est disponible que lors de
l'excution de l'application et n'est pas modifiable. La valeur retourne est une chane de
caractres.
LocalPort
Retourne le numro du port local. Cette proprit est disponible et modifiable aussi bien
lors de la conception que lors de l'excution de l'application. La valeur retourne est un
nombre entier.
Protocol
Retourne le protocole utilis. Vous avez le choix entre le mode TCP ou UDP.
Le mode TCP vous permet d'tablir et maintenir une connexion un serveur

donn.
Pour l'application Client, il vous faut le nom du serveur auquel vous vous
connectez ou bien son adresse IP ainsi que le port sur lequel vous tes connect.
pour
vous
connecter.
Utilisez
ensuite
la
mthode
Connect
Pour l'application serveur, il vous faut connatre le port sur lequel l'application
Client est connect. Faites ensuite appel la mthode Listen pour chercher
savoir si l'application Client cherche se connecter au serveur. Si c'est le cas,
l'vnement ConnectionRequest est activ et pour que la connexion entre
l'application Client et celle du serveur soit maintenue, faites appel la mthode
Accept.
Enfin, aprs que la connexion soit maintenue, faites appel aux mthodes SendData
et Getdata pour envoyer et recevoir des donnes.
Le mode UDP(User Datagram Protocol) est un protocole qui n'tablit pas de
connexion. Ainsi, la relation de client/serveur disparat. L'application peut donc
tre aussi bien cliente que serveur. La distinction n'est plus faite avec ce mode.
RemoteHost
Retourne le nom du serveur distant. Cette proprit est disponible et modifiable aussi
bien lors de la conception que lors de l'excution de l'application.
RemotePort
Retourne le numro du port distant. Cette proprit est disponible et modifiable aussi
bien lors de la conception que lors de l'excution de l'application. La valeur retourne est
un nombre entier.
State

Retourne l'tat de la connexion. Pour finir, voici les diffrents tats possibles de la
proprit "State":
ETAT

CONSTANTE

VALEUR

Ferm(par dfaut)

sckClosed

Ouvert

sckOpen

A l'coute

sckListening

Connexion suspendu

sckConnectionPending

Recherche du serveur distant

sckResolvingHost

Serveur distant trouv

sckHostResolved

Connexion en cours

sckConnecting

Connect

sckConnected

Fin de connexion avec l'application client

sckOpen

Erreur

sckError

2. Les mthodes du contrle Winsock


Passons maintenant aux mthodes les plus importantes du contrle Winsock.
Accept
Cette mthode sert montrer que le serveur a accept la connexion de l'application
client. Mais avant, il faut que la proprit "State" du contrle soit paramtre
"sckListening". Enfin, cette mthode n'est utilise que durant l'vnement
"ConnectionRequest".
Close
Cette mthode met fin la connexion TCP entre les applications client et serveur.
GetData
Cette mthode permet de rcuprer les donnes stockes dans la mmoire tampon.
Listen
Cette mthode permet au serveur d'tre l'coute des requtes TCP provenant de
l'application client.
SendData
Cette mthode permet d'envoyer les donnes soit l'application client, soit au serveur.

Connect
Cette mthode permet de se connecter l'ordinateur distant. Elle doit tre suivie des
arguments RemoteHost et Remoteport en les sparant par une virgule.

3. Les vnements du contrle Winsock


Pour finir, faut que je vous montre l'utilisation des vnements. Ces vnements sont trs
utiles pour le contrle Winsock.
Close
Cet vnement se dclenche quand l'ordinateur distant clt la connexion.
Connect
Cet vnement se dclenche quand l'ordinateur distant a russi tablir la connexion.
ConnectionRequest
Cet vnement se dclenche quand le serveur reoit une requte provenant de
l'application client.
DataArrival
Cet vnement se dclenche quand l'application reoit des donnes.
SendComplete
Cet vnement se dclenche quand l'envoi des donnes est termin.
SendProgress
Cet vnement se dclenche quand les donnes sont en cours d'envoi.
Error
Cet vnement se dclenche quand une erreur apparat.

4. Un exemple d'applications client/serveur


Il ne suffit pas de connatre les proprits et mthodes du contrle Winsock pour pouvoir
l'utiliser correctement. Je vais donc vous expliquer un peu comment l'utiliser l'aide
d'un
exemple.
Le code suivant est celui d'un exemple d'application client simplifi.
Option Explicit
Private Sub Connexion_Click()
If Winsock.State <> sckConnected Then
Winsock.RemoteHost = "127.0.0.1"
Winsock.RemotePort = 1007
Winsock.Connect
Else
MsgBox "Vous tes dj connect"

End If
End Sub
Private Sub Quitter_Click()
Winsock.Close
End
End Sub
Private Sub Recherche_Click()
If Text1.Text <> "" Then
If Winsock.State = sckConnected Then
Winsock.SendData Text1.Text
Else
MsgBox "Non connect au serveur"
End If
Else
MsgBox "Veuillez tapez le nom!"
End If
End Sub
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim strData
Winsock.GetData strData, vbString
Text2.Text = strData
End Sub
Explication

du

code

de

l'application

client

La procdure "Connexion_Click()" sert se connecter au serveur o les donnes que


l'on cherche savoir, sont stockes.
L'instruction de test "If...Then...Else...End If" sert savoir si l'application client

est dj connect ou pas au serveur.


Dans le cas o il n'est pas connect au serveur, eh ben on le connecte au serveur.

Mais avant, il faut lui fournir des informations sur le serveur, savoir son adresse
IP("RemoteHost") et le port("RemotePort") o sera tabli la connexion. Une fois
ceci faite, il ne reste plus qu' vous connecter l'aide de la mthode Connect.
Dans le cas o il est dj connect au serveur, eh ben, on affiche tout simplement
un message indiquant que vous tes dj connect.
La procdure "Quitter_Click()" sert mettre fin la connexion avec le serveur.
Pour cela, faites appel la mthode Close.
Enfin, utilisez l'instruction End pour quitter l'application.
N'oubliez surtout pas de mettre fin chaque fois votre connexion un serveur

car sinon, cela peut provoquer des erreurs.

Une fois connecte au serveur, la procdure "Recherche_Click()" sert faire une requte
auprs du serveur afin de chercher les donnes que l'on cherche.
La premire instruction de test sert savoir si le champ de texte(Text1) est vide.
o Si ce n'est pas le cas, on fait appel une autre instruction de test pour savoir

si vous tes dj connect ou pas. Si vous l'tes, alors, on fait appel la


mthode SendData Pour envoyer au serveur ce qui est contenu dans le
champ "Text1" et rcuprer des infos sur le mot que vous avez entrez dans
ce champ. Si c'est le cas, alors un message vous indiquant que vous n'tes
pas encore connect au serveur, est affich.
o Si c'est le cas, un message vous indiquant que le champ "Text1" est vide, est
affich votre cran.
La procdure "Winsock_DataArrival(ByVal bytesTotal As Long)" sert recevoir les
donnes du serveur.
Pour cela, on fait appel la mthode GetData suivi de l'argument dans lequel les

donnes seront stockes et enfin suivi du type de cet argument.


Enfin, on affecte au champs "Text2" les donnes que l'on a reu du serveur.

Le code suivant est celui d'un exemple d'application serveur. Les donnes que l'on
cherche, sont stockes dans une base de donnes que l'on accde l'aide du contrle
"Data". Il y aussi une chose rajouter dans la proprit du contrle "Winsock". Dans sa
proprit "Index", mettez "0". Cela correspond au nombre de personnes connectes au
serveur mais aussi au nime contrle Winsock(groupe contrle). En effet, chaque fois
que vous l'incrmentez, un "nouveau" contrle Winsock est charg l'aide de la
mthode "Load".
Option Explicit
Private Sub Form_Load()
Label6.Caption = Winsock(0).LocalHostName
Label4.Caption = Winsock(0).LocalIP
Winsock(0).LocalPort = 1007
List1.AddItem ("A l'coute du port:" & Winsock(0).LocalPort)
Winsock(0).Listen
End Sub
Private Sub Winsock_ConnectionRequest(index As Integer, ByVal
requestID As Long)
Dim Message As String Message = "ID de la connexion " &
requestID & " de " & Winsock(index).RemoteHostIP
List1.AddItem (Message)
index = index + 1
Load Winsock(index)
Winsock(index).Accept requestID
Label5.Caption = index

End Sub
Private Sub Winsock_DataArrival(index As Integer, ByVal
bytesTotal As Long)
Dim InData, OutData
Dim requete As String
Winsock(index).GetData InData, vbString
requete = "select from * where Nom='" & strData & "'"
Data.RecordSource = requete
strOutData = Data.Recordset.Fields("Passe")
Winsock(index).SendData OutData
End Sub
Private Sub Winsock_Close(index As Integer)
List1.AddItem ("Dconnexion de: " & Winsock(index).RemoteHostIP)
index = index - 1
Label5.Caption = index
Winsock(index).Close
EEnd Sub
Explication

du

code

de

l'application

serveur:

La procdure "Form_Load()" va permettre au chargement de l'application, de placer


dans deux contrles "Label", le nom du serveur ainsi que son adresse IP. Ensuite, on
indique au serveur sur quel port("LocalPort"), il doit se mettre en coute. Ensuite, il est
indispensable de placer le serveur l'coute de requtes de connexion. Pour cela, on fait
appel

la
mthode
Listen.
La procdure "Winsock_ConnectionRequest(index As Integer, ByVal requestID As
Long)" sert traiter les requtes de connexions. L'instruction "index = index + 1" sert
indiquer qu'une nouvelle requte de connexion est faite au serveur. On charge un
"nouveau" contrle Winsock qui gre cette requte. Pour accepter cette requte, on fait
suivi
de
l'argument
"requestID".
appel

la
mthode
Accept
La procdure "Winsock_DataArrival(index As Integer, ByVal bytesTotal As Long)" sert
recevoir les donnes provenant de l'application client et vice-versa. Pour recevoir les
donnes, on fait appel la mthode GetData. Pour envoyer des donnes, on fait appel la
mthode
SendData
Enfin, la procdure "Winsock_Close(index As Integer)" sert mettre fin une
connexion. A chaque fois, qu'une personne se dconnecte, la proprit "Index" est
dcrment de 1. Pour fermer la connexion, utilisez la mthode Close.

Vous aimerez peut-être aussi