Vous êtes sur la page 1sur 163

Visual Basic

CHAKRAOUI Mohamed
FPO Ouarzazate

Plan

Chapitre 1 : Introduction gnrale


Chapitre 2 : Premiers lments (Variables, Oprateurs,

Chapitre

Chapitre
Chapitre
Chapitre
Chapitre

Chapitre
Chapitre
Chapitre

tests, Boucles)
3 : Premiers contrles (Form, Bouton de
commande, Etiquette, Zone de text,..)
4 : Quelques fonctions
5 : Contrles et groupes
6 : lments graphiques
7 : Complment de code (Gestion des erreurs,
fonctons personnalises)
8 : Gestion des fichiers
9 : Les bases de donnes
10 : Utilisation de modules externes
2

Chapitre 1 : Introduction Gnrale

Chapitre 1 : Introduction Gnrale

Notion dalgorithme

Chapitre 1 : Introduction Gnrale

Un algorithme est une rgle, il s'exprime par une


suite ordonne de directives compose d'actions et
de dcisions qu'il faut excuter en squence
suivant un enchanement strict pour accomplir une
tche donne, conforme un cahier des charges.

L'algorigramme reproduit dans un langage


graphique normalis tous les cheminements du
raisonnement logique qui dtermine la composition
de l'algorithme.

Chapitre 1 : Introduction Gnrale

Structures algorithmiques :
Sous programme - Portion de
programme considr comme une
simple opration.

Chapitre 1 : Introduction Gnrale

Structures algorithmiques :
Embranchement - Exploitation de
conditions variables impliquant le choix
d'une voie parmi plusieurs.

Chapitre 1 : Introduction Gnrale

Structures algorithmiques :
Dbut, fin ou interruption
d'un organigramme, point de
contrle, etc...

Chapitre 1 : Introduction Gnrale

Sens conventionnel des liaisons

Le sens gnral des lignes de liaison doit tre :

de haut en bas
de gauche droite

Chapitre 1 : Introduction Gnrale

Exemple
C'est la mre d'Oscar qui l'appelle et qui lui dit :
Oscar cours vite l'picerie, achte moi un pain de beurre,
prend de l'argent dans mon porte monnaie, habille toi bien
parce qu'il fait froid.
Si on cre une application en fonction du cahier des charges
notre disposition, il va s'ensuivre ce qui suit :

10

Chapitre 1 : Introduction Gnrale


Oscar va l'picerie, demande du
beurre,
traitement conditionnel1(Tc1) t'il
de l'argent ?
, non, pas d'argent,
alors il retourne chercher l'argent,
traitement conditionnel1(Tc1),
t'il de l'argent ?
oui, alors il prend le beurre,
(T2c2) est il habill ?
, non, retour la maison On
recommence, s'habiller,
aller l'picerie, premier Tc,
rponse oui, deuxime Tc,
rponse oui, retour la maison et
donner beurre maman. FIN

11

Chapitre 1 : Introduction Gnrale

Un algorigramme sert donc faire dun programme


une suite logique d'vnement qui s'enchane les
uns aux autres fin dviter de reprendre le mme
programme tout simplement parce que l'on avait
oubli une tiquette, une feuille, ou une rponse
un message d'erreur.

12

Chapitre 1 : Introduction Gnrale

Visual Basic, un langage vnementiel


(presque) objet

13

Chapitre 1 : Introduction Gnrale

Particularits dun langage


vnementiel:
Un langage vnementiel possde toutes les
caractristiques dun langage traditionnel, avec deux
grands aspects supplmentaires:
1- Les objets
2- Les procdures vnementielles

14

Chapitre 1 : Introduction Gnrale

Les objets

15

Chapitre 1 : Introduction Gnrale


Dfinition :
Un objet peut tre considr comme une structure
supplmentaire dinformation, une espce de
super-variable.
Dans une variable, on ne peut stocker quune
information et une seule.
Un objet est un groupe de variables de diffrents
types. Il rassemble ainsi couramment des dizaines
dinformations trs diffrentes les unes des autres
au sein dune mme structure, rendant ainsi ces
informations plus faciles manier.
16

Chapitre 1 : Introduction Gnrale


Les Proprits dun objet :
Les diffrentes variables dun mme objet ne sont pas
dsignes par un indice, mais par un nom qui leur
est propre. En loccurrence, ces noms qui
caractrisent les diffrentes variables au sein dun
objet sappellent des proprits de lobjet.
Consquence : toute proprit dobjet obit
strictement aux rgles qui sappliquent aux
variables dans tout langage (type, taille, rgles
daffectation).

17

Chapitre 1 : Introduction Gnrale


A titre dexemple, prenons un objet dusage courant :
un ministre.
Les proprits dun ministre sont : sa taille, son
poids, son ge, son portefeuille, le montant de son
compte en Suisse, son nom, sa situation par rapport
la justice, etc.
On peut retrouver aisment le type de chacune de ces
proprits :
le portefeuille, le nom, sont des proprits de type
caractre.
la taille, le poids, lge, le compte en Suisse, sont
des proprits de type numrique.
la situation judiciaire (mis en examen ou non) est
une proprit boolenne.
18

Chapitre 1 : Introduction Gnrale


Ministre
le portefeuille (chaine de caractres)
le nom (chaine de caractres)
la taille(numrique)
le poids(numrique)
lge(numrique)
le compte en Suisse(numrique)
la situation judiciaire(boolen)

On peut en suite crer plusieurs entits du type Ministre comme


Duchemol.
Duchemol possde des valeurs pour chacune des proprits de
lobjet Ministre.
19

Chapitre 1 : Introduction Gnrale


La syntaxe qui permet de dsigner une proprit dun
objet est : objet.proprit
Par exemple si le montant du compte en Suisse du
ministre Duchemol slve 100 000 euros et si la
proprit dsignant ce compte pour les objets de
type ministre est la proprit CompteSuisse, on
crira donc linstruction suivante :
Duchemol.CompteSuisse = 100 000
LObjet

La Proprit

20

Chapitre 1 : Introduction Gnrale


Pour affecter la variable somme le montant actuel du
compte en Suisse du ministre Duchemol, on crira :
somme = Duchemol.CompteSuisse

Pour augmenter de 10 000 euros le montant du


compte en Suisse de Duchemol, on crira :
Duchemol.CompteSuisse = Duchemol.CompteSuisse +
10 000

21

Chapitre 1 : Introduction Gnrale


Les Mthodes dun objet :
Les langages objet ont intgr une autre manire dagir sur les
objets : les mthodes.
Une mthode est une action sur lune ou plusieurs - des
proprits dun objet.
Une mthode va supposer lemploi dun certain nombre
darguments, tout comme une fonction. On trouvera donc des
mthodes un argument, des mthodes deux arguments, et
aussi des mthodes sans arguments.

22

Chapitre 1 : Introduction Gnrale


Par exemple, reprenons le cas notre ministre. Une mthode
pourrait tre AugmenterPatrimoine, qui supposerait un
argument de type numrique.
Ministre
le portefeuille (chaine de caracteres)
le nom (chaine de caracteres)
la taille(numrique)
le poids(numrique)
lge(numrique)
le compteSuis(numrique)
la situation judiciaire(boolen)

