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 :
[ Publ i c / Pr i vat e] [ St at i c] Sub Nom_pr oc ( ar gument s)
[ Dcl ar at i ons]
[ I nst r uct i ons]
[ exi t Sub]
[ I nst r uct i ons]
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 :
Pr i vat e Sub For m_Load( )
Di mDat eNai ssance
Di mMessage, Ti t r e As St r i ng
Message = "Dat e de nai ssance ?"
Ti t r e = " Ent r ez vot r e dat e de nai ssance : "
Dat eNai ssance = I nput Box( Message, Ti t r e)
I f Dat eNai ssance <> " " Then
Dat eNai ssance = For mat ( Dat eNai ssance, " Long Dat e" )
MsgBox Dat eNai ssance, vbOKOnl y + vbI nf or mat i on, " Vous t es n( e)
l e"
End
El se
Whi l e Dat eNai ssance = " "
MsgBox "Ent r ez une dat e" , vbOKOnl y + vbExcl amat i on, " At t ent i on! "
Dat eNai ssance = I nput Box( Message, Ti t r e)
Wend
Dat eNai ssance = For mat ( Dat eNai ssance, " Long Dat e" )
MsgBox Dat eNai ssance, vbOKOnl y + vbI nf or mat i on, " Vous t es n( e)
l e"
End
End I f
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
Octet 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
Montaire 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
Dfini par
l'utilisateur
Type -
L'tendue de chaque lment est la
mme que son type de donnes

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 :
Di mDat eNai ssance
Di mMessage, Ti t r e As St r i ng

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 :
Di mV1 as I nt eger
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
Tot al TTC=Pr i xHor sTaxe 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 :
Di mAdr esses ( 1 t o 50 ) As St r i ng
Adr esses( 1) = " 12, avenue de l a Fayet t e, Par i s"
. . . . . . . .
Adr esses( 50) = "4, r ue de l a Pai x, Par i s"

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:
Di mAdr esses ( 1 t o 50, 1 t o 50) As St r i ng
Adr esses( 1, 0) = " Vi ncent "
Adr esses( 1, 1) = " 12, Rue de l a pai x, Par i s"
. . . . .
Adr esses( 50, 0) = " Phi l i p"
Adr esses( 50, 50) = "7, Boul evar d de l a Vi l l et t e"

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 :
Di mAdr esses( 50) As St r i ng
Adr esses( 0) = " 12, avenue de l a Fayet t e, Par i s"
. . . . . . . .
Adr esses( 49) = "4, r ue de l a Pai x, Par i s"

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 un tableau, on peut aussi utiliser la fonction Array :
Exemple :
Di mSemai ne, J our As St r i ng
Semai ne = Ar r ay( " l undi " , " mar di " , "mer cr edi " , " j eudi " ,
"vendr edi " , " samedi " , " di manche" )
J our = ( 3) ' r et our ne j eudi




