Vous êtes sur la page 1sur 74

Une image vaut mille mots

Bien dbuter avec Visual Basic


1. Introduction
2. Comment dmarrer avec Visual Basic ?
3. Les tapes de la ralisation dune application
4. Sauvegarder une application
5. Notions de base (Le contrle Form)
6. Notions de base (Le Label)
7. Notions de base (Le CommandButton)
8. Apprentissage par lexemple

2/74

Introduction
Visual Basic 6.0 est un logiciel de programmation cre par la socit Microsoft pour permettre le
developpement des applications qui peuvent fonctionner de manire autonome sous
Windows.
Le modle de programmation utilis par Visual Basic est de type vnementiel c'est--dire que
seulement une partie du code est excut suite une action prcise de lutilisateur (appele
vnement).
Visual Basic est considr egalement comme un langage de programmation oriente objet : chaque
partie du code est lie un objet, et cest une action sur cet objet qui dclenche son excution.
Il existe sur le march trois ditions de Visual Basic:

- Ldition Initiation est la moins fournie des trois mais permet de crer de puissantes
applications.

- Ldition Professionnelle dispose de toutes les fonctionnalits de ldition initiation et se voit


enrichie de nombreux contrles et outils de dveloppement.

- Ldition Entreprise est la plus complte.

3/74

2. Les tapes de la ralisation dune application


La cration d'une application dans Visual Basic implique trois tapes principales :
Crer l'interface.
Dfinir les proprits.
crire le code.

3. Sauvegarder une application


Lorsquon sauvegarde une application , Visual Basic va crer :
1. Un ou plusieurs fichiers feuilles (.frm) : Un fichier mmorise tous les lments attachs

une feuille : la description de la fentre, la description des contrles inclus dans la fentre,
les procdures et fonctions lies la feuille.

2. Un fichier dit projet (.vbp) : Il mmorise la liste de tous les fichiers ncessaires au projet.
Quand le projet est termin il peut tre transform (compil) en un seul fichier

excutable .EXE qui sexcutera sans lancer Visual Basic, mais il necessitera
toutefois davoir le logiciel install.

2. Notions de base (le contrle Form)


Par dfaut Visual basic affiche une feuille vierge apple Form1
Pour commencer, nous allons examiner deux proprits :
- La proprit Name : il sagit du nom de lobjet tel quil est gr par lapplication. Par dfaut,
Visual Basic donne tous les objets que vous crez de noms gnriques, comme Form1, Form2,
Form3
- La proprit Caption : il sagit du texte associ lobjet sur lcran.

Notes
Concernant la proprit name, il est important de changer les noms donns par dfaut
C
aux contrles utiliss et de choisir des noms plus vocateurs.
Par convention, on utilise un prfixe de 3 lettres spcifique la famille de l'objet
concern, suivi d'un nom significatif du rle rempli par le contrle dans le projet.

Exemple : Au lieu de concerver form1 comme name, on choisira frmclients pour une
feuille qui servira runir les dtails sur les clients.

4/74

Les prfixes souvent utiliss pour chaque objet :

Objet
Bouton de commande
(CommandButton)
Bouton d'option (OptionButton)

Prfixe
cmd
opt

Cadre (Frame)

fra

Case cocher (CheckBox)

chk

Etiquette (Label)

lbl

Formulaire ou Feuille (Form)

frm

Image (Image)

img

Liste modifiable (ComboBox)

cbo

Menu (Menu)

mnu

Minuterie (Timer)

tmr

Photo (Picture)

pic

Zone de liste (ListBox)

lst

Zone de texte (TextBox)

txt

La boite outils
Zone image (PictureBox)
Label
Encadr avec un titre (Frame)
Case cocher (CheckBox)
Liste modifiable (ComboBox)
Barre de dfilement horizontale (HScrollBar)
Minuterie (Timer)
Liste de rpertoires (DrilistBox)
(Shape)
Image

Zone de texte (TextBox)


Bouton de commande (CommandButton)
Bouton doption (OptionButton)
Liste non modifiable (ListBox)
Barre de dfilement verticale (VScrollBar)
Liste de lecteurs (DriveListBox)
Liste de fichiers (FilelistBox)
Trait (Line)
Data

5/74

Notes
C
Les principales proprits dun contrle Label sont :

Alignment : qui rgle lalignement du texte (gauche, centr, droite)

BorderStyle : qui dsigne le type de bordure du label

Autosize

: permet dajuster la taille du Label son contenu.

Dans une zone de texte, il y a 3 possibilits :

Afficher une valeur


Inscrire une valeur

Modifier une valeur ;

Dans un label, il ya UNE possibilit :

Afficher une valeur

6/74

4. Notions de base (Le CommandButton)


Il sagit du bouton de commande du type Ok, Annuler, et permet a lutilisateur de dclencher un
vnement avec la souris ou le clavier.

Quelques proprits de la classe CommandButton :

Enabled : cette proprit permet au bouton dtre actif (valeur True), 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.

STYLE : si cette propriete possede comme valeur graphical, il devient alors possible dajouter
une image sur le bouton, ou d'en modifier la couleur. dans le cas contraire (valeur standard,
par defaut), le bouton conserve laspect par defaut des boutons de windows (le gris).

7/74

5. Apprentissage par lexemple


Ralisez votre premier programme qui permet de contrler laffichage de la date et lheure partir
de deux boutons.

1. Crer linterface suivante :


Form1
Label 1

Command1

Command2

2. Dfinir les objets et leurs proprits :


L'tape suivante consiste dfinir pour chaque objet des proprits.
1.

Appuyez sur la touche F4 pour ouvrir la Fentre Proprits ;


(Si cette fentre est dj ouverte passez ltape suivante)

2.

Choisissez un objet de la liste :

3.

Affectez les proprits suivantes :


8/74

Objets

Proprits

Valeurs

Form1

Caption

Essai

Command1

Caption

Date

Command2

Caption

Heure

Caption
Label1

Alignment

Center

Border Style

Fixed Single