AugmenterPatrimoine(numrique)

23

On pourrait ainsi crire :


Duchemol.AugmenterPatrimoine(10 000)

Ce qui aurait exactement le mme effet que de passer


par la proprit correspondante :
Duchemol.CompteSuisse = Duchemol.CompteSuisse +
10 000

24

Chapitre 1 : Introduction Gnrale

Procdures vnementielles

25

Chapitre 1 : Introduction Gnrale


En PASCAL ou en C, par exemple, une application
est constitue dune procdure principale contenant
la totalit du code (y compris par lappel indirect
des sous-programmes). Les instructions quelle
contient sont excutes les unes aprs les autres,
jusqu la fin.
Lordre dexcution des procdures et des sousprocdures est entirement fix davance par le
programmeur lui-mme, par le biais des instructions
dappel des sous-procdures.
26

Chapitre 1 : Introduction Gnrale

Dans un langage vnementiel, il ny a donc plus


proprement parler de procdure principale ;
lexistence dune procdure principale na rien
dobligatoire.

Chaque procdure est lie la survenue dun


vnement sur un objet, et sera donc
automatiquement excute lorsque cet vnement
se produit.
Le nom de la procdure est alors, de manire
obligatoire, le nom de la combinaison
objet-vnement qui la dclenche.

27

Chapitre 1 : Introduction Gnrale


Rsumons par un petit dessin :

28

Chapitre 1 : Introduction Gnrale


Un objet est un contrle.
Un contrle est un des lments de linterface graphique de
Windows, lments que VB met la disposition du
programmeur pour quil constitue ses propres applications.
Les contrles les plus frquents sont : la feuille, le bouton de
commande, la liste, la case cocher, le bouton radio, etc.

Un vnement peut tre dclench :


Par lutilisateur : la frappe au clavier, le clic, le double-clic, le
cliquer-glisser.
Par droulement du programme lui-mme qui modifie, lors de
lexcution, une caractristique de lobjet : le
redimensionnement, le dplacement, etc.

29

Chapitre 1 : Introduction Gnrale


Par exemple, considrons la procdure suivante :
Private Sub Machin_Click()

End Sub

30

Chapitre 1 : Introduction Gnrale


Cette procdure se dclenche si et seulement si lutilisateur clique
sur lobjet dont le nom est "Machin".
Si on prend le problme dans lautre sens : si je suis
programmeur, et que je veux quil se passe ceci et cela lorsque
lutilisateur clique sur lobjet appel "Machin", je dois crer une
procdure qui sappellera obligatoirement :
Sub Machin_Click() et qui contiendra les instructions "ceci"
et "cela".
Moralit : crire un programme qui exploite linterface Windows,
cest avant tout commencer par dfinir :
quels sont les objets qui figureront lcran
ce qui doit se passer lorsque lutilisateur agit sur ces objets via
la souris ou le clavier.

31

Chapitre 1 : Introduction Gnrale


A la diffrence dun programme traditionnel, les procdures lies
aux diffrents vnements possibles ne seront donc pas
toujours excutes dans le mme ordre : tout dpend de ce
que fera lutilisateur.
En pratique, il est rare que lon doive prvoir tous les
vnements. Si un vnement se produit pour un objet (ex :
lutilisateur clique dessus) et quaucune procdure nest
attache cet vnement, il ne se passe rien !

32

Chapitre 2 : Premiers lments du code

33

Chapitre 2 : Premiers lments du code

Les variables

34

Chapitre 2 : Premiers lments du code


En ce qui concerne les noms de variables :

Les noms de variables nont pas de longueur


maximale
Ils doivent commencer par un caractre
Ils ne doivent pas comporter despace
Ils ne sont pas sensibles la casse (prnom et
PRnom sont la mme variable)

35

Chapitre 2 : Premiers lments du code


Les types de variables :

Boolean : True False


Byte : de 0 255
Integer : de 32 768 32 767
Long : de 2 +2 milliards environ
Single : virgule flottante simple prcision
Double : virgule flottante double prcision
String : jusqu 65 000 caractres

36

Chapitre 2 : Premiers lments du code


Dclaration de variables :

La dclaration des variables est optionnelle.


Dans le cas de non dclaration dune variable, cette
dernire est automatiquement cre dans un type
spcial : le type Variant. Ce type possde comme
particularit dtre "souple", savoir de pouvoir
sajuster nimporte quel contenu (caractre,
boolen, numrique..).
Mais, le type variant a comme inconvnient dtre
trs gourmand en mmoire vive occupe.

37

Chapitre 2 : Premiers lments du code


La Porte des variables :
Lexistence dune variable peut se drouler sur deux niveaux :

Niveau Procdure : cela veut dire que la variable est locale.


Ds que lon quitte la procdure en question, la variable
disparat, et son contenu avec elle. Pour dclarer une variable
au niveau procdure, on tape au sein de la procdure
considre :
Dim NomVariable as Type

Niveau Form : la variable est disponible pour toutes les


procdures de la Form , mais pas pour les procdures se
situant sur une autre Form. Pour dclarer une variable au
niveau Form, on tape tout en haut de la Form, lextrieur
des procdures :
Dim NomVariable as Type
38

Chapitre 2 : Premiers lments du code


Variables indices

On les appelle aussi des tableaux ! Ce peut tre des tableaux de


nombres, de chanes, de boolens, bref, de tout ce quon veut.
Tout tableau doit obligatoirement tre dclar.

Quand on cre un tableau, soit on sait davance combien dlments il


va contenir, soit on veut quil soit dynamique.

Pour crer un tableau de 12 entiers, on crira :


Dim MonTableau(11) As Integer

Pour crer un tableau dynamique, on crira :


Dim MonTableau() As Integer
Ensuite, ds quon veut en fixer la taille, on crit dans le code :
Redim MonTableau(11)

Pour manipuler les lments du tableau, il suffit dcrire :


MonTableau(1) = 9
39

Chapitre 2 : Premiers lments du code

Les oprateurs

40

Chapitre 2 : Premiers lments du code


Les oprateurs sont absolument standard. On les
rappelle rapidement :

Oprateurs numriques :
Oprateurs boolens :
Oprateur caractres :

+
*
/
And Or Xor Not
& (concatnation)

41

Chapitre 2 : Premiers lments du code

Les tests

42

Chapitre 2 : Premiers lments du code


Les Structures de tests possibles sont :
If Then

EndIf
If Then

Else

EndIf
If Then

Elseif Then

Elseif Then

Else

EndIf
43

Chapitre 2 : Premiers lments du code

Les Boucles

44

Chapitre 2 : Premiers lments du code


While

Wend

Do While

loop
For x = a to b

Next x
45

Chapitre 3 : Premiers contrles

46

Chapitre 3 : Premiers contrles

Dmarrer avec lenvironnement Visual Basic :

Exe.standard reprsente le modle le plus courant pour raliser la


plupart des applications sous Visual basic
47

Chapitre 3 : Premiers contrles

Linterface de travail Visual Basic :