4. Quatrime mthode pour dfinir un tableau
Une autre mthode consiste en la cration de tableaux dynamiques. Pour comprendre
cette mthode, prenons un exemple :
Di mAdr esse( ) As St r i ng
Di mNbAdr esses As I nt eger
' Nouvel l e adr esse
NbAdr esses = nbAdr esses + 1
Redi mAdr esse ( NbAdr esses)
Adr esse ( NbAdr esses) = "75, Rue Lecour be, Par i s"

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 :
Redi mPr eser ve Adr esse ( NbAdr esses)

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 :
I f condi t i on Then
I nst r uct i ons 1
el se
I nst r uct i ons 2
End i f


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:
I f Condi t i on 1 Then
I nst r uct i on 1
El seI f Condi t i on 2 Then
I nst r uct i on 2
El se
I nst r uct i ons X
End I f

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:
Var i abl e = I I f ( Condi t i on, i nst r uct i ons 1, i nst r uct i ons 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 :
Sel ect Case Semai ne
Case 1
J our = "Lundi "
Case 2
J our = "Mar di "
Case 3
J our = "Mer cr edi "
Case 4
J our = "J eudi "
Case 5
J our = "Vendr edi "
Case 6
J our = "Samedi "
Case 7
J our = "Di manche"
El se
MsgBox "er r eur ", vbOKOnl y , " Not e"
End Sel ect

I f Semai ne = 1 Then
J our = "Lundi "
El seI f Semai ne = 2 Then
J our = "Mar di "
El seI f Semai ne = 3 Then
J our = "Mer cr edi "
El seI f Semai ne = 4 Then
J our = "J eudi "
El seI f Semai ne = 5 Then
J our = "Vendr edi "
El seI f Semai ne = 6 Then
J our = "Samedi "
El seI f Semai ne = 7 Then
J our = "Di manche"
El se
MsgBox "er r eur ", vbOKOnl y , " Not e"
End I f

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 St ep 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 :
Di mSemai ne( 1 t o 7) As St r i ng
Di mJ our As Var i ant
Semai ne( 1) = " Lundi "
' Et c. . .
For Each J our I n Semai ne( )
Combo1. AddI t emJ our
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 Unt i l i > 10

i = 1
Whi l e 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
I nst r uct i ons
Loop Whi l e Condi t i on
Do Unt i l Condi t i on
I nst r uct i ons
Loop
Do Whi l e Condi t i on
I nst r uct i ons
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.

Les barres de dfilement permettent de lire la suite du contenu d'une fentre trop
large 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.

Le contrle DirListBox permet d'afficher la liste de tous les rpertoires d'une lecteur
de 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 Utilisation
CancelError
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 Utilisation
CancelError
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 Utilisation
CancelError
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&".
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 Utilisation
CancelError
Initialise True, elle renvoie le code d'erreur 32755 (CDERR_CANCEL)
lorsque le bouton Annuler a t press.
Copies Elle dfinit le nombre d'exemplaires imprimer.
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&".
FromPage Elle dfinit le numro de la premire page imprimer.
PrinterDefault
Elle sert indiquer si les paramtres entrs doivent devenir les nouveaux
paramtres par dfaut.
ToPage 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 :
Pr i vat e Sub For m_MouseDown( But t on As I nt eger , Shi f t As I nt eger ,
X As Si ngl e) , Y As Si ngl e
I f ( But t on = 2) Then
PopupMenu X
end i f 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 :
Pr i vat e Sub ouvr i r _Cl i ck( )
On Er r or Resume Next
Open " C: \ Wi ndows\ Bur eau\ not e. TXT" For I nput As #1
r et our = Chr $( 13) + Chr $( 10)
Li ne I nput #1, t ext e
t out = t ext e
I f Len( t out ) <> 0 Then
Whi l e Not EOF( 1)
Li ne I nput #1, t ext e
t out = t out + r et our + t ext e
Wend
End I f
Cl ose #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" :
Pr i vat e Sub Sauvegar der _Cl i ck( )
Open "C: \ Wi ndows\ Bur eau\ not e. TXT" For Out put As #1
Pr i nt #1, Text 1. Text
Cl ose #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" :
Pr i vat e Sub Ef f acer _Cl i ck( )
Text 1. Text = " "
Text 1. Set Focus
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" :

Pr i vat e Sub Qui t t er _Cl i ck( )
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 vous-
mme 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.
Sel ect Case But t on. Key
Case " New"
Nouveau_Cl i ck
Case " Open"
Ouvr i r _Cl i ck
End Sel ect

"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, reportez-
vous 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
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.
Delete
Elle sert supprimer un enregistrement donn.
Exemple: Data1.RecordSet.Delete
Movefirst,
MoveLast,
MovePrevious,
MoveNext
Elles servent respectivement revenir au premier enregistrement,
aller au dernier enregistrement, revenir l'enregistrement
prcdent et aller l'enregistrement suivant.
Exemple: Data1.RecordSet.MoveFirst.
Refresh
Elle sert rafrachir la base de donne.
Exemple: Data1.Refresh.
UpdateRecord
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()":
Pr i vat e Sub For m_Load( )
MMCont r ol 1. Devi ceType = " CDAudi o"
MMCont r ol 1. Command = " Open"
MMCont r ol 1. Updat eI nt er val = 1000
MMCont r ol 1. Ti mef or mat = 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)":
Pr i vat e Sub MMCont r ol 1_Ej ect Cl i ck( Cancel As I nt eger )
MMCont r ol 1. Command = " Ej ect "
MMCont r ol 1. Command = " Cl ose"
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():
Pr i vat e Sub MMCont r ol 1_St at usUpdat e( )
Di mAl l , Seconde, Mi nut e, Mi sc
Al l = MMCont r ol 1. Posi t i on Mod 16777216
Seconde = Al l / 65536
Mi nut e = ( Al l - Seconde * 65536) / 256
Mi sc = Al l - Seconde * 65536 - Mi nut e * 256
Pi st e. Capt i on = " Pi st e " + St r ( Mi sc)
Temps. Capt i on = " Dur e " + Mi nut e + " : " + 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
FROM Fichier_concurrent WHERE
Lieu='Marseille')
teste pour vrifier s'il y a des produits
concurrent se trouvant Marseille
qui cotent moins cher que le vtre
ANY
WHERE Prix < ANY (SELECT Prix
FROM Fichier_concurrent WHERE
Lieu='Marseille')
Teste le prix du produit pour savoir
s'il est plus bas que celui du
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
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

