Académique Documents
Professionnel Documents
Culture Documents
VB Maitrise PDF
VB Maitrise PDF
Plan du cours
I. Objectifs
II. Rappels de Visual Basic
III. Connexion VB-Access
IV. Connexion Excel-Access
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 1
Plan du cours
! I. Objectifs
II. Rappels de Visual Basic
III. Connexion VB-Access
IV. Connexion Excel-Access
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 2
Objectifs de lanne
Raliser un projet informatique en Visual
Basic avec accs une base de donnes Access
Organisation :
Par groupes de 2
5 sances de TD classiques
5 sances consacres uniquement au projet
valuation :
Dmo
Rapport crit
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 3
Rgles du jeu
Le projet doit porter sur un cas rel concernant
personnellement au moins un des tudiants
Choix de sujet motiv rendre le 20 octobre
Base de donnes :
5 tables minimum
1 relation 1-N et 1 relation M-N minimum
Suffisamment de donnes pour effectuer des tests
10 requtes minimum (au moins 3 jointures, 3 groupements,
2 restrictions multicritres, 2 requtes paramtres)
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 4
Rgles du jeu
Application Visual Basic : Interface qui doit
permettre de
Consulter
Traiter
Ajouter les donnes de la BD Access
Supprimer
Mettre jour
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 5
Rgles du jeu
Rapport crit :
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 6
Plan du cours
I. Objectifs
! II. Rappels de Visual Basic
III. Connexion VB-Access
IV. Connexion Excel-Access
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 7
Quest-ce quune application VB ?
Un ensemble de procdures (petits morceaux de
programme)
Une interface graphique compose de contrles
(zones de texte, boutons, listes, etc.)
Une procdure est excute lorsquun
vnement survient (ex. si lutilisateur clique sur
un bouton)
On parle de programmation visuelle et
vnementielle
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 8
1 octet
Dclaration de variable VB :
dim nom_var as type
Dclaration de constante VB :
const nom_const = valeur_const
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 10
Types de donnes
Entiers :
Byte (1 octet, [0, 255])
Integer (2 octets, [-32768, +32767])
Long (4 octets, [-2147483648, +2147483647])
Rels :
Single (4 octets, [-3,402.1038, + 3,402.1038])
Long (8 octets, [- 1,797.10308 , +1,797.10308])
Currency (8 octets, [-922337203685477,5808, +922337203685477,5807])
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 11
Types de donnes
Chane de caractres :
String (jusqu environ 2 milliards doctets/caractres)
Date : Date (8 octets, [01/01/100, 31/12/9999])
Boolen : Boolean (2 octets, True ou False)
Contrle : Object (4 octets, adresse mmoire du
contrle)
Variable : Variant (16+ octets)
Le type change selon le contexte ( utiliser avec
modration).
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 12
Types de donnes
Tableaux : Dim nom_tab(taille) as type
Type structur dfini par lutilisateur :
Type nom_type
champ1 as type
champ2 as type
End Type
Ex. Type structur Personne constitu de Nom
(chane), Prnom (chane), ge (octet)
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 13
Exemples de dclarations
Const PI=3.1416
Dim i as Integer
Dim ch1, ch2, ch3 as String
Dim tab_de_reels(100) as Single
Dim matrice(10,10) as Double
Type Personne
nom as String
prenom as String
age as Byte
End Type
Dim une_personne as Personne
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 14
Commentaire : '
Ex. ' Ceci est une ligne de commentaire
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 15
lments de base du langage
Conversions de type :
Fonction / Convertit une expression en
CByte / Byte CInt / Integer
CLng / Long CSng / Single
CDbl / Double CCur / Currency
CStr / String CDate / Date
CBool / Boolean CVar / Variant
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 16
Structures de contrle
Test : If condition then
' Instructions si condition vraie
Else
' Instructions si condition fausse
End If
Ex. Calcul du maximum entre deux nombres
If n1<n2 then
max = n2
Else
max = n1
End If
NB : La clause else est optionnelle dans le cas gnral.
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 19
Structures de contrle
Slection : Select case variable
Case valeur
' Instructions
Case Else
' Traitement par dfaut (optionnel)
End Select
Ex. Select case num_mois
Case 1
nom_mois = "janvier"
Case 3, 4, 5
saison = "printemps"
Case Else
message = "cas non prvu"
End Select
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 20
Structures de contrle
Test court : Iif condition, si_vrai, si_faux
Ex. Calcul du maximum entre deux nombres
Iif n1<n2, max = n2, max = n1
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 21
Structures de contrle
Boucle pour : For var=min to max step pas
' Instructions
Next var
Ex. Calcul de factorielle (10! = 1*2*3*4*5*6*7*8*9*10)
fact = 1
For i = 1 to 10 ' step optionnel si 1
fact = fact*i
Next i
Ex. Initialisation rebours dun tableau
For i = 100 to 1 step -1
tab_de_reels(i) = i*PI
Next i
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 22
Structures de contrle
Boucle pour chaque lment de tableau :
For each var in tableau
' Instructions
Next var
Ex. Dim nom_mois(12) as String
Dim mois as String
nom_mois(1) = "janvier"
Structures de contrle
Boucle rpter jusqu :
Do
' Instructions
Loop until condition
Ex. Arrt du calcul de factorielle
fact = 1
i = 1
Do
fact = fact*i
i = i+1
Loop until (i>10) or (fact>=100)
NB : Le test sur la condition tant plac en fin de boucle, les
instructions sont au moins excutes une fois.
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 25
Comment choisir la bonne boucle ?
Nombre Nombre
ditrations ditrations
connu inconnu
La boucle doit
DO LOOP
tre excute au FOR NEXT
UNTIL
moins une fois
La boucle peut
WHILE
ne pas tre
WEND
excute
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 26
Structures imbriques
Ex. 1 : Condition complexe pour calculer une remise
If bon_client then ' bon_client=true
If montant>1000 then
taux_remise = 0.1 ' 10 %
Else
taux_remise = 0.05 ' 5 %
End If
Else ' bon_client=false
If montant>2000 then
taux_remise = 0.05 ' 5 %
Else
taux_remise = 0.025 ' 2.5 %
End If
End If
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 27
Structures imbriques
Ex. 2 : Initialisation dune matrice
For i = 1 to 10
For j = 1 to 10
matrice(i,j) = i*j
Next j
Next i
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 28
Sous-programmes
Sous-programme : Programme autonome
ddi une tche prcise, de prfrence de taille
rduite. Un sous-programme peut recevoir des
paramtres.
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 29
Sous-programmes
Structure dune procdure :
Public|Private Sub nom_proc (paramtres)
' Dclarations
' Instructions
End Sub
Structure dune fonction :
Public|Private Function nom_fn ( ) as type
' Dclarations
' Instructions
nom_fn = val_retour
End Function
Private : Appel possible uniquement depuis la mme feuille ou
le mme module / Public : depuis toute lapplication
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 30
Sous-programmes
Dfinition des paramtres : spars par des
virgules, en spcifiant le type de chacun
Ex. poct as Byte, pch as String, preel as Single
Modes de passage :
Par valeur (ByVal) : Si le paramtre est une
variable existante, son contenu est recopi. Il ne sera
pas modifi en sortie de sous-programme.
Mode Par rfrence (ByRef) : Si le paramtre est une
par variable existante, son adresse est utilise. Il pourra
dfaut tre modifi en sortie de sous-programme.
Ex. ByVal poct as Byte, ByRef preel as Single
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 31
Sous-programmes
Exemple 1 : Calcul de maximum
Public Function Max(ByVal n1 as Single,
ByVal n2 as Single) as Single
If n1<n2 then
Max = n2 ' Valeur de retour : n2
Else
Max = n1 ' Valeur de retour : n1
End if
End Function
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 32
Sous-programmes
Exemple 2 : change de deux variables
Public Sub Swap(v1 as String, v2 as String)
' v1 et v2 sont passes par rfrence
Dim temp as String ' Variable temporaire
temp = v1
v1 = v2 temp 1
v2 = temp v1
3
End Sub
v2 2
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 33
Sous-programmes
Appel de fonction depuis un autre sous-programme :
Ex. un_reel = Max (var1, 32767)
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 34
lments visuels
Contrle : Objet prdfini (type Object) au
sens de la programmation oriente-objet
Proprits : Dfinition de son aspect
vnements : Dfinition de son comportement
lments visuels
Quelques vnements commun :
Change Modification du contenu du contrle
Click Clic de souris sur le contrle
DblClick Double clic de souris sur le contrle
Drag Glisser/dposer
GotFocus Gain du focus
Key vnements provenant du clavier
LostFocus Perte du focus
Mouse vnements provenant de la souris autres
que le clic
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 39
lments visuels
Manipulation de contrle par programme
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 40
Plan du cours
I. Objectifs
II. Rappels de Visual Basic
! III. Connexion VB-Access
IV. Connexion Excel-Access
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 41
Contrle Donne
Un contrle Donne (Data) permet de connecter
une feuille VB donne une table ou une
requte dune base de donnes Access.
Proprits principales :
Connect : Type de fichier base de donnes (Access)
DatabaseName : Nom du fichier .mdb contenant la
base de donnes
RecordSource : Nom de la table/requte source
ReadOnly : Empche la modification des donnes si
mis True (fortement conseill pour les requtes)
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 42
Contrle Donne
Affichage des donnes associes un contrle
Donne :
tiquettes (texte)
Zones de texte (texte modifiable)
Zones de liste et zones de listes modifiables
Images et dessins
Contrles spcialiss (voir plus loin)
Proprits utilises :
DataSource : Nom du contrle Donne utiliser
DataField : Nom de lattribut afficher
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 43
Contrle Donne
Exemple :
Soit la table Authors (Au_ID, Author, YearBorn) de la
base de donnes biblio.mdb.
On souhaite afficher les numros identifiants des
auteurs et permettre la modification de leurs noms.
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 44
Contrle Donne
Contrle Donne Auteurs :
Connect = Access
DatabaseName = E:\VB5\biblio.mdb
RecordSource = Authors
Contrle tiquette Numro :
DataSource = Auteurs
DataField = Au_ID
Contrle Zone de texte Nom :
DataSource = Auteurs
DataField = Author
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 45
Contrles Zones de liste BD
Contrles Zone de liste BD (DBList) et Zone
de liste BD modifiable (DBCombo) Zones de
liste (ListBox) et Zones de liste modifiables
(ComboBox) standard
Affichage dinformations provenant dune base
de donnes
Permettent de travailler sur deux tables mises en
relation (au sens Access du terme)
Diffrence DBList / DBCombo : DBCombo
choix dans la liste + saisie au clavier possible
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 46
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 49
Contrles Zones de liste BD
Contrle tiquette Titre :
DataSource = Titres
DataField = Title
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 50
Contrle Grille BD
Contrle Grille BD (DBGrid) Grille
(MSFlexGrid)
Affichage dinformations provenant dune base
de donnes
Permet dafficher sous forme tabulaire (faon
grille Excel) et de modifier les donnes dune
table
Proprit principale :
DataSource : Nom du contrle Donne utiliser
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 51
Contrle Grille BD
Exemple : La table Authors
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 52
Contrle Grille BD
Contrle Donne Auteurs :
Connect = Access
DatabaseName = E:\VB5\biblio.mdb
RecordSource = Authors
Visible = False
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 53
Assistant Feuilles de Donnes
Permet, de manire interactive, de crer
automatiquement des feuilles VB connectes
des bases de donnes
Accs par le menu Complments
Si lAssistant Feuilles de donnes napparat
pas, il est possible de lajouter :
1) Menu Complments
2) Gestionnaire de Complments
3) VB Data Form Wizard
4) OK.
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 54
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 56
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 57
Manipulation de donnes par programme
Mthodes :
MoveFirst Dplacement en 1re position
MoveLast Dplacement en dernire position
MoveNext Dplacement la position suivante
MovePrevious Dplacement la position prcdente
Exemple :
Auteurs.RecordSet.MoveFirst
While Not (Auteurs.RecordSet.EOF)
Auteurs.RecordSet.MoveNext
Wend
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 58
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 59
Manipulation de donnes par programme
Recherche dans la table :
Proprit :
Bookmark Signet (chane) pointant chaque enregistrement
Si le signet est mmoris dans une position donne,
il est possible par la suite de sauter directement
au tuple correspondant.
Ex. Dim b as String
b = Auteurs.RecordSet.Bookmark
Auteurs.RecordSet.MoveLast
Auteurs.RecordSet.Bookmark = b
' Retour la position initiale
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 60
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 61
Manipulation de donnes par programme
Mises jour :
Plan du cours
I. Objectifs
II. Rappels de Visual Basic
III. Connexion VB-Access
! IV. Connexion Excel-Access
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 63
Importations de donnes externes
Principe : Copie du rsultat dune requte dans
une feuille Excel (utilisation de MS Query)
Marche suivre :
Menu Donnes / Donnes externes / Crer une req.
Choix de la source de donnes : Type de BD
Slection de la base de donnes : Fichier BD
Slection table(s)/requte(s) et attribut(s)
Requte
Filtrage des donnes (optionnel) MS Query
Tri des donnes (optionnel)
Envoi des donnes dans une feuille Excel
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 64
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 65
Importations de donnes externes
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 66