Barre
de titre
Barre
de menu

Barre
Doutils

Fentre
De projet

Boite
Doutils

Feuille
de travail

Fentre
De proprit

48

Chapitre 3 : Premiers contrles

Le contrle Form

Cest le contrle de base. En Visual Basic cest la


feuille, ou formulaire, en anglais, Form. Cet objet
est incontournable ; on ne peut crer et utiliser
dautres objets que si ceux-ci font partie dune
Form.

49

Chapitre 3 : Premiers contrles

Fentre de Proprits du contrle Form

50

Chapitre 3 : Premiers contrles


Name
Caption

51

Chapitre 3 : Premiers contrles

Name : il sagit du nom de lobjet tel quil est


gr par lapplication. Cela correspond en quelque
sorte un nom de variable (sauf que ce nest pas
une variable, cest un objet !).

Par dfaut, VB nomme tous les objets que vous


crez des noms gnriques, comme Form1, Form2,
Form3, Text1, Text2, Text3, etc.

52

Chapitre 3 : Premiers contrles

Caption : il sagit du texte associ lobjet sur


lcran. Cette Caption est donc trs utile pour
professionnaliser une application, lui donner un look
fini, mais ne joue aucun rle dans la dsignation de
lobjet par lapplication. Cest un rle purement
dcoratif !

Dans le code, on ne dsigne donc jamais un objet


par sa Caption, mais par son Name. Dans le cas de
la Form, par exemple, la proprit Caption dsigne
le texte qui vient scrire dans la barre de titre.

Chaque proprit joue un rle diffrent.


53

Chapitre 3 : Premiers contrles


Les procdures vnementielles associes lobjet
Form sont nombreuses, la plus clbre est la
suivante :
Private Sub Form_Load()
End Sub
Qui se dclenche louverture du Form.

54

Chapitre 3 : Premiers contrles


Le contrle CommandButton (Bouton de
Commande)
Quelques proprits intressantes de lobjet CommandButton :
Name : Le nom du bouton
Caption : Le texte qui saffiche sur le bouton
Visible : Proprit boolenne qui dtrmine la visibilit du
bouton
Enabled : Proprit boolenne permet (valeur True) un
contrle dtre actif, cest--dire de pouvoir recevoir des
vnements, et donc de dclencher des procdures.
Inversement, elle interdit (valeur False) un contrle de
recevoir quelque vnement que ce soit de la part de
lutilisateur. Dans ce cas, le contrle apparat gris lcran.
55

Chapitre 3 : Premiers contrles


Les procdures vnementielles associes lobjet
Bouton sont nombreuses, la plus clbre est la
suivante :
Private Sub Command1_Click()
End Sub
Qui se dclenche quand lutilisateur clique sur le
bouton.

56

Chapitre 3 : Premiers contrles


Le contrle Label (Etiquette)
Un Label est un contrle "inerte", qui sert afficher un texte sur
une Form. Son aspect peut varier quelque peu selon les styles
adopts :

57

Chapitre 3 : Premiers contrles


Quelques proprits :

Name
Caption : Dtrmine le texte saffichant sur le label
Font : Dtrmine la police du label
Backcolor : Dtrmine le fond de couleur du label

58

Chapitre 3 : Premiers contrles


Le contrle Zone de Texte (TextBox)
Il peut servir saisir une information. Il sagit du seul
contrle permettant une saisie au clavier par lutilisateur.

59

Chapitre 3 : Premiers contrles


Quelques proprits :

La proprit essentielle d'une Zone de Texte est


Text. Cest la proprit qui dsigne son contenu.
Si nous voulons mettre une zone de texte appel
"NomDeFamille" blanc laffichage de la feuille, on
crira tout simplement :
Nomdefamille.Text = ""
Si lon veut rcuprer le texte saisi par lutilisateur
dans la variable texte1, on passera linstruction
suivante :
texte1 = Nomdefamille.Text
60

Chapitre 3 : Premiers contrles

Compilation et interprtation
Lorsquon crit une application Visual Basic, on cre
donc un ensemble dobjets et on dfinit les
procdures qui se rapportent ces objets.

Lorsquon sauvegarde cette application, Visual Basic


va crer un certain nombre de fichiers. Pour
lessentiel :

61

Chapitre 3 : Premiers contrles

Un fichier dit Projet comportant lextension *.vbp (qui


reprend lacronyme de Visual Basic Project). Ce fichier
rassemble les informations gnrales de votre application (en
gros, la structure des diffrents objets Form, qui sont le
squelette de toute application)

Un fichier par objet Form cr, fichier portant lextension


*.frm. Donc si votre application comporte six Form, vous aurez
en plus du fichier "projet", six fichiers "Form" sauvegarder.
Chacun de ces fichiers comporte les objets contenus par la
"Form", ainsi que tout le code des procdures lies ces
objets.

ventuellement, d'autres fichiers correspondant d'autres


lments de l'application.

62

Chapitre 3 : Premiers contrles

Tant que le projet est ouvert sous la forme dune


collection de fichiers vbp et frm, vous pouvez
lexcuter afin de le tester.

Lors de lexcution, le langage est alors ce quon


appelle compil la vole . Cest--dire que VB
traduit vos lignes de code au fur et mesure en
langage machine, puis les excute.

63

Chapitre 3 : Premiers contrles

Exction du projet :

Dans la barre d'outils, cliquez sur le bouton excuter form d'un


petit triangle.

La feuille doit s'afficher, et lorsque vous cliquez sur le bouton


"Quitter", l'application doit se fermer.
64

Chapitre 3 : Premiers contrles

Une fois lapplication (le "projet") mis au point


dfinitivement, vous devez la compiler une bonne
fois pour toutes, crant ainsi un unique fichier
*.exe. Ce fichier contient cette fois lui seul
lensemble de votre projet, form, code. Et il peut
tre excut sans louverture donc la possession pralable de Visual Basic.
Cependant, ce fichier ne peut tre excut que sur
les systmes Windows (non portabilit des
applications VB)

65

Elments de modlisation
dinterfaces

Une interface graphique (objet) est compose de 3


parties : entte, corps et pied.

66

Elments de modlisation
dinterfaces

Lentte :
(1) : Raison sociale de lexpditeur. Exemple : FPOOuarzazate .
(2) : Reprsente la date ddition correspondant la date
courante du systme il faut rcuprer la date systme
avec les mot cl : Date et Time, et en utilisant le contrle
Timer .
(3) : Contient le titre de ce qui est en cours. Exemple :
Gestion des examens .
(4) : Raison sociale du destinataire, elle reprsente la
personne physique ou morale pour qui lapplication actuelle
a t ralise.

67

Elments de modlisation
dinterfaces

Le corps :

Dans cette partie de lobjet, lutilisateur sera amen


dfinir les diffrentes entits en entre et en sortie
ncessaires la rsolution du problme.
Le contenu du corps nest jamais standard, il varie dun
exercice lautre et il est impossible de lui donner un
format standard.

68

Elments de modlisation
dinterfaces

Le pied :

Cest une partie rserve la totalisation ou


synthse de cette interface graphique.