3. Ecrire le code
Pour ouvrir la fentre du Code, Double-cliquez sur la feuille ou sur le contrle pour lequel vous
souhaitez crire le code (Dans notre exemple on a choisit le bouton de commande Command1.

Command1 est le name du bouton de commande choisi ;

Command1_Click veut dire que le code qui sera crit entre Private Sub et End Sub sera
execut quand l'utilisateur va cliquer sur ce bouton ;
Private veut dire que ce code sera utilisable UNIQUEMENT que dans cette feuille.

Label1=Date : signifie que lobjet Label1va afficher la date systme (quand


lutilisateur aura cliqu sur le bouton Command1).

9/74

Pour excuter l'application, cliquez sur Excuter dans le menu Excution, ou sur le bouton
d'outils, ou encore appuyez sur la touche de fonction F5.

de la barre

Dautres codes tester:

Le premier exemple montre quau


contraire des fonctions Time et
Date, pour afficher un texte dans
un Label, il doit tre plac entre ";

Le deuxime exemple montre


lutilit du caractre & :
concatner une fonction et un
texte ;

Space(5) permet dinsrer 5


espaces ;

Dautres proprits valables pour de nombreux lments :


Proprits

Signification

BackColor

couleur de l'arrire-plan de l'objet (ex. : couleur de la fentre)

ForeColor

couleur du premier plan de l'objet (ex. : couleur du texte)

Font

style d'criture

Autosize

Permet pour un Label dadapter le texte son bordure

Quelques rgles respecter :

Un name doit toujours commencer par une lettre, ne doit pas dpasser 255 caractres et ne
doit pas comporter despaces.

10/74

Les mots rservs par Visual Basic (if, then, time, date) ne peuvent pas tre utiliss pour
la proprit name.

Ajout du bouton Quitter :


Objectif : ajouter un bouton de command qui permet de terminer lapplication :

Ce code permet d'arrter la procdure du programme.

Ajout des touches de raccourcis :


Pour chaque bouton, ajouter un "&" pour que la premire lettre devienne un raccourci ;
Exemple : pour le bouton Quitter

Ce qui donne

Ainsi en mode execution, il suffit dutiliser la combinaison detouches ALT+Q pour teminer
lapplication.

11/74

6. Notions de base (La Zone de Texte (TextBox))


Contrairement un Label, les "TextBox" servent gnralement saisir une information.

La proprit essentielle d'une Zone de Texte est Text. Cest la proprit qui dsigne son contenu.

Il faut savoir que toute information contenue dans une zone de texte est
obligatoirement de type texte ! Donc, lemploi de fonctions de conversion savrera
indispensable pour travailler avec des nombres.

12/74

Apprentissage par lexemple :


1. Crez linterface suivante :

Label

Frame

3 OptionButton
CommandButton

Le but de cette application est de contrler laffichage dans Le Label en fonction du choix effectu :

Loption Word pour afficher Traitement de texte

Loption Access pour obtenir Systme Gestion bases de donne

Loption Excel pour obtenir Tableur

Dfinir les proprits :

Objets
Form1
Frame
Option1
Option2
Option3
Command1

Proprits

Valeur
de chaque proprit

Caption

Boutons d'options:

Caption

Logiciels

Font

Gras

Caption

Word

Name

optword

Caption

Excel

Name

Optexcel

Caption

Access

Name

Optaccess

Caption

&Quitter

Name

Cmdfin

Caption
Name
Label1

lblaffichage

Alignment

Center

Border Style

Fixed Single

Font

Gras, Taille 12

13/74

Ecrire le code pour optword :

Ecrire le code pour optexcel :

Ecrire le code pour optaccess :

14/74

2me exemple
On dsire offrir lutilisateur de faire un choix entre trois possibilits :
Loption Word pour afficher Traitement de texte
Loption Excel pour obtenir Tableur
Loption Access pour obtenir Systme Gestion bases de donne
galement, vous devez ajouter votre application un bouton Fin pour quitter.

Label1

Frame

Option1
Option2
Option3

Command1

2. Dfinir les objets :


Objets
Form1
Frame
Option1
Option2
Option3
Command1

Label1

Proprits

Valeurs
de chaqueproprit

Caption

Logiciels

Caption
Font
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Alignment
Border Style
Font

Logiciels
Gras
Word
optword
Excel
Optexcel
Access
Optaccess
Fin
Cmdfin
lblaffichage
Center
Fixed Single
Gras, Taille 12

3. Dfinir les vnements


Private Sub optword_Click()
lblaffichage.Caption = "Traitement de texte"
End Sub
Private Sub optexcel_Click()
lblaffichage.Caption = "Tableur"
End Sub
Private Sub optaccess_Click()
lblaffichage.Caption = "Systme Gestion bases de donnes"
End Sub
Private Sub cmdfin_Click()
End
End Sub

15/74

3me exemple
Crer un projet qui permet de calculer la conversion dune devise vers le dirham partir dun taux choisis par lutilisateur.

1. Dfinir les objets :


Proprits

Valeurs de chaque
proprit

Form1

Caption

Changement de devises

Label1

Caption

Bureau de change

Caption
Autosize
Caption
Autosize
Caption
Autosize
Caption
Name
Borderstyle
Font
Text
Name
Text
Name
Caption
Name
Caption
Name
Caption
Name

Montant Devises
True
Taux
True
Montant en DH
True

Objets

Label2
Label3
Label4
Label5
Text1
Text2
Command1
Command2
Command3

Lblaffichage
Fixedsingle
Gras, Taille : 12
Txtmontant
Txtaux
&Changer
cmdchanger
&Autre
cmdautres
&Fin
Cmdfin

NB :
La proprit Autosize permet dajuster le contrle son contenu ;
Les proprits Font et Forecolor permettent de changer lattribut de lobjet (la taille, la couleur)
Le caractre & permet daffecter une touche de raccourcis un Bouton de commande.
La proprit setfocus permet dinsrer automatiquement le curseur dans une zone de texte (voir la procdure cmdAutre).
Linstruction val permet de convertir une chane de caractre en nombre (voir la procdure cmdchanger)

2. Dfinir les vnements


16/74

Private Sub cmdchanger_Click()


lblaffichage.Caption = Val(txtmontant.Text) * Val(txtaux.Text)
End Sub
Private Sub cmdautre_Click()
lblaffichage.Caption = ""
txtmontant.Text = ""
txtaux.Text = ""
txtmontant.SetFocus
End Sub
Private Sub cmdfin_Click()
End
End Sub

17/74

4me exemple

Chaque option donne un


taux :
1 Euro =
1 $Can =
1 $Usa =
1
=

1re mthode
Private Sub cmdchanger_Click()
lblmontant.Caption = lbltaux.Caption * Val(txtmontant.Text)
End Sub
Private Sub optcan_Click()
lbltaux.Caption = 7.18
End Sub
Private Sub optfb_Click()
lbltaux.Caption = 0.268
End Sub
Private Sub optfr_Click()
lbltaux.Caption = 1.56
End Sub
Private Sub optusa_Click()
lbltaux.Caption = 10.89
End Sub

NB : Utiliser le point comme sparateur dcimal dans le code.


2me mthode
Dim taux as integer
Private Sub cmdchanger_Click()
lblmontant.Caption = Val(txtmontant.Text) * taux
End Sub
Private Sub optcan_Click()
lbltaux.Caption = 7.18
taux = 7.18
End Sub
Private Sub optfb_Click()
lbltaux.Caption = 0.268
taux = 0.268
End Sub
Private Sub optfr_Click()
lbltaux.Caption = 1.56
taux = 1.56
End Sub
Private Sub optusa_Click()
lbltaux.Caption = 10.89
taux = 10.89
End Sub
Cette mthode vous oblige dclarer la variable taux comme variable gnral (Voir Page N..)

18/74

Test entre 2 valeurs

Private Sub cmdivis_Click()


If Val(Text4.Text) = 0 Then
MsgBox "Division impossible par Zro"
Text4.SelStart = 0
Text4.SelLength = Len(Text4.Text)
Else
lblresultat.Caption = Val(Text3.Text) / Val(Text4.Text)
lblresultat.Caption = Format(lblresultat.Caption, "00.00")
End If
End Sub
Private Sub cmdmoins_Click()
lblresultat.Caption = Val(Text3.Text) - Val(Text4.Text)
End Sub
Private Sub cmdmult_Click()
lblresultat.Caption = Val(Text3.Text) * Val(Text4.Text)
End Sub
Private Sub CMDPLUS_Click()
lblresultat.Caption = Val(Text3.Text) + Val(Text4.Text)
End Sub
Private Sub Command1_Click()
If Val(Text1.Text) > Val(Text2.Text) Then
lblres.Caption = "A>B"
ElseIf Val(Text1.Text) = Val(Text2.Text) Then
lblres.Caption = "A=B"
Else
lblres.Caption = "A<B"
End If
End Sub

19/74

Application N4

Private Sub chkgras_Click()


If (chkgras.Value = vbChecked) Then
Text1.Font.Bold = True
Else
Text1.Font.Bold = False
End If
End Sub
Private Sub chkitalique_Click()
If (chkitalique.Value = vbChecked) Then
Text1.Font.Italic = True
Else
Text1.Font.Italic = False
End If
End Sub
Private Sub chksou_Click()
If (chksou.Value = vbChecked) Then
Text1.Font.Underline = True
Else
Text1.Font.Underline = False
End If
End Sub

Private Sub opt12_Click()


Text1.FontSize = 12
End Sub
Private Sub opt20_Click()
Text1.FontSize = 20
End Sub
Private Sub opt40_Click()
Text1.FontSize = 40
End Sub

20/74

Private Sub optblue_Click()


Text1.ForeColor = vbBlue
End Sub
Private Sub optnoir_Click()
Text1.ForeColor = vbBlack
End Sub
Private Sub optrouge_Click()
Text1.ForeColor = vbRed
End Sub

21/74

Gestion de mot de passe


TextBox

CommnadButton

B Modifiez

licne de lapplication :

Des icnes supplmentaires sont installs avec Visual Basic


dans le dossier : C:\Program Files\Microsoft Visual
Studio\COMMON\Graphics\Icons.

C Dsactivez

laffichage des boutons

Ajoutez une deuxime feuille votre projet :


22/74

Normalement, dans, lExplorateur de Projets (Ctrl + r) vous devez avoir un seul projet contenant deux
feuilles :

E Ajoutez

les proprits suivantes :


Objets
Command1

Text1

Proprit

Valeur

Name

cmdvalid

Caption

Valider

Name

txtpassword

Text

Cette proprit doit rester vide

PasswordChar

Maxlenght

10

NB :

La proprit PasswordChar permet de masquer les caractres taps par lutilisateur par celui dfini
(Dans notre cas la zone de texte naffichera que des toiles).
La proprit Maxlenght impose une langueur maximale pour les caractres saisis.

F: Construisez

le code de votre application

23/74

Private Sub cmdValid_Click()


If txtpassword.Text = "" Then
MsgBox "Veuillez saisir un mot de passe", vbOKOnly, "Ressayer"
ElseIf UCase(txtpassword.Text) = "BEST" Then
Form2.Show
Unload Form1
ElseIf MsgBox("Mot de passe Incorrect", vbRetryCancel + vbCritical, "Accs refus") = vbRetry Then
txtpassword.SetFocus
txtpassword.SelStart = 0
txtpassword.SelLength = Len(txtpassword.Text)
Else
End
End If
End Sub

La proprit UCase permet de convertir toutes les lettres minuscules en majuscules.

Application N8 : Les variables


Ralisez le code de la facture suivante :

Rgles commerciales :
Le montant Hors taxe = quantit * Prix
Le montant de la remise = Le montant Hors taxe * Taux de remise
Le net commercial = Le montant Hors taxe - Le montant de la remise
Le montant TVA = Le net commercial * taux TVA
Le montant TTC = Le net commercial + Le montant TVA
Dim remise, tva
Private Sub calculer_Click()
labmtht = txtQ * txtprixuni
labmtremise = labmtht * remise
labnetcom = labmtht - labmtremise
labmttva = labnetcom * tva
labmtttc = labnetcom + labmttva
End Sub
Private Sub tauxR0_Click()
remise = 0
End Sub
Private Sub tauxR10_Click()
remise = 0.1
End Sub

----------------------Private Sub tauxR5_Click()


remise = 0.05
End Sub
Private Sub tauxtva14_Click()
tva = 0.14
End Sub
Private Sub tauxtva20_Click()
tva = 0.2
End Sub
Private Sub tauxtva7_Click()
tva = 0.07
End Sub

25

5me exemple (Les ListBox)


Etablir un programme qui permet de contrler l'ajout vers une zone de Liste

(Zone de texte) txtprd


cmdajouter

cmdrechercher
(listBox)lstprd
Timer1

cmdsupprimer
cmdeffacer
cmdquitter

(Label)lbltotal
Private Sub cmdajout_Click()
Dim i, nbv As Integer
nbv = lstprd.ListCount
If nbv > 0 Then
For i = 0 To nbv - 1
lstprd.Selected(i) = True
If UCase(lstprd.Text) = UCase(txtprd.Text) Then
MsgBox "Produits existe dja !!!", 48, "attention"
txtprd.Text = ""
txtprd.SetFocus
Exit Sub
End If
Next
End If
lstprd.AddItem Trim(txtprd.Text)
txtprd.Text = ""
txtprd.SetFocus
End Sub
Private Sub cmdeffacer_Click()
If MsgBox("Etes vous sur de vouloir tout Effacer ", vbYesNo,"Confirmer")= _
vbYes Then
lstprd.Clear
End If
txtprd.SetFocus
End Sub
Private Sub cmdsupprimer_Click()
If lstprd.ListCount = 0 Then
MsgBox "la list est vide", vbOKOnly, "Supprimer"
ElseIf lstprd.ListIndex = -1 Then
MsgBox "vous devez selectionner un element de la liste"
Else
lstprd.RemoveItem lstprd.ListIndex
End If
End Sub

Page 26 / 74

Private Sub cmdfin_Click()


If MsgBox("Etes vous sur de vouloir fermer", vbYesNo, "Quitter")= vbYes Then
End
End If
End Sub
Private Sub Timer1_Timer()
lbltotal.Caption = lstprd.ListCount
End Sub
Private Sub txtprd_Change()
If Len(Trim(txtprd.Text)) = 0 Then
cmdajout.Enabled = False
Else
cmdajout.Enabled = True
End If
End Sub
Private Sub cmdrechercher_Click()
Dim produit As String
Dim i, nbprd As Integer
produit = InputBox("Entrez le nom du produit", "Rechercher")
nbprd = lstprd.ListCount
For i = 0 To nbprd - 1
lstprd.Selected(i) = True
If UCase(lstprd.Text) = UCase(produit) Then
MsgBox "Le produit a t trouv", 64, "Fin de la recherche"
Exit Sub
End If
Next
MsgBox "Produit non trouv", 64, "Fin de la recherche"
End Sub

Page 27 / 74

6me exemple (Application mot de passe)

Private Sub cmdValid_Click()


If txtpassword.Text = "" Then
MsgBox "Veuillez saisir un mot de passe", vbOKOnly, "Ressayer"
ElseIf UCase(txtpassword.Text) = "BEST" Then
Form2.Show
Unload Form1
ElseIf MsgBox("Mot de passe Incorrect", vbRetryCancel + vbCritical, "Accs
refus") = vbRetry Then
txtpassword.SelStart = 0
txtpassword.SelLength = Len(txtpassword.Text)
Else
End
End If
End Sub
Private Sub Form_Activate()
txtpassword.SetFocus
End Sub

2me mthode (Limiter le nombre d'essai a 3)


Dim i
Private Sub Command1_Click()
Do While i < 3
If txtpassword.Text <> "123" Then
i = i + 1
txtpassword.SetFocus
txtpassword.Text = ""
MsgBox "essai N " & i
Exit Sub
Else
MDIForm1.Show
pass.Hide
Exit Sub
End If
Loop
MsgBox "Dernier essai ........!!!,"
MsgBox "Au revoir"
End
End Sub

Page 28 / 74

Les fonctions

Private Sub cmdresultat_Click()


If optoperation(0).Value Then
lblresultat.Caption = Val(txtop1) + Val(txtop2)
ElseIf optoperation(1).Value Then
lblresultat.Caption = Val(txtop1) - Val(txtop2)
ElseIf optoperation(2).Value Then
lblresultat.Caption = txtop1 * txtop2
ElseIf txtop2.Text = 0 Then
MsgBox "Division par 0 impossible", 16, "Erreur"
lblresultat.Caption = ""
Else
lblresultat.Caption = txtop1.Text / txtop2.Text
End If
End Sub
Private Function Controle_saisie(KeyAscii As Integer) As Integer
If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 And KeyAscii <> 46 Then
Controle_saisie = 0
Else
Controle_saisie = KeyAscii
End If
End Function
Private Sub txtop1_KeyPress(KeyAscii As Integer)
KeyAscii = Controle_saisie(KeyAscii)
End Sub
Private Sub txtop2_KeyPress(KeyAscii As Integer)
KeyAscii = Controle_saisie(KeyAscii)
End Sub
Page 29 / 74

7me exemple (Gestion des polices)

lstpolice
lststyle
lstaille
chksou
chkbarr

txtph

optgauche

Private Sub chkbarr_Click()


If txtph.Font.Strikethrough = True Then
txtph.Font.Strikethrough = False
Else
txtph.Font.Strikethrough = True
End If
End Sub
Private Sub chksou_Click()
If txtph.Font.Underline = True Then
txtph.Font.Underline = False
Else
txtph.Font.Underline = True
End If
End Sub
Private Sub cmdclose_Click()
Unload Me
End
End Sub
Private Sub Form_Load()
Dim i, j
For i = 0 To Screen.FontCount - 1
lstpolice.AddItem Screen.Fonts(i)
Next
For j = 8 To 100
lstaille.AddItem j
Next
End Sub
Private Sub lstaille_Click()
txtph.Font.Size = Val(lstaille.Text)
txtaille.Text = lstaille.Text
End Sub
Private Sub lstpolice_Click()
txtpolice.Text = lstpolice.Text
txtph.Font.Name = lstpolice.Text
End Sub
Private Sub lststyle_Click()
Dim style
style = lststyle.ListIndex
Select Case style
Case 0
txtph.Font.Bold = False
Page 30 / 74

Listbox

txtaille
txtstyle
txtpolice

txtph.Font.Italic = False
Case 1
txtph.Font.Bold = True
txtph.Font.Italic = False
Case 2
txtph.Font.Bold = False
txtph.Font.Italic = True
Case Else
txtph.Font.Bold = True
txtph.Font.Italic = True
End Select
txtstyle.Text = lststyle.Text
End Sub
Private Sub optcenter_Click()
txtph.Alignment = vbCenter
End Sub
Private Sub optdroite_Click()
txtph.Alignment = vbRightJustify
End Sub
Private Sub optgauche_Click()
txtph.Alignment = vbLeftJustify
End Sub

NB:
Affectez la zone de texte txtph les proprites suivantes :
Multuline =True
Scrollbars = 2-Verticall

Page 31 / 74

Facture pour comptabiliser

TextBox(HT)

ListBox(TTC)

CommandButton(ajouter)

Private Sub ajouter_Click()


If ht.Text = "" Then
MsgBox ("Attention, vous devrez insrer un prix")
Else
initialiser.Enabled = True 'activer le bouton Initialiser
If tva0.Value = True Then
detail.Enabled = True
TTC.AddItem (Str(Val(ht.Text)))
ElseIf tva7.Value = True Then
detail.Enabled = True
TTC.AddItem (Str(Val(ht.Text) * 1.07))
ElseIf tva20.Value = True Then
detail.Enabled = True
TTC.AddItem (Str(Val(ht.Text) * 1.2))
ElseIf tva14.Value = True Then
detail.Enabled = True
TTC.AddItem (Str(Val(ht.Text) * 1.14))
Else 'si aucun bouton n'est activ
MsgBox ("Attention, vous devez choisir le taux de TVA")
End If
ht.Text = ""
ht.SetFocus
End If
End Sub
Private Sub detail_Click()
Dim i As Integer
Dim sum As Single
Dim moyenne
sum = 0
For i = 0 To TTC.ListCount - 1 'parcourir les lments de la liste
Page 32 / 74

sum = sum + Val(TTC.List(i))


Next i
moyenne = sum / TTC.ListCount
MsgBox ("Le nombre d'articles est " & TTC.ListCount & "; la montant total payer est " & sum)
sauvegarder.Enabled = True
End Sub
Private Sub ht_Change()
ajouter.Enabled = True
End Sub
Private Sub initialiser_Click()
TTC.Clear
detail.Enabled = False
sauvegarder.Enabled = False
End Sub
Private Sub quitter_Click()
End
End Sub
Private Sub sauvegarder_Click()
Dim i As Integer
Open "c:\facture" For Output As #1
For i = 0 To TTC.ListCount - 1
Print #1, TTC.List(i)
Next i
Close
End Sub

Page 33 / 74

Contrler la saisie dans une zone de texte


1.
Private Sub Text1_LostFocus()
If IsNumeric(Text1.Text) = False Then
MsgBox "Erreur de saisie" & vbLf & "Seulement numrique"
Text1.SetFocus
Text1.Text = ""
End If
End Sub
NB :
VbLf Ou Chr (10) : Caractre de saut de ligne

2.
Private Sub Text1_LostFocus()
If IsDate(Text1.Text) = False Then
MsgBox "Erreur de saisie" & vbLf & "Seulement Date"
Text1.SetFocus
Text1.Text = ""
End If
End Sub
NB :
La fonction IsDate renvoie la valeur True si l'expression est une date ou peut tre reconnue en tant que date ; sinon elle
renvoie la valeur False.

3.
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 8) Then
KeyAscii = 0
End If
End Sub
NB :
Chaque caractre est associ un code compris entre 0 et 255 (on appelle code ascii)

Exercice :
Ecrire un programme qui permet de limiter la saisie dans une zone de texte aux touches alphabtiques.

Excuter une application Windows a partir du VB


Utiliser la fonction Shell
Exemple :
Shell "c:\Program files\Microsoft office\office\winword.exe", vbNormalFocus

Exercice :
Ecrire un programme qui permet douvrir les programmes suivants :

Paint

Calculatrice

Le Bloc note

Les jeux de Windows

Page 34 / 74

Se dplacer avec les touches de direction

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)


If KeyCode = vbKeyDown Then
Text2.SetFocus
End If
End Sub
Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp Then
Text1.SetFocus
ElseIf KeyCode = vbKeyDown Then
Text3.SetFocus
End If
End Sub
Private Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp Then
Text2.SetFocus
End If
End Sub

Page 35 / 74

Utilisation de la fonction Format

Private Sub Command1_Click()


Dim Today As Variant

Today = Now

lblDay.Caption = Format(Today, "dddd")

lblMonth.Caption = Format(Today, "mmmm")


lblYear.Caption = Format(Today, "yyyy")
lblnumber.Caption = Format(Today, "d")

lblTime.Caption = Format(Today, "h:mm:ss ampm")

End Sub

Page 36 / 74

Calcul Salaire hebdomadaire

Bon, on va
commencer
un exercice

Une entreprise qui emploi des salaris lheure, les paie chaque semaine suivant un taux horaire
auquel on applique un coefficient K donne par :
39 premires heures

K= 1

de la 40me la 44 heure

K= 1,2

De la 45me la 49 heure

K= 1,5

Aprs la 49me heure

K= 1,8

Travail faire :
Dterminer partir dun volume horaire, le salaire de la semaine.

Page 37 / 74

Utilisation de lvnement MouseDown


Exemple 1 :
Ce programme illustre la faon de concevoir des programmes
permettant lutilisateur de dplacer des objets dans la fentre du
programme laide de la souris.

Page 38 / 74

Exemple 2 :
Ce programme utilise lvnement MouseDown .

La procdure Form_MouseDown est excute ds


que pressez le bouton de la souris, avant mme que
vous ne le relchiez.

Page 39 / 74

CUMUL de Chiffres 1 + 2 + 3 + ...n

Etape 1

Page 40 / 74

ScrollBar :

Partie influence par VSBxyz_CHANGE


Partie influence par VSBxyz_SCROLL

Page 41 / 74

Gestion Htel

Dim prix As Integer


Private Sub cmdcalculer_Click()

Dim nbj, divers, a, de, mtdu


a = CDate(txta.Text)

de = CDate(txtde.Text)
nbj = a - de

divers = Val(txtdivers.Text)
mtdu = (nbj * prix) + divers
lblnbj.Caption = nbj

lblmtdu.Caption = mtdu

End Sub

Private Sub Form_Load()

lbldate.Caption = "Facture du: " & Date

End Sub

Private Sub optdouble_Click()


prix = 220

End Sub

Private Sub optdup_Click()


prix = 350

End Sub

Private Sub optsimple_Click()


Page 42 / 74

prix = 180

End Sub

Private Sub txta_LostFocus()

If Not IsDate(txta.Text) Then


txta.Text = ""
txta.SetFocus

Else

If CDate(txta.Text) < CDate(txtde.Text) Then

MsgBox "La date saisie est inferieur la date d'entre", vbExclamation, "Date incorrect"
txta.Text = ""
txta.SetFocus
End If

End If

End Sub

Private Sub txtde_GotFocus()


Dim debut

debut = InputBox("Entrez la date debut", "Saisie des donnes")


txtde.Text = debut
End Sub

Private Sub txtde_LostFocus()

If Not IsDate(txtde.Text) Then


txtde.Text = ""
txtde.SetFocus

End Sub

End If

Private Sub txtdivers_KeyPress(KeyAscii As Integer)


If Not IsNumeric(KeyPress) Then
txtdivers.Text = ""
txtdivers.SetFocus
End If

End Sub

Page 43 / 74

Utiliser le contrle MaskedEdit

On va changer la
zone de texte par
un nouveau
composant
MaskedEdit

Pour linsrer

Page 44 / 74

Le contrle d'dition Masked (MaskedEdit) permet d'inviter les utilisateurs entrer des
donnes l'aide d'un modle de masque.
Vous pouvez galement l'utiliser pour demander l'entre de dates, de devises et d'heure,
ou pour convertir des donnes entres en majuscules ou minuscules.

Page 45 / 74

9me exemple en VB(Le visionneur dimage)

lblimage
Shape1

dirimage

imgimage
Line1

filimage

cmdend

drvimage

cmdshow
Private Sub drvImage_Change()
On Error GoTo testerr
dirimage.Path = drvimage.Drive
Exit Sub
testerr:
MsgBox "Le lecteur n'est pas prt"
drvimage.Drive = "c:"
Resume Next
End Sub
Private Sub dirImage_Change()
filImage.Path = dirimage.Path
End Sub
Private Sub cmdShow_Click()
Dim ImageName As String
If Right(filImage.Path, 1) = "\" Then
ImageName = filImage.Path + filImage.FileName
Else
ImageName = filImage.Path + "\" + filImage.FileName
End If
lblimage.Caption = ImageName
imgimage.Picture = LoadPicture(ImageName)
End Sub
Private Sub filImage_DblClick()
Call cmdShow_Click
End Sub

Shape1:
BackColor
BackStyle
FillColor
FillStyle
Shape
File1:
Name
Pattern
Line1:
BorderWidth

:Cyan
:1-Opaque
:Blue
:4-Upward Diagonal
:4-Rounded Rectangle
:filImage
:*.bmp;*.ico;*.wmf;*gif;*jpg (Sans espaces)
3

Page 46 / 74

Exemple N12 (CommonDialog; ScrollBar)

VScrollBar

Option Explicit
Dim Mois(12) As String
Dim filiere As String
Private Sub cmdinfo_Click()
Dim Msg As String, Age As Integer, prenom As String
Dim M As Integer, D As Integer, Y As Integer
M = Val(Format(Now, "mm"))
D = Val(Format(Now, "dd"))
Y = Val(Format(Now, "yyyy"))
Age = Y - vsbyear
If vsbmois.Value > M Or (vsbmois.Value = M And vsbjour > D) Then Age = Age - 1
'tester si la date est valide
If Age < 0 Then
MsgBox "La Date de naissance doit tre avant la date actuelle .", vbOKOnly +
vbCritical, "Invalide Date"
Exit Sub
End If
'tester si le nom a t rempli
If txtname.Text = "" Then
MsgBox "Vous devez saisir un nom.", vbOKOnly + vbCritical, "Entrez un nom"
Exit Sub
End If
Msg = txtname.Text + " poursuit ses tudes dans la filire " + filiere + vbLf
If optsex(0).Value = True Then prenom = "Il " Else prenom = "Elle "
Msg = Msg + prenom + " a" + Str(Age) + " ans." + vbLf
MsgBox Msg, vbOKOnly, "Profile Etudiant"
End Sub
Private
Mois(1)
Mois(2)
Mois(3)
Mois(4)
Mois(5)
Mois(6)

Sub Form_Load()
= "Janvier"
= "Fvrier"
= "Mars"
= "Avril"
= "Mai"
= "Juin"
Page 47 / 74

Mois(7) = "Juillet"
Mois(8) = "Aot"
Mois(9) = "Septembre"
Mois(10) = "Octobre"
Mois(11) = "Novembre"
Mois(12) = "Decembre"
lbljour.Caption = Str(vsbjour.Value)
lblmois.Caption = Mois(vsbmois.Value)
lblyear.Caption = Str(vsbyear.Value)
End Sub

Private Sub optfil_Click(Index As Integer)


Select Case Index
Case 0
filiere = "Technicien Specialis"
Case 1
filiere = "Secretaire de Direction"
Case 2
filiere = "Devellopement"
Case 3
filiere = "Rseaux"
End Select
End Sub
Dfinissez les proprits suivantes pour les diffrentes barres de dfilement:
VScrollBar vsbYear:
Max = 1900
Min = 2100
Value = 1960

VScrollBar vsbjour:
Max = 1
Min = 31
Value = 1

VScrollBar vsbMois:
Max = 1
Min = 12
Value = 1

Private Sub vsbjour_Change()


lbljour.Caption = Str(vsbjour.Value)
End Sub
Private Sub vsbmois_Change()
lblmois.Caption = Mois(vsbmois.Value)
End Sub
Private Sub vsbYear_Change()
lblyear.Caption = Str(vsbyear.Value)
End Sub

Private Sub cmdnouveau_Click()


txtname.Text = ""
imgeleve.Picture = LoadPicture("")
End Sub
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 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.
CommonDialog cdlBox:
Filter = Bitmap(*.bmp)|*.bmp|Images Gif(*.gif)|*.gif|Images Jpeg(*.jpg)|*.jpg
Private Sub cmdcharger_Click()
cdlbox.ShowOpen
imgeleve.Picture = LoadPicture(cdlbox.FileName)
End Sub

Private Sub cmdend_Click()


End
End Sub
Page 48 / 74

Cours 9 : Accs aux fichiers


Il existe trois modes 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.

Multiline True

Private Sub ouvrir_Click()


On Error Resume Next
Open "C:\note.TXT" For Input As #1
retour = Chr$(13) + Chr$(10)
Line Input #1, texte
tout = texte
If Len(tout) <> 0 Then
While Not EOF(1)
Line Input #1, texte
tout = tout + retour + texte
Wend
End If
Text1.text=tout
Close #1
End Sub
Explication :
Page 49 / 74

L'instruction On error Resume Next permet d'ignorer toute erreur que peut entraner cette
procdure.
L'instruction Open "C:\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 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.
L'instruction Line Input permet de placer dans la variable "texte" le contenu de la premire ligne
du fichier "note.TXT".
Ensuite, le contenu de la variable "texte" est son tour, affect la variable "tout".
Le test avec l'instruction If permet de vrifier que le fichier "note.TXT" n'est pas vide l'aide de
la fonction Len qui compte le nombre de lettres ou tout autre symbole contenu dans la variable
"tout". Si le nombre de lettres est diffrent de zro alors, les instructions l'intrieur du test
sont excuts.
La boucle avec While permet de parcourir tout le fichier la recherche d'ventuelles autres
lignes que la premire. La fonction EOF permet de savoir si l'on arrive la fin du fichier ouvert.
Cette boucle est donc excute jusqu' ce que tout le contenu du fichier soit plac dans la
variable tout. Les chanes de caractres affectes la variable "tout" sont concatnes
(concatnes = ajoutes) aux prcdentes contenues dans la variable. La variable "retour"
provoque un retour la ligne chaque fois que cela est ncessaire.
Lorsque tout le contenu du fichier sera affect la variable "tout", cette dernire sera son tour
affecte la proprit Text du contrle TextBox. Ce qui provoquera l'affichage du contenu du
fichier dans le contrle TextBox.
L'instruction Close ferme le fichier ouvert en lecture.

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


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

L'instruction Open "C:\Windows\Bureau\note.TXT" For Output As #1 ouvre le fichier "note.TXT"


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

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


Private Sub Effacer_Click()
Text1.Text = ""
Text1.SetFocus
End Sub

Page 50 / 74

24 .Utiliser le contrle DATA


Le programme DATA permet votre programme davoir accs des bases de donnes externes, de
type Microsoft Access, bBase, FoxPro

Etape 1
Dans Access, crer la base de donnes suivante : essai.mdb qui contient la table Clients :

Etape 2
Convertir cette BDD vers le format Access 97 : cette tape est ncessaire
Choisissez Le menu
Outils
Utilitaire de base de donnes
Convertir une base de donnes
Vers le format de fichiers Access 97
Sauvegarder la BDD sous le nom : essai97

Etape 3
Dans Visual Basic, Insrez le contrle DATA :

Page 51 / 74

Construisez linterface suivante :

Etape 4
Spcifiez la proprit Connect vers
Access

Choisissez ensuite pour la proprit


DatabaseName la BDD crer en haut :
essai97

Pour la proprit RecordSource,


Choisissez la table Clients

Etape 5
On va maintenant afficher les donnes de la table Clients dans les zones de texte dj cre :

Page 52 / 74

Pour chaque zone de texte vous devez spcifier ces deux proprits :

DataField permet de choisir quel champ de la table clients sera affich dans chaque zone de texte.

Etape 6
Excutez votre application :

Aller vers le dernier

Aller vers le premier

Aller vers le prcdent

Aller vers le suivant

Etape 7
Le contrle Microsoft FlexGrid (MSFlexGrid) affiche et opre sur des donnes places dans des
tableaux.

Lorsque ce contrle est li un contrle Data, il affiche les donnes en lecture seule.
Si le texte plac dans une cellule est trop long pour y tre affich entirement et que la proprit
WordWrap est dfinie sur True, le texte passe la ligne suivante dans la mme cellule.

Page 53 / 74

Dans la boite outils vous verrez le composant suivant :

Insrez le contrle MSFlexGrid


dans la feuille et ajustez sa
proprit :

A lexcution vous obtiendrez ceci :

Page 54 / 74

Page 55 / 74

Cration de contrles ActiveX


La premire chose qui nous faut raliser c'est donc de crer le projet qui va contenir notre (ou nos)
contrle(s). Par dfaut, quand vous lancez Visual Basic, une bote de dialogue apparat et vous propose
plusieurs modles de projets. Si ce n'est pas le cas, cliquez dans le menu "Fichier" sur "Nouveau
Projet". La capture d'cran suivante montre cette bote de dialogue.

Le modle de projet qui nous intresse est donc le projet de contrle ActiveX. Cliquez sur ouvrir aprs
l'avoir choisit. Dans une certaine mesure, ce type de projet ressemble un projet de type "Exe
Standard". En effet, vous allez pouvoir diter votre contrle via deux outils : le concepteur visuel et
l'diteur de code. Mais une diffrence apparat malgr tout : dans le concepteur graphique, votre
contrle n'a pas de dtourage autour de sa zone visuel comme l'aurait une feuille. Cela est normal :
l'objectif du contrle c'est d'tre utilis sur une feuille.
Vous pouvez ensuite remplir l'espace de votre contrle avec des sous-contrles. La partie visuelle de
notre contrle va contenir : un contrle de type Frame , et Label (plac dans le Frame) pour afficher
l'heure et un contrle Timer pour actualiser rgulirement l'heure dans le Label. Nommez
respectivement vos contrles fraClock, lblClock et tmrClock. Affectez aussi la proprit Interval du
Timer la valeur 1000 (l'unit tant la milli-seconde, nous avons donc 1 seconde d'intervalle). Au final,
votre contrle (en mode conception) devrait ressembler la capture d'cran suivante.

Page 56 / 74

Une chose importante est ne pas oublier : il faut renommer le projet et le contrle
Le nom du projet est "Infini" et l'unique contrle de ce projet est nomm "Clock".
Changer la proprit ToolboxBitmap : elle permettra d'afficher l'icne souhaite lorsque votre
contrle devra tre insrer dans la bote outils.

Option Explicit
'-Mise jour du label d'affichage de l'heure----------------------Private Sub tmrSeconds_Timer()
lblClock.Caption = Time
End Sub
'-Code de retaillage de l'horloge----------------------------------Private Sub UserControl_Resize()
fraClock.Width = UserControl.Width
fraClock.Height = UserControl.Height
lblClock.Width = UserControl.Width
lblClock.Top = (UserControl.Height - lblClock.Height) / 2 + 100
End Sub
'-Initialisation de la valeur du label au premier affichage--------Private Sub UserControl_Show()
tmrSeconds_Timer

End Sub

Ajout du projet de test


Nous allons maintenant ajouter un projet secondaire. En effet, Visual Basic gre la notion de groupe de
projet. Pour ce faire, allez dans le menu "Fichier" et cliquez sur "Ajouter un projet". Le type de projet
ajouter est "Exe standard". La capture d'cran suivante montre l'explorateur de projets aprs l'ajout.
Notez aussi que, comme les deux projets font parties du mme groupe de projet, l'icne du contrle
ActiveX apparat lorsque que vous ditez la feuille du projet de test.

A partir de maintenant, vous pouvez poser vos contrles sur la feuille de test

Page 57 / 74

Pour l'heure, votre contrle ActiveX n'existe pas rellement. Certes, il apparat dans la bote
outils, mais cela est fait par ce les deux projets sont intgrs dans le mme groupe de projets.
Pour pouvoir utiliser votre contrle dans un autre projet, sans forcment disposer du code source,
il vous faut compiler votre code pour gnrer le fichier ".ocx". Ensuite, il vous faut enregistrer
votre (ou vos) composant(s) dans la base de registre Windows.

Tant que vous tes sur le poste de dveloppement les choses sont plus simples qu'il n'y parait : en effet,
le fait de compiler le projet via l'environnement Visual Basic, enregistrement automatiquement le
contrle dans la base. Si par contre, vous tes sur une autre machine et que vous n'avez que le fichier
".ocx" votre disposition il va falloir raliser l'enregistrement la main, via l'outil "regsvr32.exe". Pour
ce faire, prenez une console, placez-vous dans le rpertoire contenant votre fichier ".ocx" et tapez la
command "regsvr32 file.ocx" (ou file.ocx reprsente le nom de votre fichier).
L'outil d'empaquetage et de dploiement fournit avec Visual Basic permet de grer un programme
d'installation, qui saura installer les contrles automatiquement sur le poste client. Il ne sera donc plus
utile de lancer la commande "regsvr32.exe" manuellement.

Page 58 / 74

Utliser le contrle Data

Private Sub cmdAdd_Click()


Data1.Recordset.AddNew
End Sub
Private Sub cmdUpdate_Click()
Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.LastModified
End Sub
Private Sub cmdClose_Click()
Unload Me
End
End Sub
Private Sub cmdDelete_Click()
Dim rep
rep = MsgBox("Suppresion", vbYesNo, "Attention")
If rep = vbYes Then
Data1.Recordset.Delete
precedent
End If
End Sub
Private Sub cmdfind_Click()
Dim rep
rep = InputBox("Entrer le Code Client recherch")
If rep = "" Then Exit Sub
Data1.Recordset.MoveFirst
Data1.Recordset.FindFirst "[code client]=" & "'" & rep & "'"
If Data1.Recordset.NoMatch = True Then
MsgBox "Le code client " & rep & "n'a pas t trouv"
End If
End Sub
Private Sub cmdfirst_Click()

Page 59 / 74

Data1.Recordset.MoveFirst
End Sub
Private Sub cmdlast_Click()
Data1.Recordset.MoveLast
End Sub
Private Sub cmdnext_Click()
Data1.Recordset.MoveNext
If Data1.Recordset.EOF = True Then
Data1.Recordset.MoveLast
End If
End Sub
Private Sub cmdprevious_Click()
precedent
End Sub
Private Sub Data1_Reposition()
Data1.Caption = "Enregistrement N " & Data1.Recordset.AbsolutePosition + 1 & " sur " &
Data1.Recordset.RecordCount
End Sub
Public Sub precedent()
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF = True Then
Data1.Recordset.MoveFirst
End If
End Sub
Private Sub Form_Activate()
Data1.Recordset.MoveLast
Data1.Recordset.MoveFirst
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim rep
rep = MsgBox("Ets vous sur de bien vouloir quitter...!!!", vbYesNo, "Quitter")
If rep = vbYes Then
Cancel = False
Else
Cancel = True
End If
End Sub

Page 60 / 74

Accder une BDD Access en utilisant DataEnvironnement


Etape 1 : Crer la table CDs dans la BDD CDCollection.mdb :

Cette BDD ainsi que le projet Visual Basic doivent tre


sauvegard dans le mme rpertoire.
Etapes 2 : Passer Visual Basic et ralisez linterface suivante :

Le contrle
DataGrid

Le contrle DataGrid napparat pas par dfaut dans la boite Outils et il faudra linsrer
manuellement :
Page 61 / 74

1. Affichez la boite outils Composant :

B
2. Cochez loption ci-dessous:

Etape 3 : Paramtrez les diffrentes proprits des contrles que contient votre feuille.

Page 62 / 74

Contrles

Names

DataGrid

DataGrid1
cmdAjouter
cmdsupprimer
txtArtist
txtAlbum
txtTrack

Etape 4 : Ajouter DataEnvironnement :

Le paramtrage de DataEnvironnement seffectue en suivant les tapes suivantes :


Paramtrer la connexion la BDD CDCollection.mdb :

Page 63 / 74

Page 64 / 74

Page 65 / 74

Page 66 / 74

Slectionnez DataGrid1 (Dans Form1) et Attribuez le les proprits suivantes :

Page 67 / 74

Remarquez le tri
.

Page 68 / 74

Page 69 / 74

Crer un Data Report

Insrer le contrle Data Report

Ltat suivant apparatra :

Dfinir les proprits de cet tat :


Page 70 / 74

DataSource : Correspond loutils choisi pour


se connecter votre BDD.
DataMember : Correspond la table dfinit
dans dataenvironnement.

Glissez les champs que vous voulez afficher vers la section dtails :
Page 71 / 74

Ensuite vous devez :

Page 72 / 74

Ce contrle ressemble au contrle Label.


Insrez le et modifiez ses proprits
Caption & fonts.
Idem que pour le prcdent

Insrez ce contrle et modifiez sa proprit :


Picture

Caption : Page %p sur %P

DataMember : Produits
DataField : Prix unitaire

Il ne vous reste plus que crer un bouton de commande sur une feuille(Form) et dy ajouter le code
suivant :

Le rsultat final :

En bas de chaque page :

En bas de lEtat :

Page 74 / 74

Vous aimerez peut-être aussi