Prenons quelques 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 DELETE.
La syntaxe pour supprimer des donnes l'aide de SQL est la suivante:
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:
DELETE FROM Fichier_client WHERE Client='Dupont'
Le client Dupont a 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
clause WHERE, seul les produits laitiers seront concern.

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:

Les chanes de caractre;
Les bitmaps;
Les icnes;
Les curseurs;
Les ressources de type binaires tels que les fichiers son(WAV) ou vido(AVI).
Note: 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.
Utilisez ensuite la mthode Connect pour vous connecter.
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 0
Ouvert sckOpen 1
A l'coute sckListening 2
Connexion suspendu sckConnectionPending 3
Recherche du serveur distant sckResolvingHost 4
Serveur distant trouv sckHostResolved 5
Connexion en cours sckConnecting 6
Connect sckConnected 7
Fin de connexion avec l'application client sckOpen 8
Erreur sckError 9

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.
Opt i on Expl i ci t
Pr i vat e Sub Connexi on_Cl i ck( )
I f Wi nsock. St at e <> sckConnect ed Then
Wi nsock. Remot eHost = " 127. 0. 0. 1"
Wi nsock. Remot ePor t = 1007
Wi nsock. Connect
El se
MsgBox " Vous t es dj connect "
End I f
End Sub

Pr i vat e Sub Qui t t er _Cl i ck( )
Wi nsock. Cl ose
End
End Sub

Pr i vat e Sub Recher che_Cl i ck( )
I f Text 1. Text <> " " Then
I f Wi nsock. St at e = sckConnect ed Then
Wi nsock. SendDat a Text 1. Text
El se
MsgBox " Non connect au ser veur "
End I f
El se
MsgBox " Veui l l ez t apez l e nom! "
End I f
End Sub

Pr i vat e Sub Wi nsock_Dat aAr r i val ( ByVal byt esTot al As Long)
Di mst r Dat a
Wi nsock. Get Dat a st r Dat a, vbSt r i ng
Text 2. Text = st r Dat a
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".
Opt i on Expl i ci t
Pr i vat e Sub For m_Load( )
Label 6. Capt i on = Wi nsock( 0) . Local Host Name
Label 4. Capt i on = Wi nsock( 0) . Local I P
Wi nsock( 0) . Local Por t = 1007
Li st 1. AddI t em( " A l ' cout e du por t : " & Wi nsock( 0) . Local Por t )
Wi nsock( 0) . Li st en
End Sub

Pr i vat e Sub Wi nsock_Connect i onRequest ( i ndex As I nt eger , ByVal
r equest I D As Long)
Di mMessage As St r i ng Message = " I D de l a connexi on " &
r equest I D & " de " & Wi nsock( i ndex) . Remot eHost I P
Li st 1. AddI t em( Message)
i ndex = i ndex + 1
Load Wi nsock( i ndex)
Wi nsock( i ndex) . Accept r equest I D
Label 5. Capt i on = i ndex
End Sub

Pr i vat e Sub Wi nsock_Dat aAr r i val ( i ndex As I nt eger , ByVal
byt esTot al As Long)
Di mI nDat a, Out Dat a
Di mr equet e As St r i ng
Wi nsock( i ndex) . Get Dat a I nDat a, vbSt r i ng
r equet e = "sel ect f r om* wher e Nom=' " & st r Dat a & "' "
Dat a. Recor dSour ce = r equet e
st r Out Dat a = Dat a. Recor dset . Fi el ds( " Passe" )
Wi nsock( i ndex) . SendDat a Out Dat a
End Sub

Pr i vat e Sub Wi nsock_Cl ose( i ndex As I nt eger )
Li st 1. AddI t em( " Dconnexi on de: " & Wi nsock( i ndex) . Remot eHost I P)
i ndex = i ndex - 1
Label 5. Capt i on = i ndex
Wi nsock( i ndex) . Cl ose
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
appel la mthode Accept suivi de l'argument "requestID".

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