69

Les boites de dialogues

Inputbox :

Variable$ = InputBox$(Prompt$, Titre$, Defaut$, X%, Y%)


Prompt$ : le texte saisi par l'utilisateur.
Titre$ : contient le titre de la bote de dialogue.
Defaut$ : est propos au moment de l'ouverture de la bote de
dialogue.
X% et Y% permettent de positionner la bote, en l'absence de
ces valeurs, la bote de dialogue est centre.

70

Les boites de dialogues

Exemple :

Nom = InputBox("Bonjour","Tapez votre nom ?")


Ca donne :

71

Les boites de dialogues

Msgbox :
Variable = MsgBox (texte1, integer, texte2, ... )

La fonction MsgBox comporte donc trois arguments


essentiels
le texte du message envoyer
le style des boutons et de licne ventuelle faire
figurer sur le message
le texte de la barre de titre

72

Les boites de dialogues

Exemple :

Texte = "Enregistrer les modifications (...) ?"


Titre = "Microsoft FrontPage"
Toto = MsgBox ( Texte, 51, Titre )
Ou
Texte = "Enregistrer les modifications (...) ?"
Titre = "Microsoft FrontPage"
Toto = MsgBox (Texte, vbExclamation + vbYesNoCancel, Titre)

73

Les boites de dialogues


On peut tester la valeur renvoye par la fonction Msgbox.
Exemple :
Msg = "Alors, tu t'es dcid ? C'est oui ou c'est non ?"
Btn = vbYesNo + vbQuestion
Tit = "Alors ?..."
toto = MsgBox(Msg, Btn, Tit)
'
'

Test de la valeur rpondue, et branchement sur deux autres msgbox


En cas de rponse OUI, Toto vaut la constante VbYes, mais aussi 6

If toto = vbYes Then


tutu = MsgBox("C'est Oui !!!", vbExclamation, "Super")
Else
tutu = MsgBox("Quel dommage...", vbCritical, "Aaaargh !")
End If

74

Exercices sur les boucles

Demander la saisie dune note tant quelle nest pas comprise


entre 5 et 20.
Calculer et afficher la somme des entiers de 1 x (x est un
entier saisi par lutilisateur).
Calculer et afficher la factorielle de x (x est un entier saisi par
lutilisateur).
Calculer et afficher la moyenne de 5 valeurs saisies par
lutilisateur.
Calculer et afficher le max et le min de 5 valeurs saisies par
lutilisateur.
Afficher tous les nombres infrieurs x par ordre dcroissant
(x est un entier saisi par lutilisateur).
Afficher pour x donn, la somme des carrs des n premiers
entiers jusqu x.
75

Quelques fonctions numriques

Int (nombre) : renvoie la partie entire de ce nombre

Rnd () : renvoie un nombre pseudo-alatoire compris entre 0


(inclus) et 1 (exclu).

Val (Chane) : renvoie un nombre si Chane est compose de


chiffres

