Académique Documents
Professionnel Documents
Culture Documents
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 :
VB/BD
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)
http://eric.univ-lyon2.fr/~jdarmont/ 4
Rgles du jeu
Application Visual Basic : Interface qui doit permettre de
VB/BD
http://eric.univ-lyon2.fr/~jdarmont/
Rgles du jeu
Rapport crit :
Prsentation du sujet / Motivation Analyse, Schma E/A de la base de donnes Organisation de lapplication VB (feuilles, modules) Conclusion, Problmes rencontrs Annexe : Code VB
VB/BD
http://eric.univ-lyon2.fr/~jdarmont/
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
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)
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
' i=3
Oprateurs logiques :
Ou : or. La condition (cond1 or cond2) est vraie si cond1
est vraie ou cond2 est vraie.
Structures de contrle
Test :
If condition then ' Instructions si condition vraie Else ' Instructions si condition fausse End If
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
http://eric.univ-lyon2.fr/~jdarmont/ 20
VB/BD
Structures de contrle
Test court :
Iif condition, si_vrai, si_faux
Choix dindex :
Ex. Calcul de taux
http://eric.univ-lyon2.fr/~jdarmont/
Structures de contrle
Boucle pour :
For var=min to max step pas ' Instructions Next var
Structures de contrle
Boucle pour chaque lment de tableau :
For each var in tableau ' Instructions Next var
Structures de contrle
Boucle tant que :
While condition ' Instructions Wend
Structures de contrle
Boucle rpter jusqu :
Do ' Instructions Loop until condition
FOR NEXT
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
Sous-programmes
Sous-programme : Programme autonome ddi une tche prcise, de prfrence de taille rduite. Un sous-programme peut recevoir des paramtres. Deux types de sous-programmes :
Procdures : Sous-programmes proprement dits Fonctions : Sous-programmes qui renvoient un rsultat (ex. fonction de calcul du sinus dun angle)
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 29
Sous-programmes
Structure dune procdure :
Public|Private Sub nom_proc (paramtres) ' Dclarations ' Instructions End Sub
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 1 temp v1 = v2 v1 v2 = temp 3 End Sub v2
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)
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 proprits communes :
Name Nom interne de lobjet qui peut tre utilis dans un
programme
Appearance Apparence du contrle (3D ou plat) BackColor Couleur du fond Caption Texte affich lcran (sauf pour les champs de saisie Text) Enabled Contrle activ ou non (True/False) Font Police de caractres ForeColor Couleur de lcriture TabIndex Ordre daccs avec la touche TAB Visible Contrle visible ou non (True/False)
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 38
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
Ex. Procdure gnrique daffichage dun texte dans une tiquette (label).
Public Sub Etiq_Affiche (etiq as Object, ByVal msg as String) etiq.Caption = msg End Sub
Ex. dappels :
VB/BD
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 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/
56
http://eric.univ-lyon2.fr/~jdarmont/
Ex.
VB/BD
Auteurs.RecordSet.MoveLast c = Auteurs.RecordSet.RecordCount
http://eric.univ-lyon2.fr/~jdarmont/ 59
Ex. Auteurs.RecordSet.FindFirst
VB/BD
("Author = 'Metzger'")
61
http://eric.univ-lyon2.fr/~jdarmont/
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
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
http://eric.univ-lyon2.fr/~jdarmont/ 64
Source de donnes : MS Access Database Base de donnes : E:\VB5\biblio.mdb Table : Authors Attributs : Au_ID, Author, YearBorn Filtrage : YearBorn nest pas nul Tri : 1re cl = Author, ordre croissant
http://eric.univ-lyon2.fr/~jdarmont/ 65
VB/BD
http://eric.univ-lyon2.fr/~jdarmont/
66
67
Modification de la requte MS Query : Changement des paramtres de la requte (table, champs, filtres, tri)
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 68
Sous-totaux : Calcul de sous-totaux (somme, produit, compte, moyenne) par groupes de donnes
Ex. Montant total de commandes pour une date donne
VB/BD http://eric.univ-lyon2.fr/~jdarmont/ 69