Str (Nombre) : renvoie Nombre sous forme de chiffres (c'est-dire de caractres)

76

Les chanes de caractres

Mid (Nomdechane, nombre1, nombre2) : renvoie une chane,


extraite de Nomdechane, commenant au caractre numro
nombre1 et faisant nombre2 caractres de long

Len (Nomdechane) : renvoie le nombre de caractres de


Nomdechane.

LTrim (Nomdechane) : renvoie la chane Nomdechaine,


dbarrasse de tous les espaces se trouvant gauche.

Rtrim (Nomdechane) : renvoie la chane Nomdechane,


dbarrasse de tous les espaces se trouvant droite.

AllTrim (Nomdechane) : renvoie la chane Nomdechane,


dbarrasse de tous les espaces se trouvant droite et
gauche.

77

Exercices sur les chanes de


caractres
Ch1 et Ch2 sont deux chanes de caractres. Vrifier
que Ch1 et Ch2 comportent le mme nombre de
caractres, et quelles commencent par le mme
caractre et se terminent par le mme caractre.
Utiliser Len et Mid

Palindrome

Transformer une chane de caractres en un tableau


de caractres.

78

Autres contrles : Les cases


Il existe sous Windows deux sortes de cases :
les cases dites "cases cocher" (Checkbox): Elles sont carres,
et indpendantes les unes des autres, mme si elles sont
regroupes dans un cadre pour faire plus joli.

79

Autres contrles : Les cases

les cases dites "cases doption", voire "boutons radio"


(OptionButton). Elles sont rondes et font toujours partie dun
ensemble (dessin par lobjet Frame). Au sein dun ensemble
de cases doption, jamais plus dune seule case ne peut tre
coche la fois.
Il faut toujours crer le Frame avant de poser des cases
lintrieur de ce Frame !! Dans le cas contraire, le langage ne
reconnatra pas les cases comme faisant partie du mme
ensemble.

80

Autres contrles : Les cases

Moralit !!
Avant de mettre des cases et dcrire le code qui
sy rapporte, il faut bien se demander de quel type
de cases on a besoin.

81

Autres contrles : Les cases

La proprit la plus intressante dune case est celle


qui nous permet de savoir si elle est coche ou non.
Cette proprit sappelle Value.

Value prend la valeur True ou False lorsquelle


concerne les cases doption.
Value prend la valeur 1 ou 0 lorsquelle sapplique
aux cases cocher.

Value peut tre utilise aussi en criture (pour


initialiser telle ou telle case au moment o elle
arrive lcran).

82

Les cases : Exercice 1

Proposez une interface qui propose de choisir des options


supplmentaires dune voiture qui cote au dpart 150 000dhs.
Les prix des options sont :
Option 1 : 10000dhs
Option 2 : 9000dhs
Option 3 : 12000dhs
Option 4 : 17000dhs
Option 5 : 20000dhs

Lutilisateur peut choisir 0 ou plusieurs options.


Calculez et affichez le prix total de la voiture :
Aprs validation des choix
Au fur et mesure de la slection des options

83

Les cases : Exercice 2

Proposez une interface qui propose lutilisateur de


choisir 3 livres acheter (chacun avec son prix).
Chaque livre est choisi parmi une liste de livres. De
chaque liste, lutilisateur ne peut choisir quun seul
et unique livre.
Affichez les livres que lutilisateur a slectionn, le
prix de chaque livre et le prix total :
Aprs validation des choix
Au fur et mesure de la slection des livres

84

Les cases : Exercice 3

Une calculette qui permet de faire le choix de


lopration (Addition, Soustraction, Produit,
Quotient) en cochant une case.

85

Autres contrles : Les listes


VB fournit deux contrles de liste :
une liste dite simple : contrle ListBox
une liste dite modifiable : contrle ComboBox
Ces listes peuvent possder ou non deux caractristiques :
Elles peuvent tre modifiables : cest--dire que lutilisateur a
la possibilit dentrer un lment qui ne figure pas au dpart
dans la liste.
Elles peuvent tre droulantes : cest--dire quon ne voit
quun seul lment de la liste la fois, et quil faut cliquer sur
la flche du ct pour "dplier" la liste.

86

Autres contrles : Les listes

Tableau rcapitulatif :

87

Autres contrles : Les listes


Proprits indispensables :

ListIndex : renvoie ou dfinit lindice de llment actuellement


slectionn.
VB gre les listes la manire des tableaux. Il attribue
chaque lment dune liste un indice, cet indice commenant
toujours zro. Si aucun lment n'est slectionn dans la
liste, la proprit Listindex vaut -1.
List : Cette proprit renvoie sous forme de texte un lment
dune liste en fonction de son indice. Il sagit donc dune
proprit qui ncessite un argument (le numro dindice).

Exemple : Pour rcuprer le libll du produit slectionn parmi la


liste Produit :
NomProduit = Produits.List(Produits.ListIndex)
88

Autres contrles : Les listes

Toutefois, pour les comboBox on peut utiliser


directement la proprit Text pour rcuprer
llment slectionn.

Exemple :
NomProduit = Produits.Text

89

Autres contrles : Les listes


Autres proprits intressantes :

ListCount, qui renvoie le nombre dlments dune liste


(proprit numrique)
Multiselect, qui permet la slection multiple (proprit
boolenne)
Sorted, qui trie automatiquement les lments dune liste
(proprit boolenne)

90

Autres contrles : Les listes


Mthodes connatre pour grer les listes:

AddItem Chane : ajoute l'lment Chane une liste.


RemoveItem (indice) : supprime de la liste l'lment possdant
l'indice spcifi.
Clear : efface tous les lments dune liste

91

Les listes : Exercices

Une interface permet son utilisateur de faire un


seul choix parmi 2 auteurs.
Au choix dun auteur, sont affichs sur une liste ses
uvres littraires pour que lutilisateur slectionne
les livres quil veut acheter.
Quand le choix de lauteur change, la liste des livres
est mise jour galement.

92

Les listes : Exercices

Une interface propose ce qui suit :


Une liste listant un ensemble de produits
Une liste vierge quon peut alimenter partir de la premire
liste avec les actions:
A droite
A gauche
Tout droite
Tout gauche
Avant de lancer une de ces action, lutilisateur doit slctionner
un produit de la premire liste.

93

Les objets systmes de fichiers


La liste de lecteurs
La liste de rpertoires
La liste de fichiers

94

Les groupes de contrles

95

Les groupes de contrles

Jusqu' prsent, nous avons toujours considr que chaque


contrle tait un objet compltement indpendant des autres
contrles. Cela se manifestait de deux manires :
lors de la cration des contrles, nous cherchons toujours
lobjet dans la bote outils, en vitant de faire des copier
coller.
par consquent, chaque objet possde une proprit Name
bien lui, qui nous permet de le dsigner sans ambigut en
crivant le code. Et donc, chaque objet possde ses propres
procdures vnementielles, distinctes de celles lies aux
autres objets.

96

Les groupes de contrles

Cette stratgie peut provoquer dans certains programmes une


lourdeur :
Lorsque plusieurs objets de mme type remplissent des tches
semblables , on se retrouve avec une multitude de procdures
vnementielles (une par objet) qui se ressemblent beaucoup,
voire qui sont carrment semblables.

La cration dun groupe de contrles a pour but dallger tout


ceci.
Comment faire ?

97

Les groupes de contrles


1- Lors de la cration des contrles (exemple : champs texte), on
procde par copier-coller.
2- A la question "souhaitez-vous crer un groupe de contrles?",
on rpond par laffirmative.
Les quatre objets crs seront des membres dun mme groupe :
ces quatre objets porteront le mme nom (Name) mais auquel
est ajout un Index qui servira les identifier individuellement.
Donc, Si on a cr un groupe de 4 contrles de TextBox le nom
par dfaut de ce groupe sera Text1. On aura alors Text1(0),
car l'Index commence zro , Text1(1), Text1(2) et Text1(3).

98

Les groupes de contrles

Si on a un traitement effectuer sur les quatre champs texte,


on pourra crire une boucle, par exemple pour effacer tout le
texte dans les champs :
For i = 0 to 3
Text1(i).text=
Next i

Toutes les structures de boucles dj vu peuvent tre utilises


: for next, while ou do while
99

Les groupes de contrles

Quand on cre la procdure associe ce groupe on obtient la


fonction suivante :
Private Sub Text1_Change(Index As Integer)
End Sub

La variable Index, que Visual Basic cre automatiquement en


tant que paramtre en entre de cette procdure, contient
chaque excution de la procdure, l'indice de l'lment du
groupe qui vient de dclencher l'vnement : si au sein de
cette procdure, on a besoin de savoir quel champs dont la
valeur a t change, il suffit de tester la variable Index, qui
peut valoir de zro trois.

100

Application des groupes de contrles : La


gestion dynamique des contrles

La gestion classique des contrles consiste crer au dpart tous les


contrles ncessaires, quitte en cacher provisoirement quelques uns
hors de la vue de l'utilisateur.
Ensuite on permet l'utilisateur d'effectuer certaines actions sur ces
contrles qui permettront de les rendre visible.

Exemple : Le jeu du dmineur :l'utilisateur a le droit de choisir entre


plusieurs tailles de damier.

Une manire classique de programmer cela, serait de crer au dpart le


plus grand damier autoris pour le jeu ; puis ensuite, la lumire du
choix effectu par le joueur, de masquer les cases qui n'ont pas lieu
d'tre.
Inconvnients : Cette solution est :
Fastidieuse
Trs lourde en termes de ressources mmoire, puisqu'on va
mobiliser de la place pour grer des dizaines de contrles.

101

La gestion dynamique des contrles


Autre solution : Utilisation des groupes de contrles
Procdure suivre :

On cre la main l'lment numro zro d'un groupe de


contrles (quitte le masquer provisoirement), et on
dfinit ses proprits.

On crit les procdures vnementielles lies ce groupe

On engendre de manire dynamique les autres lments


du groupe, dans la quantit souhaite.

Pour crer un lment supplmentaire d'un groupe de


contrles, on emploiera le code suivant :
Load NomduGroupe(i)
"i" tant l'index de l'lment qui sera cr.

102

La gestion dynamique des contrles

Remarque importante :
Tout nouvel lment, cr par Load, d'un groupe, est situ
par dfaut l'emplacement exact de l'original, et invisible. Il
faudra donc le plus souvent modifier ses proprits Top et
Left, ainsi que sa proprit Visible.

Pour supprimer un lment d'un groupe de contrles :


Unload NomduGroupe(i)

103

Les groupes de contrles : Exercices


Exercice 1 :

Fates une interface qui ralise la table de


multiplication

104

Les groupes de contrles : Exercices


Exercice 2 :

Proposez une interface qui prsente trois listes de produits :


Produits cosmtiques, produits alimentaires et vtements.

Une quatrime liste contiendra les produits choisis par le client

Un label affichera le prix total des produits acheter

105

Les groupes de contrles : Exercices


Exercice 3 : (Gestion dynamique des contrles)

Proposez une interface o lutilisateur va choisir le nombre de


modules quil veut suivre.

Proposez une deuxime interface qui va offrir lutilisateur des


contrles au nombre du chiffre saisi avant, et des contrles
pour choisir la priode dinscription au module.

106

Les groupes de contrles : Exercices


Pour un htel, on dispose de N chambres. Chaque chambre a un
prix pour passer une nuit. Pendant le mois de Juillet, chaque
chambre a t rserve pendant un nombre de jours prcis.
Faites une application qui permet de :
Saisir le nombre N de chambres dans lhtel
Saisir le prix pour chaque chambre
Saisir le nombre de nuits rserves pendant Juillet pour chaque
chambre
Calculer le revenu de lhtel pendant Juillet (la somme des prix
pays par les personnes ayant rserv les chambres)
Avoir la chambre qui a rapport le maximum de revenu en
Juillet
Avoir la chambre qui a rapport le minimum de revenu en
Juillet
107

Les tableaux

108

Les tableaux (variables indices)

Ce peut tre des tableaux de nombres, de chanes, de


boolens, bref, de tout ce quon veut.
Quand on cre un tableau, soit on sait davance combien
dlments il va contenir, soit on veut quil soit dynamique.
Tout tableau doit obligatoirement tre dclar.

Pour crer un tableau de 12 entiers, on crira :


Dim MonTableau(11) As Integer

Pour crer un tableau dynamique, on crira :


Dim MonTableau() As Integer

Ensuite, ds quon veut en fixer la taille, on crit dans le code :


Redim MonTableau(11)

109

Les tableaux : Reprsentation sur cran

Exemple :
Un tableau de 5 lments de type String qui va contenir les
libells des produits alimentaires saisis par lutilisateur sera
reprsent par un groupe de 5 champs textes : Text1(0),
Text1(1), Text1(2), Text1(3), Text1(4).
La procdure associe ce groupe de 5 champs texte est :
1- En considrant lvnement: changer le texte :
Private Sub Text1_Change(Index As Integer)
End Sub
2- En considrant lvnement: cliquer sur le champs :
Private Sub Text1_Click(Index As Integer)
End Sub

110

Les matrices

Les matrices sont des variables indices de dimension 2. Cest un


ensemble fini de mme type o laccs est direct et ncssitant 2
indices de parcours tous les deux de type entier, le premier est appel
indice ligne, le deuxime est appel indice colonne.

Pour dclarer une matrice de 6 lignes et 5 colonnes, soit 30 lments


de type entiers :
Dim MaMatrice(6,5) as Integer
Pour crer une matrice dynamique, on crira :
Dim MonMatrice() As Integer

Ensuite, ds quon veut en fixer la taille, on crit dans le code :


Redim MonMatrice(6,5)

Un lment de la matrice est not MaMatrice(i,j).


i reprsentant lindice ligne de llment, et j reprsente lindice
colonne.
111

Les matrices
Le parcours de la matrice peut se faire de 2 manires diffrentes :
1- On fixe la ligne et on fait varier la colonne (parcours horizontal). La
boucle correspondante est :
for i=0 to 5
for j=0 to 4
.....
next j
next i

2- On fixe la colonne et on fait varier la ligne (parcours vertical). La


boucle correspondante est :
for j=0 to 4
for i=0 to 5
.....
next i
next j
112

Les matrices

Reprsentation sur cran :

La reprsentation des matrices sur cran est


impossible.
Cependant nous allons simuler cette reprsentation
travers un tableau qui na besoin que dun seul
indice, et on tablira la relation entre cet indice
nomm k avec les indices i et j de la matrice.

113

Exemple : M(2,3)
1- Reprsentation horizontale sur cran :

T0 T1 T2
T3 T4 T5

i : lindice ligne allant de 0 1


j : lindice colonne allant de 0 2
k : lindice du groupe de contrle allant de 0 5
Alors : k= (i * 3) + j

De faon gnrale : M(L1,L2) est la matrice.


Pour i et j correspond k tel que :
k=(i * L2) + j

114

2- Reprsentation verticale sur cran :

T0 T2 T4
T1 T3 T5

i : lindice ligne allant de 0 1


j : lindice colonne allant de 0 2
k : lindice du groupe de contrle allant de 0 5
Alors : k= (j * 2) + i

De faon gnrale : M(L1,L2) est la matrice.


Pour i et j correspond k tel que :
k=(j * L1) + i

115

Les tableaux : Exercice


Exercice :

Considrez 5 produits. Lutilisateur doit saisir pour chaque


produit le libll, le prit unitaire et la quantit travers des
fentres de saisi.
Utilisez des inputbox personnaliss pour chaque produit.

Aprs avoir stoqu toutes ces informations en mmoire en


choisissant les types de donnes adquats, calculez le prix total
hors taxe, et le prix total TTC.

116

Les tableaux : Exercice


Exercice :

Considrez 7 tudiants : Nom, Prnom, classe, note de maths,


note de physique, note dinformatique, note de francais.
Lutilisateur doit saisir toutes les donns relatives aux 7
tudiants. Utilisez des inputbox personnaliss pour chaque
tudiant.
Aprs avoir stoqu toutes ces informations en mmoire en
choisissant les types de donnes adquats :
Calculez la moyenne des notes pour chaque tudiant
Affichez le nom, prnom de ltudiant qui a la meilleur note
en maths, en physique, en informatique et e francais.

117

Les matrices : Exercices


Exercice : Statistiques Marjane

Considrez 5 produits. Lutilisateur doit saisir pour chaque


produit le libll, le prit unitaire et la quantit vendu pour
chaque mois sur un semestre, travers des fentres de saisi.

Aprs avoir stoqu toutes ces informations en mmoire en


choisissant les types de donnes adquats, calculez et affichez
:
Le produit le mieux vendu sur chaque mois.
Le produit le mieux vendu sur tout le semestre.

118

Les menus

Concevoir des menus pour une application VB se fait en


utilisant un outil spcial : le crateur de menus.
Cet outil fait apparatre un certain nombre de proprits pour
grer les menus :
Caption : le texte du menu, tel qu'il apparat l'cran (ex :
Fichier, Edition, Affichage, etc.)
Name : le nom de cet lment de menu pour l'application.
Checked : indique si l'lment de menu est coch par un
petit "v" sa gauche
Enabled : indique si l'lment de menu est actif ou inactif

119

Les menus

Ensuite, chaque lment du menu va pouvoir dclencher un traitement par la


programmation de la procdure qui lui sera associe :
Private Sub NameElementMenu_Click()
...
End Sub
120

La gestion des erreurs

121

La gestion des erreurs


Lobjet Err :
Lobjet Err, qui ntant pas un contrle, ne possde pas
dexistence graphique, est utilis par toute application pour
stocker ltat des erreurs quelle a ventuellement provoques.
Cet objet possde diffrentes proprits que lon pourra utiliser
dans le code pour faire la gestion des erreurs :
Number : dsigne le code de cette erreur, permettant
didentifier son type
Description : il s'agit d'une rapide description de la nature de
lerreur
Source : qui indique lobjet lorigine de lerreur (le nom du
projet)

122

La gestion des erreurs

Toute erreur provoque un vnement appel >Error.


Il faudra donc, au dbut dune procdure susceptible
dengendrer des erreurs, taper la ligne suivante :
On Error GoTo Etiquette

Une tiquette est une sorte de sous-titre lintrieur de la


procdure, se terminant par le signe ":".
Lide est donc que si une erreur survient au cours de cette
procdure, au lieu de se planter, lapplication ira rechercher
ltiquette que vous avez dsigne, et excutera son code.

!! Pour viter que le droulement normal de la procdure

nexcute lui aussi ce qui se trouve sous ltiquette, il faudra


forcer la sortie de la procdure avant cette tiquette par
linstruction Exit Sub.
123

La gestion des erreurs

Exemple :
Public Sub MaFonction()
On Error GoTo Etq1
Dim x, y as Integer
x = inputBox(Veuillez saisir un entier)
y = 12 / x
exit sub
Etq1:
Msgbox("Attention : Division par zro !")
End Sub
124

Gestion de plusieurs erreurs


Public Sub MaFonction()
On Error GoTo Etq1
Dim x, y as Integer
x = inputBox(Veuillez saisir un entier)
y = 12 / x
exit sub
Etq1:
if(Err.Number=1235) then
Msgbox("Attention : Division par zro !")
elseif (Err.Number= 147) then
Msgbox(" . ")
else
Msgbox(Err.Description)
endif
End Sub

125

Gestion des erreurs : Exercices


Exercice 1:

Demandez lutilisateur de saisir son nom, son


prnom, son ge et sa date de naissance.
Faites la gestion des erreurs relative une mauvaise
saisie de la date, un dpassement de capacit et
une non compatibilit de types.

126

Les fonctions et sous-procdures

127

Les fonctions et sous-procdures

Jusquici, toutes les procdures que nous avons utilises


taient des procdures vnementielles :
contrle + vnement procdure vnementielle

Mais VB permet comme tout langage de crer des procdures


traditionnelles.

Leur excution sera alors dclenche non pas par une action de
lutilisateur (vnement), mais par une instruction de votre
programme (appel partir dune procdure vnementielle ou
dautre procdure).

128

Exemple :
linitialisation dune Form (toutes les zones de textes doivent
tre vierges).
Si on a besoin de procder linitialisation plusieurs
moments diffrents de notre application, au lieu de rpter
chaque fois les mmes codes, on va crer une procdure Init()
qui comportera les lignes de code ncessaires :

129

Les fonctions et sous-procdures


Private Sub Init()
Nom.Text = ""
Prnom.Text = ""
Etc.
End Sub
Pour appeler cette procdure, il suffira ensuite dcrire
linstruction suivante :
Call Init

130

Les fonctions et sous-procdures

Porte des procdures :


Une procdure Private nest disponible que si lappel se situe
dans la Form qui la contient.
Pour quune procdure puisse tre appele de nimporte quelle
Form, il faut quelle porte comme nom Public. Dans ce cas,
lors de l'appel, la procdure doit tre dsigne comme faisant
partie d'une autre Form.
Exemple : Si l'on souhaite appeler dans Form1 une procdure
appele Proc est qui est dclare dans Form2, il faudra crire :
Call Form2.Proc

131

Les fonctions et sous-procdures

Passage de paramtres une procdure :

Si l'on veut passer des paramtres une procdure, on aura


recours deux instructions : ByVal pour le passage par
valeur(paramtre en entre), et ByRef pour le passage par
rfrence.
La dclaration d'une procdure Proc1 avec un paramtre
numrique X en entre et un paramtre Y en sortie donnera
ainsi :

Private Sub Proc1(ByVal X as Integer, ByRef Y as Integer)

132

Les fonctions et sous-procdures


Les fonctions :

Une fonction est une procdure qui retourne une valeur.


Pour dclarer une Fonction, on utilisera les instructions
Function et End Function.
Pour retourner une valeur, vous devez crire :
Nom de la fonction = valeur.
Exemple :

Private Function Carre(X as Double)


Carre = X * X
End Function

133

Fonctions et sous-procdures :
Exercices
Exercice 1 :

Ecrire un programme PREMIERS affichant les nombres


premiers infrieurs 100. On utilisera une fonction PREMIER
prenant un nombre entier et retournant true si le nombre est
premier, false sinon.

134

Fonctions et sous-procdures : Exercices


Exercice 2 :

Ralisez une fonction ou procdure de test de


validit dune valeur saisie.

135

Fonctions et sous-procdures :
Exercices
Exercice 3 :

Ecrire un programme permettant de calculer la somme :


i variant de a b :
(x puissance i) / (factorielle i)

136

Les fichiers

137

Les fichiers
On sintresse aux fichiers texte.
Ouvrir et fermer un fichier :
Pour ouvrir un fichier, vous devez :
1- connatre son nom (y compris le chemin daccs)
2- dire ce que vous voulez en faire (lire, crire, ou ajouter ?)
3- lui attribuer un numro arbitraire, dit numro de canal.

Open "C:\TextFile.txt" For Input As #1

138

Les fichiers
Remarques :
Si vous utilisez plusieurs fichiers simultanment, il est impratif
de leur attribuer chacun un numro de canal diffrent
For Input signifie quon ouvre le fichier en lecture. Pour louvrir
en criture, on utilisera For Output, et pour louvrir en ajout,
For Append.
A l'ouverture, il faut choisir une seule opration, on ne peut
faire quune seule chose la fois avec un fichier.
Linstruction de fermeture dun fichier est :
Close #i
o i est le numro de canal du fichier fermer.

139

Les fichiers

Lire un fichier : il ya plusieurs faons de lire un


fichier

1- Procder par lecture squentielle (caractre par caractre):


NomDeVariable = Input (100, #i)

Recopie dans NomDeVariable les 100 caractres suivants du


fichier numro i, partir de la dernire lecture.

140

Les fichiers

Recopie de tout le fichier :


Nbr= LOF(#i)
NomDeVariable = Input (Nbr, #i)

Nbr rcupre ici le nombre de caractres du fichier


texte, via la fonction LOF. On recopie ensuite tout le
fichier dun seul coup d'un seul dans la variable
NomDeVariable.

141

Les fichiers

2- Tirer avantage des fichiers texte qui sont organiss par


lignes :
Line Input #i, NomDeVariable

chaque lecture avec Line Input copie la ligne suivante du fichier


dans NomDeVariable.
Si vous avez construit votre fichier sous forme de champs de
largeur fixe, vous pouvez rcuprer, au sein de chaque ligne,
les diffrents champs en dcoupant NomDeVariable en
diffrents morceaux via la fonction Mid.

142

Les fichiers

Exemple :
Dim T() as string
...
Open "C:\Monfichier.txt" For Input As #1
i = -1
While Not Eof(1)
i=i+1
Redim T(i)
Line Input #1, T(i)
Wend

On cre un tableau dynamique. On parcourt le fichier ligne aprs


ligne tant qu'il en reste (boucle While ... Wend). A chaque
ligne, on actualise l'indice i, on redimensionne le tableau, et on
recopie la ligne dans la nouvelle case ainsi cre.
143

Les fichiers

Ecrire dans un fichier : L'criture se fait systmatiquement


ligne par ligne. Linstruction utiliser est :
Print #i, NomDeVariable

Linstruction crit le contenu de la variable NomDeVariable


dans le fichier de numro i.
Pour tre certain que les diffrentes informations sont ranges en
respectant les champs de largeur fixe, le plus simple est de
dclarer certaines variables String comme possdant toujours
un nombre fixe de caractres.

Exemple :
Dim NomDeVariable as String*25
144

Les fichiers
Modification dun fichier:
1- Ajouter des lignes la fin d'un fichier :
Open FileName For Append As #10
Print #10, NewLine
Close #10
Si le fichier nexiste pas, il est cr.

145

2- supprimer une ligne d'un fichier, connaissant


le numro de ligne :

On considre que la premire ligne est la ligne numro 1.

Le principe est de lire tout le fichier, de stocker les lignes du


fichier dans un tableau. Ensuite, on ouvre le fichier en criture
et on crit toutes les lignes sauf celle dont le numro a t
pass en paramtre

146

Le principe est le mme pour les fonctions suivantes :

supprimer une ligne d'un fichier, sur base de la


prsence d'une sous-chane"
modifier une ligne d'un fichier, sur base de la
prsence d'une sous-chane"
insrer une ligne une position donne dans un
fichier

147

Les fichiers
Exercice :
1- Crer deux fichiers structurs :
Fichier 1 contient la liste de 5 modules :

nom module de 20 caractres


nombre de matires du module d1 caractre

Fichier 2 contient la liste de toutes les matires :

Nom matire de 25 caractres


Prof enseignant de 15 caractres

2- Crer une interface qui comporte deux listes et un bouton :


La premire liste affiche les noms des matires
La deuxime liste affiche les nom des profs enseignants
Le bouton permet de passer au module suivant

148

Les bases de donnes

149

Les bases de donnes

Visual Basic est un outil de dveloppement qui offre


plusieurs fonctionnalits, parmi lesquelles pouvoir se
connecter une base de donnes, et interagir avec
elle (Ajout, suppression, modification, consultation,
etc) .

150

Cration de la base de donnes


Access

Conseils :

Avant de crer votre base de donnes il faut bien rflchir


sa structure ! Sinon, vous oublierez certainement certaines
informations.
Chaque table que vous crez doit contenir une cl !

NB :

A la fin de la cration de la base de donnes, il faut la


convertir au format Access 97, pour sassurer que Visual
Basic communique parfaitement avec la base de donnes.

151

Utilisation dune base Access avec


Visual Basic
1.

2.

Cliquez successivement sur projet, rfrences, puis


slectionnez Microsoft DAO 2.5/3.21 compatibility library.
Cliquez sur OK.
Dclarez une variable comme base de donnes, une variable
comme enregistreuse , et une variable de type String pour
donner la requte excuter dans votre base de donnes.
Public db as Database
Public rs as recordset
Public sql as String

Indiquez le chemin de la base de donnes laquelle le logiciel


doit se connecter
Set db=OpenDatabase(C\.....\votrebase.mdb)
3.

NB: Pour tre connect ds louverture du programme, mettez ce


code dans la Form load
152

Ajout dun enregistrement


1. Crer un nouvel enregistrement :
Sql=select * from NomDeVotreTable
on slctionne tous les champs de la table
Set rs=db.OpenRecordset(sql,dbOpenDynaset)
on slecionne le mode criture
rs.addnew
Pour ajouter un enregistrement
2. Remplir les champs :
rs.fields(Nom)=txtNom.text
rs.fields(Prenom)=txtPrenom.text
rs.fields(Salaire)=txtSalaire.text
3. Une fois les valeurs dfinies, on met jour :
rs.update
rs.close
153

Consulter un enregistrement

Sql=select * from NomDeVotreTable where Nom=


&txtNom.text &
Set rs=db.OpenRecordset(sql,dbOpenSnapshot)
Afficher les informations que vous voulez dans les textBox dj
cr :
txtNom.text=rs.fields(Nom)
txtPrenom.text=rs.fields(Prenom)
txtSalaire.text=rs.fields(Salaire)

NB : Il faut faire attention slectionner une valeur de champs


o il ny a pas de doublons.

154

Afficher un champs de tous les


enregistrements dans une listbox

Sql=select * from NomDeVotreTable


Set rs=db.OpenRecordset(sql,dbOpenSnapshot)
While not rs.EOF
List1(0).addItem rs.Fields(Nom)
rs.MoveNext
Wend

155

Modifier un enregistrement

Sql=select * from NomDeVotreTable where Nom=


&txtNom.text &
Set rs=db.OpenRecordset(sql,dbOpenDynaset)
rs.edit
rs.fields(Salaire)=txtModifsalaire
rs.update
rs.close

156

Supprimer un enregistrement

Sql=delete from NomDeVotreTable where Nom= &txtNom.text &


Set rs=db.OpenRecordset(sql,dbOpenDynaset)
rs.execute
rs.close

chemin_base11 = "J:\test.mdb"
Set base111 = Workspaces(0).OpenDatabase(chemin_base11)
Set etd = base111.OpenRecordset("select * from Enfants WHERE Enfants.doti = '" & g &
"' ")
etd.MoveFirst
Do While Not etd.eof
etd.Delete
etd.MoveNext
Loo

157

Ajouter une nouvelle table

Sql=CREATE TABLE NomDeVotreNouvelleTable (Nom Text


(5), Ville Text (5))
db.execute sql

158

Supprimer une table existante

Sql=DROP TABLE NomDeLaTableASupprimer


db.execute sql

159

Ajouter un champs une table

Sql=ALTER TABLE NomDeVotreTable ADD


COLUMNS Nom TEXT (10)
db.Execute sql

160

Supprimer un champs une table

Sql=ALTER TABLE NomDeVotreTable DROP


COLUMNS Nom
db.Execute sql

NB: A la fin, il faut toujours fermer la connection avec :


db.close

161

Projet rendre le 13/01

Crez une base de donnes pour la gestion dune clinique multi-spcialits.


Crez une application qui va communiquer avec la base cre et qui assurera les fonctionnalits
suivantes ( tendre !!) :
Pour les mdecins :

Ajouter un nouveau mdecin (nom, prnom, spcialit, date de dbut de fonction)

Supprimer un mdecin

Modifier les informations sur un mdecin aprs une recherche par cl

Faire une recherche du mdecin par :


Nom
Spcialit
Date de dbut de fonction
Pour les patients :

Ajouter un nouveau patient (nom, prnom, numro de CIN, date dentre la clinique, maladie,
mdecin traitant, date de sortie)

Supprimer un patient

Modifier les informations sur un patient aprs une recherche par cl

Faire une recherche du patient par :


Nom
CIN
Date dentre la clinique
Maladie
Date de sortie

Chaque patient doit avoir une fiche o se trouve toutes les traitements, les interventions
chirurgicales, les mdicaments prescrits,

162

Projet (Suite)

On doit pouvoir afficher la liste des patients quun mdecin


donn a trait durant une priode donne

Crez un menu pour lapplication


Faites la gestion des erreurs

163