Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Bases de donnes
TD ACCESS
Travail Dirig : "Facturation
Facturation"
Marc SOUQUES
souques@ensat.fr
Version du 14 avril 2011
Tel : 05.34.32.39.00
1.
2.
CH2.
1.
2.
7.
CH3.
3.
4.
5.
6.
1.
A.
B.
A.
B.
C.
D.
E.
F.
G.
A.
B.
C.
A.
B.
C.
2.
CH4.
A.
B.
C.
D.
E.
F.
G.
H.
1.
3.
CH5.
1.
2.
CH6.
1.
2.
3.
D ES TABLES ............................................................................................................................................................... 51
D ES R EQUETES .......................................................................................................................................................... 51
D ES F ORMULAIRES .................................................................................................................................................... 51
A.
B.
C.
2.
A.
B.
C.
D.
Page 2
CH7.
1.
A.
B.
2.
A.
B.
3.
A.
B.
C.
CH8.
1.
2.
CH9.
1.
2.
3.
A.
B.
A.
B.
C.
A.
4.
5.
CH10.
1.
2.
CH11.
1.
CH12.
1.
CH13.
1.
2.
3.
4.
CH14.
CH15.
A.
B.
Page 3
CH16.
CH17.
CH18.
1.
A.
B.
2.
3.
4.
CH19.
1.
2.
3.
1.
2.
CH21.
1.
2.
3.
T ESTER LES EVENEMENTS DECLANCHANT DES MACROS DANS UN FORMULAIRE ...................................................... 108
MACRO CONDITIONNELLE ATTACHEE A UN EVENEMENT ......................................................................................... 109
R EFERENCE DES ACTIONS DES MACROS .................................................................................................................. 111
CH22.
1.
2.
1.
A.
B.
CH24.
Page 4
Ci-dessous, les champs des tables avec les VALEURS assurant les Relations.
Cl primaire
SANS doublon
Cl primaire
SANS doublon
Cl primaire
SANS doublon
base sur
2 champs
Cl primaire
SANS doublon
Cl
trangre
AVEC
doublons
Lgende :
Cl primaire mono ou multi champ
Cl trangre lie une cl primaire
Cl
trangre
AVEC
doublons
Cl
trangre
AVEC
doublons
Page 5
Notre dmarche consiste, pour la partie concernant les Donnes, tablir au fur et mesure quelques
rgles simples pour dfinir les Tables de notre application de Facturation.
Dmarrer ACCESS .
Clic sur Base de donne vide, Clic sur
pour choisir un dossier puis nommer l'application ESSAI
(l'extension accdb signifie Access Data Base c'est le format 2007 et 2010) et bouton Crer.
- Si besoin, comprhension et configuration de l'environnement de travail :
Bouton
Office (Fichier en Version 2010) puis Options Access :
- Standard : Dfinir le dossier de donnes par dfaut pour ouvrir ou enregistrer des bases
- Base de donnes active : Cocher Compacter lors de la fermeture (pour rduire la taille du fichier accdb)
- Personnaliser : Dfinir les icones de la barre d'accs rapide
en haut d'cran et valider OK.
Page 6
Type de donnes
NumroAuto
Texte
(Attention : le type
Texte est limit
255 caractres !)
Texte
pour consulter la structure de la table puis fermer (croix droite) la table Client.
Page 7
On calculera donc le Prix Ttc (sur les actuels Prix Ht et Taux Tva) chaque fois que l'on en aura
besoin mme si cela prend un peu (si peu) de temps-machine.
Rgle : La Table stocke des informations de base (non calcules)
Une cl primaire est un (ou plusieurs) champ de la table qui identifie sans ambigut chaque
enregistrement de la table (chaque lment de la population). Deux mmes valeurs dans deux
enregistrements de ce champ sont interdites (pas de doublons: 2 produits ne doivent pas avoir le mme
numro de produit).
Dfinir une cl primaire sur le champ: Num Produit en slectionnant ce champ puis barre doutils
Cl primaire (Cela bascule automatiquement la proprit Index du champ Num Produit : Oui SANS doublon).
Convention personnelle pour Cl primaire : Num + (Nom de table) = Num Produit
On souhaite que la Dsignation du produit soit unique, interdire 2 fois Imprimante laser Canon type 1.
On veut donc un index sans doublon (unique) sur le seul champ Dsignation
Complter la description du champ Dsignation avec :
Dsignation
Texte
Index : Oui sans doublons
Ici, il est inutile de passer par Clic sur Index
car l'index est
ici MONO-Champ.
Par contre, le rsultat est bien stock dans les index :
ATTENTION :
Index : Oui sans doublons car Cl Primaire
Num Produit
Texte
Dsignation
Texte
Index : Oui sans doublons sans tre Cl primaire
La cl primaire est le champ qui identifie chaque enregistrement de la table, c'est cette information qui
est utilise dans une autre table pour pointer (rfrencer) vers la table Produit.
Enregistrer la table : Produit puis Fermer la table :
Remarque : Les noms des tables sont nots au singulier (Client, Produit) sans prfixe Tab Produits
Faire un effort dans le choix des noms des tables pour que le nom corresponde au contenu de la table :
Les produits Catalogue produit Produits vendus
Visualisation en mode feuille de donnes
Ouvrir la table Produit par double-clic sur Produit :
Ensat - Informatique Applique - Marc Souques
Page 8
Passer en mode Feuille de donnes par le mme bouton de barre d' outils :
erreur
EPS001
Imprimante
75 19.6%
Erreur
Erreur sur le Prix
Erreur sur la Tva
La tva sur les livres est 5.5%
Erreur sur Num Produit
dtecte seulement aprs saisie
de Taux Tva (doublon dans cl
primaire avec le 1 enregistrement) :
modifier ce Num Produit en
CAN002
Erreur sur Dsignation
(doublon sur proprit "OUI
sans doublon"), modifier cette
Dsignation avec Imprimante
Jet encre Epson srie1
Remarque sur le champ Num Produit : les 3 premires lettres correspondent la marque du produit.
CAN pour Canon, EPS pour Epson, MIC pour l'diteur Microapplication
Il y a vrification automatique de lunicit (Unique) de la cl Primaire de Num produit.
Remarque : les Donnes saisies sont enregistres automatiquement (pas besoin d'enregistrer sauf la
mise en forme ou les dfinitions des champs des tables).
Elargir la colonne Dsignation (modification de la mise en forme).
Fermer la table : (l'enregistrement de la mise en forme de la table est propos)
Ouvrir la table : elle est trie sur la cl primaire : Num Produit
Ajouter un enregistrement par ce bouton
dans la dernire ligne de la
table signale par
(ce symbole sur une ligne vierge indique la position pour ajouter des
enregistrements) et tester lerreur sur le taux de TVA:
CAN003
Imprimante Canon couleur 300
33.33% puis 19.6%
Supprimer l'enregistrement ci-dessus en le slectionnant pralablement par la colonne grise gauche
de Num Produit puis Suppr du clavier. Fermer la table :
Page 9
et
Cl primaire
SANS doublon
PERE
FILS
x
x
Table Fils
Fils de pre
inconnu
Table Pre
Convention perso pour nom Cl trangre : Ref + (Nom de la table lie) = Ref Pre (en italique bleu)
Convention perso pour nom Cl primaire : Num + (Nom de la table) = Num Fils (en gras rouge)
Table Frre
Cl trangre
Cl trangre
AVEC doublons AVEC doublons
FRERE
SOEUR
x
x
x
x
x
x
x
x
Cl primaire
SANS doublon
Table Sur
Page 10
N Commandes.
1 seul Client.
Table Commande
Table Client
Convention :
gras +
soulign
indique une
cl primaire
N Produits
N Commandes
Table Commande
Table Produit
Table Croisement : Commande - Produit
On nomme gnralement cette table de Croisement en mixant les noms des 2 tables croises, par
exemple : ComProd ou ProdCom
Page 11
On gre ici la partie fixe de la Commande, le haut de la commande, son En-tte, sans prendre en
compte les produits commands car ils sont en nombre variable.
Un nombre qui sincrmente
Nom du Champ
Type de donnes Proprits
automatiquement chaque nouvelle
commande saisie : 1 puis 2 puis 3
Num Commande
NumroAuto
Ref Client
Numrique
Taille : Entier long ; PAS de valeur par dfaut
(pour futur lien vers Num
Null interdit : OUI donc saisie obligatoire d'1 valeur de
Client
Chaine vide autorise : NON
de table CLIENT)
Date Commande
Date/Heure
Date Echance
Date/Heure
Paye
Oui/Non
Total Commande : NE PAS grer car ce n'est pas une DONNEE mais un CALCUL
Remarque : Dans cette table CommandeEnTete, le nom Ref Client est choisi librement.
Je prends la rgle 'Ref'+NomTable lie pour la Cl trangre mais d'autres solutions sont possibles.
(Num Client est souvent utilis mais confusion possible avec le nom et le rle de Num Client qui
est cl primaire de la table CLIENT)
Dfinir la cl primaire sur le champ : Num Commande
Enregistrer la table : CommandeEnTete
Table Client
Date Echance
(saisir une date)
(valider date)
Paye
Cocher pour Oui
Rien pour Non
Cocher pour Oui
Il y a 3 CommandeEnTete.
Page 12
a) La Commande 1 fait rfrence un seul client (le 3) par le champ Ref Client.
Num Commande Ref Client
Date
Date Echance
Paye
Commande
1
3
b) Le Client 3 fait rfrence plusieurs Commandes (la 1 et la 2) par le champ Ref Client
Num Commande Ref Client
1
2
Date
Commande
Date Echance
Paye
3
3
C'est par cette technique que l'on respecte le cahier des charges :
Page 13
On gre ici la structure de la table pour un Produit command d' une CommandeEnTete.
C'est la table de croisement entre la table CommandeEnTete et la table Produit.
Nom du Champ
Type de
Proprits
donnes
Ref Commande
Numrique
Texte
Ref Produit
(pour lien vers
Num Produit
de table Produit)
Page 14
Saisir :
Ref Commande
Ref Produit
Quantit
CAN001
4
1
EPS001
2
Table Produit
2
CAN001
1
2
CAN002
3
2
MIC001
5
Table CommandeLigneProduit
Nous avons donc 5 Produits commandes dans CommandeLigneProduit rpartis sur 2 Commandes.
La Commande 1 (Ref Commande) contient 2 Produits, CAN001 et EPS001
La Commande 2 (Ref Commande) contient 3 Produits, CAN001, CAN002 et MIC001
1
Gestion de la saisie dans les cls trangres Ref Commande et Ref Produit :
Pour le champ Ref Produit, pour le moment, la saisie est faite au clavier en tapant manuellement
CAN001 par exemple.
En ralit, pour une liste de produit comme celle ci-contre,
on ne peut faire rfrence pour Ref Produit de la table CommandeLigneProduit
qu' 1 des n Produits identifis (ACE001, ACE002, CAN001, ) dans la cl
primaire Num Produit de la table Produit.
Une erreur consisterait pour Ref Produit saisir ABC001 qui n'existe pas dans Num Produit.
Pour viter cette erreur, nous grerons plus tard (voir Chapitre 5 LES TABLES AVEC LISTES
DEROULANTES POUR CLE ETRANGERE) la saisie dans Ref Produit par une liste droulante ne
proposant QUE les Produits qui existent dans la cl primaire Num Produit de la table Produit.
Pour faciliter le choix du produit command, nous
prsenterons en plus de Num Produit, la
Dsignation du produit en classant ces dsignations
de produits par ordre alphabtique.
FIN TD1
Page 15
Date Echance
Remarque : On peut aussi grer des noms sans espace et sans accent (DateEcheance) pour faciliter
l'criture de ces noms en programmation VBA et grer dans ce cas la proprit du champ Lgende qui
propose un nom de substitution (avec espaces et accents : Date d'Echance) pour les affichages dans les
formulaires
- Pour les noms des tables :
J'ai choisi de NE PAS utiliser les possibilits d'espace et d'accent car ces noms NE SONT PAS affichs
l'utilisateur de l'application.
Je mets une majuscule la premire lettre de chacun des mots composant la Table.
Je note les noms de table au singulier car une table dfinit la structure pour 1 enregistrement type.
Exemple :
CommandeEnTete
Page 16
En effet, une application Access (comme Excel, Word et Powerpoint) peut avoir un contenu (programme
VBA ou autres techniques) potentiellement dangereux.
Donc, ici, du contenu est dsactiv. Pour grer cet aspect, plusieurs solutions :
1. Garder la configuration ci-dessus et cliquer
chaque ouverture de la base sur le bouton Option
puis choisir Activer le contenu si vous faite confiance
l'origine du fichier.
2. Modifier la configuration ci-dessus en activant l'option
Activer toutes les macros. C'est non recommand et
potentiellement dangereux car ainsi, pour toutes les
applications, du code malsain peut tre excut.
3. Garder la configuration ci-dessus pour le Paramtre des macros Dsactiv mais dfinir un
dossier o vous rangerez les applications de confiance (les vtres par exemple). Dans la fentre
du Centre de gestion de la confidentialit, Emplacements approuvs, ajouter un nouvel
emplacement pour un dossier (et ventuellement ses sous-dossiers) pour obtenir un rsultat de ce
type. Attention, cette opration peut poser problme sur un disque dun rseau local protg.
C'est cette dernire solution qui est recommande et que vous mettez en place.
Valider ces paramtres et fermer Access.
-Sous l'application Explorateur de fichiers
:
- Supprimer ventuellement la base : essai.accdb
- Copier Fac01a2007.accdb depuis le dossier de correction vers votre dossier de travail.
- Ouvrir la base : Fac01a2007.accdb par double clic (la votre , pas celle donne en correction)
Cette application a les mmes dfinitions que ci-dessus mais avec plus de donnes saisies dans les
tables.
Page 17
Page 18
Ci-dessus : travail faire = lier les tables par des Relations ou Jointures
Ajouter (si besoin par bouton +Afficher la table ) les 4 tables: Client, CommandeEnTete,
CommandeLigneProduit et Produit et fermer cette fentre d'ajout.
1 lien :
1 Client (Pre) peut avoir N CommandeEnTete (Fils) et
1 CommandeEnTete (Fils) est lie 1 seul Client (Pre)
Dfinir des Liens ( appels aussi Jointures) :
* Glisser Num Client de Client (cl primaire) sur
Ref Client de CommandeEnTete (cl trangre)
. Bote de dialogue :
- cocher Appliquer Intgrit Rfrentielle,
(vrifications des donnes des liens, voir TEST plus loin)
- Ne pas cocher 'Mettre jour en cascade'
- Ne pas cocher 'Effacer en cascade'
- Type de Jointure (consulter seulement)
Crer
EGAUX
Un--plusieurs : c'est le cas classique
Un--un : erreur probable
Page 19
3 lien :
1 Produit peut avoir N CommandeLigneProduit et
1 CommandeLigneProduit est lie 1 seul Produit
Dfinir des Liens ( appels aussi Jointures) :
* Glisser
Num Produit de Produit (cl primaire) sur
Ref Produit de CommandeLigneProduit (cl trangre)
Remarque : Ref Produit n'est pas un champ cl primaire (malgr le symbole cl ) mais la moiti d'une
cl primaire qui elle est compose des 2 champs Ref Commande et Ref Produit
. Bote de dialogue
- cocher Appliquer Intgrit Rfrentielle (vrifications des donnes des liens, voir TEST plus loin )
- Relation 1 Plusieurs-Pas de Mise jour et pas d' Effacement en cascade
- Type de Jointure (consulter seulement)
Crer
Cl primaire mono-champ :
Cl trangre
:
Numxx
Refxx
Remarque : On trouvera ailleurs que dans notre tablissement des liens (jointures, relations) entre
cl primaire et cl trangre comme ceci par exemple :
Numxx
cl primaire de table-pre et
Numxx
cl trangre de table-fils
ou
Codexx
cl primaire de table-pre et
Codexx
cl trangre de table-fils
ou
Idxx
cl primaire de table-pre et
Idxx
cl trangre de table-fils
ou
Refxx
cl primaire de table-pre et
Refxx
cl trangre de table-fils.
Soit le mme nom de champ pour la cl Primaire et Etrangre !!!
Je n'adhre pas, titre pdagogique, cette manire de nommer 2 choses diffrentes avec le mme nom
mais il faut savoir que cette manire de nommer existe mme si elle est ambige.
Cela vient en partie du fait qu'il existe des logiciels (PowerAMC, WinDesign) qui, partir d'un MCD, gnrent
automatiquement un MLD Relationnel et que ces logiciels reprennent (faute de rgle) automatiquement le nom de
la cl primaire du MCD (l'identifiant pour tre exact) pour crer la cl trangre.
Comme il n'y a pas de rgle pour nommer ces 2 types de cls, chacun fait avec sa rgle.
Vous trouverez donc toutes les combinaisons possibles de cl Primaire et Etrangre, l'essentiel est de
bien comprendre le rle diffrent de chaque cl :
La Cl primaire :
- identifie chaque enregistrement d'une table.
- est SANS doublon.
- est souvent de type numrique et mme Numauto
(pour gnrer AUTOMATIQUEMENT un numro).
Page 20
gales
IMPORTANT :
Le travail ralis par Accs au niveau des Relations consiste :
Voir
- rechercher partir d'une valeur d'une cl trangre
exemples
l'unique (1) valeur gale (=) dans la cl primaire lie. en bas de
page 5 du
- rechercher partir d'une valeur d'une cl primaire
Chapitre I
les (N) valeurs gales (=) dans la cl trangre lie.
Page 21
erreur car, dans la table Fils CommandeEnTete, saisir dans Ref Client la valeur 999 999 alors
que dans la cl primaire Num Client de la table Pre "Client" la valeur 999 999 n'existe pas, cela n'est
pas valide.
Un Fils ne peut PAS faire rfrence un Pre dont la valeur ne peut tre retrouve
dans la table Pre.
Remarque : un fils peut ne pas faire rfrence un pre si on l'autorise, une CommandeEnTete
pourrait ne pas faire rfrence un client (pas de saisie dans Ref Client) mais nous l'avons interdit dans
cette application dans le champ Ref Client avec la proprit Null interdit (vide interdit) : OUI et Chaine
vide autoris : NON donc ici la saisie est obligatoire.
2) Ouvrir la table Produit
Tenter de supprimer de la table Produit le produit CAN001 (clic dans la marge et bouton Suppr )
alors que ce produit existe (est command) dans la table CommandeLigneProduit dans le
champ Ref Produit : CAN001.
erreur car supprimer dans la table Pre une cl primaire CAN001 alors qu'au moins un
enregistrement de la table Fils CommandeLigneProduit y fait rfrence par la cl trangre Ref Produit
est une suppression non valide.
Un Pre ne peut PAS tre supprim s'il a encore au moins 1 Fils qui fait rfrence lui mme.
Dans les cas 1) et 2), on ne veut pas d'un Fils pointant vers un Pre NON "trouvable".
et sa Voiture")
Page 22
de
choix"
avec
Page 23
1. Requte slection
Elle permet de slectionner,
relies entre elles.
trier, calculer
Dans Access, dans un premier temps, nous n'aurons pas besoin de la syntaxe SQL pour crer une requte
car nous bnficions du mode Cration de la requte sous forme de tableau interactif.
Si vous souhaitez vous formez au langage SQL, je vous propose mon Polycopi demander :
Page 24
Date Entre
Client
X
entre 15/4/2009 et 1/5/2009
Pour une saisie dans un champ de type DATE, les # sont ajouts automatiquement
comme dlimiteur de date= #15/04/2009#
Oprateurs de comparaison : (faute doprateur choisi, cest loprateur = qui est utilis par dfaut)
= , > , < , >= , <= , < > (diffrent), Comme (comparaison avec caractres joker ci-dessous)
Possibilit d'utiliser les caractres Jokers vus prcdemment (pour les champs de type Texte) :
* , ? , # avec l'oprateur Comme pour interprter ces 'Jokers'
Excuter la requte, Passer en mode Cration :
Enregistrer la requte : R03 Client Entre et fermer cette requte.
Page 25
5) Exercices faire
A FAIRE1 : nommer la requte R05
Question : "Recherche des produits dont
[le Prix est infrieur 500 et dont la Dsignation commence par "imp" (en minuscule ou majuscule)]
ou bien [dont le taux de TVA est suprieur ou gal 15% (0.15) et dont le Num Produit a un "A" en 2
ime
position et un "0" (zro) en 5 ime position
Penser utiliser loprateur Comme " " si vous utilisez des caractres ?, *, #.
Classer par dsignation. "
93] ou bien
A vous d'essayer...
Commentaire :
Les rsultats ne font apparatre aucune des informations du client (nom, prnom, ) hors mis le numro.
Ces donnes sont dans les tables Client.
Nous allons donc faire des requtes multi-table pour visualiser les informations client depuis une
commande.
Page 26
=
=
Ce rsultat affiche les Commandes pour lesquelles Ref Client = Num Client
Voir le mode SQL de la requte : SELECT [Num Commande], [Date Commande], [Date Echance],
[Ref Client], [Num Client], Nom, Prnom FROM Client INNER JOIN CommandeEnTete
ON Client.[Num Client] = CommandeEnTete.[Ref Client];
Cl trangre
AVEC doublons
de table "Fils"
Cl primaire
SANS doublon
de table "Pre"
Page 27
Demander voir le
Formulaire Client et
ses commandes FP
=
=
Cl trangre
AVEC doublons
"Fils"
Page 28
Mais il n'est pas obligatoire de prsenter les paires de champs lis. Simplifier.
On simplifie encore (pour faire de la place sur ce document pour les futurs calculs).
Page 29
Objectif :
Ajouter dans une colonne vierge de la requte un champ calcul Remarque : Il ny a pas de diffrence dans les noms de champ entre minuscule et majuscule !
- Calcul de la premire colonne calcule
Utilisation du gnrateur dexpression pour champ calcul
Nom de la colonne
librement choisi
Total HT :
Saisie Clavier
Excuter:
Page 30
Eventuellement !
taper 0 virgule 1
et non pas
0.1 suivant votre
machine !
Fonction VraiFaux() (IIf en V 2010) correspond SI() est prendre dans le gnrateur, dans :
+Fonctions, Fonction intgre, Droulement prog.
Total TTC remis : VraiFaux([Total TTC]>1000 ; [Total TTC]*(1-0,1) ; [Total TTC])
La fonction VraiFaux a la mme logique que le SI d'Excel : (condition ; valeur si Vrai ; valeur si Faux)
La fonction VraiFaux() s'crit Iif() en version 2010 et en syntaxe anglaise.
Une solution plus avance irait chercher le Taux de remise (10% ou 0,1) dans une table de Paramtres
pour ne pas avoir la valeur 0,1 pratiquement fige car difficilement modifiable dans ce calcul par un
NON spcialiste des requtes d'Access.
De mme pour le Seuil de 1 000 , il serait prfrable qu'il soit stock dans une table de Paramtres pour
qu'un simple utilisateur puisse modifier cette valeur sans avoir faire appel un informaticien.
Cette table Paramtres pourrait tre structure ainsi avec un champ par paramtre et donc n'avoir qu'un
seul enregistrement :
Penser grer en mode Cration pour chacune des 4 colonnes de calcul un format Montaire par
le bouton Feuille de proprits :
Page 31
Page 32
Chr(nombre)
Car()
A
<retour la ligne>
+ mais parfois ambige avec somme : "abc" + " " + "def" donne "abc def"
4) Fonctions de Domaine
Ces fonctions effectuent des regroupements sur des domaines et produisent des rsultats analogues aux
requtes de regroupement.
Gros avantage : en une fonction totalement autonome, on a l'quivalent d'une requte travaillant sur
des donnes (Table ou Requte), effectuant par le nom de la fonction (Compter, Sommer, ) un calcul
sur un champ (ou une expression) dont les enregistrements utiliss peuvent ventuellement tre
slectionns par une condition (filtre).
Forme gnrale :
Syntaxe
anglaise
DCount()
Syntaxe
franaise
CompteDom( )
Dfinition
Exemple
Compte le nombre
d'enregistrements
DSum()
SomDom( )
Somme un champ
DAvg()
MoyDom( )
Calcule la moyenne
d'un champ
DCount
("[Num
client]";
"Client"; "Ville = 'PARIS' " )
Noter les ' autour de Paris
DSum ("[Prix Ht]"; "Produit";
"[Prix Ht] >500" )
DAvg ("[Prix Ht]"; "R04 abc")
DMax
MaxDom( )
DMin
MinDom( )
DLookup( )
RechDom( )
Calcule la valeur
maximale
Calcule la valeur
minimale
Rechercher le
premier
enregistrement
rpondant un
critre
Rsultats
3
2500
450
2000
PUISSE
Alain
30
5) Fonctions de conversion
Syntaxe anglaise
Syntaxe franaise
Nz(expression;
Nz( )
valeur de
remplacement)
(Nz pour Null to Zro)
Val()
CNum()
Str()
NumChaine()
Dfinition
Convertir une valeur
Null en une autre valeur
(0 par dfaut pour une
variable numrique)
Exemple
Nz(Quantit)*2
Quantit *2
Renvoie un nombre
Val("88 rue des
partir d'une chaine de
corsaires")
caractres
Transforme un nombre Str(12)
en chaine de caractres
Rsultats
0 si quantit
= Null.
Null si quantit =
Null
88
"12"
Page 33
6) Fonctions Diverses
Syntaxe anglaise
Iif(condition;
valeurSiVrai;
valeurSifaux)
IsNull(expression)
Syntaxe franaise
VraiFaux( )
IIF() en V 2010
Remarque : nous
avons dj utilis
cette fonction
page 31 en haut
EstNull( )
MsgBox(message;
boutons; titre)
BoteMsg()
InputBox(message;
titre; valeur par
dfaut)
BEntre ()
Dfinition
Retourner une valeur en
fonction de la condition
Vraie ou Fausse
Mme logique que le SI Excel
Exemple
Iif(1=1;
2*3;
4)
IsNull(champ1
)
MsgBox("Ajou
t effectu")
InputBox( Entrer
votre ge ")
Rsultats
6
Vrai ou Faux
suprieure
Page 34
7) Fonctions Personnelles
Vous pouvez aussi crire en langage VBA dans l'diteur (ALT+F11) vos propres fonctions qui pourront
tre appeles depuis les calculs de Requtes, Formulaires et Etats. Exemple :
'Exemple de fonction appele dans une requte ou un formulaire
Function DureeEnHeures(ByVal DureeMin As Integer) As String
'Role : Retourner une chaine de caractres correspondant une dure en Heures et Minutes
NE PAS FAIRE
' partir d'une Dure en minutes exemple : 65 Mn donne "1H05Mn"
'ENTREE : DureeMin : Dure en minutes (ex : 65)
Dim Heure As Integer, Minute As Integer
CETTE PARTIE
Heure = DureeMin / 60
Minute = DureeMin Mod 60 'Mod pour le reste de la division
DureeEnHeures = Heure & "H" & Format(Minute, "00") & "Mn" 'Conversion implicite en String
End Function
F. Exercices faire
Question : "Crer la requte R12 Calcul TTC unitaire permettant d'afficher prcisment le rsultat cidessous".
Page 35
Excuter
b) Regrouper les enregistrements ayant mme valeur
traitements sur le groupe.
Ajouter la ligne Opration par le bouton
Totaux .
Tester.
Dans l'en-tte de la dernire colonne, transformer "Quantit" en "Total des ventes : Quantit"
pour viter l'affichage de SommeDeQuantit remplac par Total des ventes (nom de colonne calcule).
Tester pour la colonne Total des ventes les autres Oprations (autres que Somme) disponibles sur un
Regroupement : Moyenne, Min, Max, Compte,
H. Exercices faire
Question : "Crer la requte R14 : Moyenne des
quantits de produits des commandes par client
permettant d'afficher prcisment le rsultat ci-contre
tri par moyenne".
Page 36
Page 37
Utilisateur
Table ou Requte = affichage brut des donnes Formulaire = affichage permettant une
en mode Feuille de donnes (tableau).
Mise en Forme des donnes.
Intrts du Formulaire :
- tre l'interface (l'intermdiaire) entre les Donnes et l'Utilisateur pour lire et crire des donnes
- prsenter un affichage optimis et sophistiqu (Interface graphique Windows)
- faciliter la saisie (aide la saisie par choix dans liste droulante par exemple)
B. Utiliser un formulaire
Passer en mode Formulaire pour tre Utilisateur de l'application et non Dveloppeur.
1) Ajouter des enregistrements
Atteindre un nouvel enregistrement vide : (en bas d'cran) par ce bouton
Saisir : Vendaire Isabelle 2 Av Casanova 31000 TOULOUSE .
Vrifier que Vendaire ajout depuis le Formulaire est prsent dans la Table Client.
2) Consulter des enregistrements en mode formulaire
Utiliser les 4 boutons de dplacement en bas de formulaire
3) Modifier des enregistrements
Directement au clavier sur les donnes (les modifications se rpercutent directement sur les donnes des Tables)
4) Rechercher des enregistrements
Rechercher TERIEUR : se positionner sur le champ Nom et utiliser
5) Supprimer des enregistrements
Slectionner la souris l'ensemble "Vendaire" par la barre de slection
gauche des donnes puis touche Suppr
Ensat - Informatique Applique - Marc Souques
Page 38
C. Modifier un formulaire
Objectif obtenir la fin de cette partie Modification :
4
1
Modifications
2
3
Passer en mode Cration sur le formulaire Client : il y a 3 sections (En tte, Dtail, Pied).
Les lments d'un Formulaire sont appels des Contrles
Deux types de contrles sont prsents sur ce formulaire:
Demander
-Zone de texte = texte modifiable par l'utilisateur
(Toulouse)
explications
correspondant aux donnes des champs de la Table Client
l'enseignant
-Etiquette = texte fig pour l'utilisateur
(Ville)
prcisant seulement que Toulouse est une donne du domaine Ville
1) Grer les contrles existants
.Slection : ( la souris : clic ou +clic pour ajouter une slection)
( la souris : par gliss encadrant partiellement les contrles cibls)
.Dgrouper : les contrles affichs ici sont groups dans une Disposition : cliquer la croix
pour slectionner les contrles puis clic droit sur un des contrles
Disposition > Supprimer pour
pouvoir dgrouper et grer ces contrles individuellement.
.Dplacement : (avec souris : "contour" pour le couple de contrles, "carr haut gauche" pour un seul)
Application :
.slectionner le contrle Num Client
.dplacer le couple Etiquette (sur fond gris) et Zone de texte (sur fond blanc)
.dplacer seulement le contrle zone de texte sans son tiquette; tiquette sans sa zone de texte.
.Mise en forme:
- police
- taille de la police
- attribut (gras, italique)
- alignement (Gauche, Centre, Droit)
- style et couleurs
Application : modifier la taille et le style de la police pour tous les contrles sauf le Num Client
.Slectionner les contrles par un gliss la souris, .choisir police Arial, taille 14 , clic droit sur un
contrle, -Taille -(adapte) Au contenu
.slectionner Zone de texte-Nom par clic ,.slectionner Zone de texte-Prnom par +clic
.utiliser onglet Accueil
pour: Fond=jaune, .slectionner la ligne Dtail du formulaire par
clic et attribuer Fond=vert clair.
Remarque : Pour afficher les proprits d'un contrle : double-clic sur le contrle (si non slectionn).
Remarque : Voir aussi le clic-droit sur un contrle.
Page 39
1. contrle Etiquette
Correspond du Texte non modifiable par l'utilisateur de l'application et bas sur le texte d'une lgende.
Application : .slectionner loutil Etiquette (Aa) qui permet dajouter du texte fig .crer une
Etiquette droite du contrle Num Client par un gliss puis saisir son texte : Automatique (indiquant
ainsi que la gnration du Num client est Automatique)
2. contrle Rectangle
Application : .slectionner loutil de dessin Rectangle dans la barre doutil, .dessiner un
rectangle autour du Nom et Prnom par un gliss .donner une couleur au rectangle puis mettre le
rectangle en arrire plan par onglet Rorganiser, bouton Mettre en arrire plan de zone Position
3. contrle Zone de texte
Correspond du Texte gnralement modifiable par l'utilisateur de l'application et bas le plus souvent sur un
champ de table.
4. contrle Logo
Application : Ajouter le logo Clientele.gif (fichier fourni). Le logo est ajout automatiquement
dans la zone En tte du formulaire. Par la proprit Mode d'Affichage du Logo, affecter successivement
Dcoupage, Echelle, Zoom l'image pour comprendre la prsentation de l'image.
Le contrle Logo est en ralit un contrle Image, positionn automatiquement dans l'en tte du
formulaire, avec une petite taille par dfaut. Tester le contrle Image
avec le mme fichier .gif puis
effacer cette image.
Bilan sur l'affichage des Images :
-En Dcoupage : L'image ne rentre pas dans la surface qui lui est alloue, elle est dcoupe (il manque
ici le haut et le bas). Sa taille de base est garde.
-En Echelle : L'image est dforme horizontalement et verticalement (mis l'chelle : ici largie
horizontalement) pour occuper toute la surface qui lui est alloue. La totalit de l'image est vue.
-En Zoom : L'image n'est pas dcoupe, n'est pas dforme, elle n'occupe pas toute la zone qui lui est
alloue ( droite et gauche) et elle est zoome (ici zoom arrire). La totalit de l'image est vue.
Page 40
www.fnac.com
Page
41
Zone
En-tte
Zone
Dtail
Zone
Pied
Page 42
Des
calculs
Procdure :
Ce problme
d'affichage n'est pas
trait dans la requte
mais sera gr dans
le formulaire.
Eventuellement, en
mode Cration, voir
bouton Proprits
puis Format
avec pour le champ 'Pay': critre : non; affichage dsactiv (non affich), tri sur Date Commande
Essayer de faire la requte ci-dessus seul (sinon consulter ci-dessous) :
Utiliser les tables CommandeEnTete, CommandeLigneProduit et Produit (Client pas ncessaire).
Avec
Gnrateur
d'expression
obligatoirement
Ici, le gnrateur vous propose d'utiliser les 4 tables de l'application MAIS en ralit vous ne pouvez
utiliser que les 3 tables la 'source' de votre requte. Table Client interdite d'utilisation !.
De mme, vous ne pouvez utilisez aucunes Requte car non prsentes la 'source' de votre requte
Excuter Enregistrer : R15 Produits commands avec date puis Fermer.
Ensat - Informatique Applique - Marc Souques
Page 43
zone de texte)
Nous souhaitons calculer la somme des montants TTC de tous les produits commands non pays.
Agrandir le pied de formulaire la souris puis Ajouter un contrle Zone de texte dans le pied du
formulaire droite sous le prix TTC avec les proprits suivantes :
.source contrle : utiliser le gnrateur dexpression
(ne pas saisir au clavier) =Somme([Total TTC])
obtenir Somme dans les Fonctions intgres
obtenir Total TTC par clic sur <Liste de champs> puis Total TTC
Attention: Dans un contrle avec calcul, on doit utiliser:
- soit les contrles du formulaire courant
<Formulaire> =contrles utilisables
- soit les champs de la requte la source du formulaire si
clic sur <Liste de champs> = champs utilisables
On ne peut utiliser d'autres donnes que celles du formulaire
ou celles la source du formulaire (ici la requte ).
On ne doit PAS utiliser les TABLES ou REQUETES par
.nom : TotalGnral
.format : Montaire. Fermer fentre des proprits
Changer les proprits de ltiquette du contrle
.lgende : Total des commandes impayes
2) contrle Trait Tirer un trait comme sur l'exemple pour montrer la synthse par la somme.
Passer en mode Formulaire, tester, Enregistrer et fermer ce formulaire.
Conclusion : des Calculs peuvent tre faits :
1. dans des colonnes de Requte
(cas le plus courant)
2.
Page 44
D. Exercices faire
si vous avez du temps :
Fin du TD3
Page 45
Cl trangre
AVEC doublons
"Fils"
Cl primaire
SANS doublon
"Pre"
Ref Client
Date Commande
Dans une premire version de base, une fois le choix fait, continuer afficher la valeur 3 dans Ref Client
Num Commande
Ref Client
Date Commande
Page 46
8 cm
Contenu dtermine ce qui va drouler dans la liste droulante (ici Num Client, Nom, Prnom de Client)
Pour la proprit Contenu, utiliser le gnrateur (en fin de ligne) pour crer la Requte (ajouter
table Client, 3 champs dans l'ordre : Num Client, Nom, Prnom, tri sur Nom puis Prnom), fermer la
requte, OUI pour enregistrer le code SQL ci-dessous (ne pas saisir le texte ci-dessous)
SELECT Client.[Num Client], Client.Nom, Client.Prnom
FROM Client
ORDER BY Client.Nom, Client.Prnom;
TRI
OBLIGATOIRE
Une fois le client saisi, l'affichage ci-contre est peu significatif (qui est
le client 3 ? Quel est son Nom ?).
Evolution, nous souhaitons :
- continuer stocker dans Ref Client un Numro de client
- afficher devant Ref Client son Nom concatn (juxtapos) son Prnom pour diffrencier les
homonymes (GALL Alphonse et GALL Bill)
(Voir page suivante la nouvelle version)
Page 47
Majuscule devient en
Anglais UCase pour
Up Case.
Tester :
Page 48
B. Exercice faire
Faire de mme pour Table CommandeLigneProduit, Champ Ref Produit, Onglet Liste de
choix pour saisir un produit command parmi les produits de la table Produit.
Ici, une fois le choix fait par la
liste droulante, on affichera la
Dsignation (1 seul champ ici
car toutes les dsignations sont
diffrentes contrairement aux
noms des clients de l'exemple
prcdent) dans Ref Produit.
N'oubliez pas que notre objectif primaire est toujours de stocker dans Ref Produit la valeur du champ
Num Produit (LOG001 pour le Clavier Logitech KZ Noir) de la table Produit mme si cela ne se voit
pas sur la copie d'cran ci-dessus !!!
Grer la proprit : Largeur liste
Grer aussi les 2 proprits :
Autoriser la modification de la liste : OUI
Nom du formulaire pour saisir des produits : Produit
Page 49
pas stock !
Rappel : Ref Produit est Texte, Longueur 6 caractres donc "Imprimante laser Canon type 1" n'est pas le
contenu de ce champ !!!
Ne pas grer une liste droulante pour la cl trangre Ref Commande de la table
CommandeLigneProduit, nous utiliserons une autre technique pour assister la saisie de ces
valeurs.
Page 50
Cl Primaire - Cl Etrangre
Texte 6 caractres
NumAuto
2. Des Requtes
Des Requtes de Slection
Mono ou multi table
Avec ou sans calcul
3. Des Formulaires
Avec pour Source une Table ou une Requte
Affichage Colonne simple (uniquement 1 enregistrement visible) ou Tabulaire (tableau de N enregistrements)
Avec ou sans Calcul
Page 51
champ
interdit)
A. Table simple
1) Nous voulons grer les Catgories de produits avec comme base une liste de
valeurs prsentes dans un classeur Excel.
Voir exemple dj
Prcisions :
trait prcdemment
Une Commande fait
Un Produit
fait rfrence
1 seule Catgorie.
rfrence 1 Client
Une Catgorie
fait rfrence
plusieurs Produits.
Grer pour chaque catgorie le Numro (cl primaire) et le nom Nom Catgorie.
On veut viter qu'un utilisateur ne puisse saisir 2 fois (doublon) le mme Nom de Catgorie.
Les donnes seront saisies au clavier. Crer la table Catgorie, modifier la table Produit car on veut
une liste droulante pour choisir LA Catgorie de chaque Produit. Grer la Relation entre ces 2 tables.
Crer aussi un formulaire sur la table Catgorie en assistant Formulaire.
2) Nous voulons grer les 3 Fournisseurs des produits.
Prcisions :
On souhaite grer pour chaque Fournisseur, hors mis la cl primaire,
son Nom et sa Ville.
On souhaite viter de confondre le nom et la ville du client avec le nom et la ville du fournisseur donc
nommer les champs : Nom Fournisseur, Ville Fournisseur. On veut viter qu'un utilisateur ne puisse
saisir 2 fois (doublon) le mme Nom de Fournisseur. On veut le nom de la ville toujours en majuscule.
Pour simplifier, on ne gre pas l'adresse, le code postal et d'autres informations qui pourraient tre utiles.
Grer la table Fournisseur et crer aussi un formulaire sur la table Fournisseur.
B. Table complexe
Un Produit
Un Fournisseur
fait rfrence (peut tre achet chez) plusieurs Fournisseurs dans certains cas.
fait rfrence (peut nous vendre)
plusieurs Produits.
Voir exemple dj trait :
plusieurs Produits.
plusieurs Commandes.
1) Grer des informations suivantes pour chaque couple Produit-Fournisseur appel ProdFour.
- Prix d'achat hors taxe pour un produit propos par un fournisseur.
- Dlai de livraison en jours pour un produit propos par un fournisseur
Voici droite un exemple de prix et de dlai de livraison
d'un mme produit propos par 2 fournisseurs.
Prcisions : On souhaite, pour des raisons de cohrence, ne pas avoir 2 fois un mme produit Produit1
propos par un mme fournisseur Fournisseur1. Grer la cl primaire en consquence. On souhaite
avoir les listes droulantes pour choisir Produits et Fournisseurs. En saisissant 1.5 on veut afficher
1,50 Jours donc saisir 0.00" Jours" pour la proprit Format du champ Dlai Livraison.
A vous d'essayer...
Fin du TD4
Page 52
A. Requte simple
Consulter les nouvelles tables et leurs donnes.
Voici la table Produit : 14 enregistrements.
Remarque : le produit SON002 n'as pas de valeur pour Ref Catgorie !!!
1) Requte "R16 Produits slectionns"
Question : Liste de produits compose de :
a) produits avec "imprimante" n'importe o dans la dsignation et dont le prix est infrieur 1000
et
b) produits de la catgorie Livre traitant
d' "access".
B. Requte multitable
1) Requte "R17 Produit et sa Catgorie"
Question : Liste des produits classe par Num Produit avec affichage de tous les champs de Produit
(y compris Ref Catgorie) et affichage du Nom de la catgorie de la table Catgorie.
Il n'y a QUE 13 enregistrements alors qu'il y en avait 14 en haut de cette page !!!
SON002 a disparu : pourquoi ?
Page 53
Ici 2
Ici 3
Fournisseurs
par produit
Tables "techniques"
pour grer lien N-N
1 Client
1 Catgorie
Page 54
A. Formulaire simple
1) Formulaire "Fournisseur"
Crer un formulaire en mode Assistant,
en colonne simple avec
1 seul fournisseur prsent l'cran
un moment donn.
Utiliser les boutons en bas d'cran pour se dplacer
sur les fournisseurs.
Nommer Fournisseur ce formulaire
Cliquer ici
sur ligne * pour ajouter
sur Nouvel enregistrement vide.
ou cliquer ici
Saisir le nouveau produit ci-dessous et saisir dans Ref Catgorie de Produit avec la liste droulante sa
catgorie : la valeur Clavier.
Ref Catgorie stocke en ralit la valeur 3 mais affiche le Nom de la catgorie correspondante.
Nom catgorie est une information de la table Catgorie et non pas de la table Produit. Ne pas modifier
cette dernire colonne affiche automatiquement grce la Relation.
Fermer ce formulaire et vrifier dans la table
Produit (utiliser ventuellement le bouton
Actualiser) la prsence de ce nouveau clavier
LOG003 rang dans l'ordre de la cl primaire : Num Produit
Page 55
Ch8. L'Etat
Utiliser le fichier Fac08a2007.accdb pour la suite
Impression
: Etat
Intrts de l'Etat :
- reprsentation synthtique (synthse par somme ou moyenne de groupements possibles)
- regroupement par catgorie et calculs (totaux et sous-totaux)
- vue d'ensemble des donnes
L'Etat imprime (Aperu avant impression aussi) les Donnes provenant d'une Table ou Requte
1. Crer un Etat
A. Etat bas sur une table
1) Catalogue des produits bas sur la table Produit version1
a) Crer l'tat
Depuis l'onglet Crer, bouton Assistant tat :
- bas sur la table Produit
.Slectionner : tous les champs sauf Ref Catgorie
.Critre de regroupement : (rien)
.Le tri sera effectu sur :
Num Produit
.Prsentation : Tabulaire, Orientation : Portrait
.Style :
Access 2007
.Titre (nom d'enregistrement) : Produit 01 sur table produit
Suivant
Suivant
Suivant
Suivant
Suivant
Terminer
Un Aperu avant impression est propos. Fermer laperu et donc Mode Cration.
Comme dans un formulaire, il y a :
- plusieurs Sections : 2 En ttes, 2 Pieds, le Dtail
- des Contrles: ne pas confondre les Etiquettes et les Zones de texte.
- une Boite de contrles disponible : pour ajouter des contrles
Passer en Mode Etat par
(donnes visibles, PAS de mise en page possible)
Passer en Mode Page (donnes visibles ET mise en Page POSSIBLE)
Passer en Aperu avant impression (vue page format A4 et Zoom)
Passer en Mode Cration (donnes Invisibles mais mise en Page POSSIBLE).
Ensat - Informatique Applique - Marc Souques
Page 56
b) Personnaliser l'tat :
- modifier dans len-tte de l'Etat le titre en Produit : version1
- dplacer ce contrle au centre de la largeur de la page
- tirer un trait sous ce titre avec le contrle Trait de la boite des contrles
- cliquer gauche sur le bouton Affichage pour visualiser le rsultat.
Enregistrer et Fermer
Page 57
Etape 1 : Crer la requte avec Liste des produits vendus trie par Ref Produit avec PLUSIEURS fois la
mme Ref Produit et Prix Ht car produits commands (vendus) plusieurs fois (pour certains).
Suivant
Page 58
Option de synthse :
.Prsentation : Echelonn, Orientation : Portrait
.Style : Access 2007
.Titre (nom d'enregistrement) : Ventes par Catgorie et par Produit
OK Suivant
Suivant
Suivant
Terminer
Enregistrer, Aperu avant impression (et ventuellement impression de cet Etat rcapitulatif).
S'il vous reste du temps
Grer l'Etat suivant pour travailler de manire autonome
Page 59
Page 60
Relation 1 .
Relation Pre et ses Fils
et
1
Relation
Relation
Pre
1
1
Fils
Procdure suivre en Assistant Formulaire :
Choisir (pour le Formulaire Principal FP) la table: Client OK
Champs affichs pour FP : tous les champs de Client
(PAS Suivant)
ET choisir nouveau (pour le Sous Formulaire (SF)) la table: CommandeEnTete
Champs affichs pour SF : tous (en initiation, on prend tous les champs, plus tard, nous
liminerons 1 champ : voir page suivante) les champs de CommandeEnTete Suivant
Afficher : par Client en Formulaire avec SS-Formulaire
Suivant
Disposition : Sous-formulaire en Tabulaire
Suivant
Style :Access 2007
Suivant
Titre : Formulaire :
Client et ses Commandes FP
Titre : Sous-formulaire :
Client et ses Commandes SF
Terminer
Tous les liens 1-N peuvent tre reprsents par un Formulaire et Sous-Formulaire :
Page 61
But 2 : Crer un formulaire prsentant, pour 1 En-tte de Commande, ses N Produits commands
Titre Formulaire : Commande et ses Produits FP
Titre Sous-formulaire : Commande et ses Produits SF
A vous de jouer...
Pre
Fils
Saisir, via le formulaire, de nouveaux produits commands pour des en-ttes de commandes existantes.
Saisir, via le formulaire, de nouvelles Commandes compltes ( en-tte puis leurs produits commands ).
Remarque: Le champ Ref Commande de la table CommandeLigneProduit n'a pas donn lieu dans
le TD prcdent une liste droulante car un produit command est toujours saisi dans le cadre
d'un Sous-formulaire de CommandeEnTete.
Ainsi, Ref Commande de CommandeLigneProduit prend automatiquement la valeur de Num Commande
de CommandeEnTete : Ref Commande doit donc ne pas tre affich dans le sous-formulaire donc
ne pas choisir ce champ dans l'assistant au niveau du sous formulaire.
(Voir commentaire page prcdente : "en initiation on prends tous les champs, plus tard ")
La version finale est donc :
1 Pre et
ses N Fils
Page 62
De mme pour les autres Formulaires / Sous-formulaires venir, NE PAS afficher le champ
Refxxx de la table Fille (celle du Sous-Formulaire) lors de la cration avec l'assistant.
NON
affich
car inutile
NON
affich
car inutile
Pour le Formulaire Principal (FP), nous avons principalement la table Produit et en plus nous
accdons grce au lien (Relation) la table Catgorie pour afficher ici le Num Catgorie du Produit.
Pour le Sous Formulaire (SP), nous avons principalement la table ProdFour, nous n'affichons pas le
champ Ref Produit inutile, et en plus nous accdons grce au lien (Relation) la table Fournisseur pour
afficher ici la Ville du Fournisseur.
S'il vous reste du temps du TD, voir ou faire les 3 pages suivantes qui grent
des Sous-formulaires complexes.
Page 63
Les
pres
Les petits
fils
Cette organisation sur 3 niveaux hirarchiss ne pose aucun problme gnrer avec l'assistant en
choisissant les 3 tables, en liminant de l'affichage les 2 cls trangres Ref Client et Ref Commande.
Nous avons donc 3 gnrations prsentes : Grands pres, Pres et Petits fils.
Page 64
Page 65
Fin TD5
Ensat - Informatique Applique - Marc Souques
Page 66
1) Crer le graphique
Menu Crer / Cration de formulaire.
Choisir le contrle Graphique
et le poser sur le formulaire vide
Dans l'assistant dmarr : Choisir la table : Produit
Choisir les champs : Num produit ; Prix Ht Suivant
Choisir le type de graphique : Histogramme 3 D Suivant
Cette prsentation est propose:
-Num produit de type texte est propos comme axe des abscisses :
-Un calcul de Somme de Prix Ht est propos, cela ne convient pas :
double clic sur ce bouton : Aucune pour synthse
Cela donne ceci :
Le rsultat est un peu tonnant mais nous sommes en Mode Cration donc ce n'est pas l'affichage
final. Passer en mode Formulaire (Affichage)
Page 67
2) Modifier le graphique :
Double clic sur le Graphique pour appeler l'application Microsoft Graph.
double clic
Page 68
TD6
Nous travaillons ventuellement en Modlisation Entit Association en TD6
Dbut TD7
Page 69
Prsentation du Formulaire :
- Colonne simple (dans l'assistant) pour prsentation
d'1 enregistrement par
cran.
'Colonne simple'
devient en proprit
"Formulaire unique"
- Tabulaire (dans l'assistant) pour prsentation
d'1 enregistrement
par ligne soit N
enregistrements /
cran.
'Tabulaire'
devient en proprit "Formulaire continus"
- Formulaire et Sous-formulaire pour prsenter un lien
1 Pre et ses N Fils : 1 Commande et ses N Produits.
Un formulaire principal en mode Colonne simple (Unique)
incluant un formulaire en mode Tabulaire (Continus)
Page 70
Page 71
Page 72
(FermerFentre en V 2010)
(volontairement, on ne prcise pas Type et Nom pour que cette macro serve pour fermer un formulaire quelconque)
Remarque : lorsque le formulaire Menu principal est ouvert (dans une couche 1)
c2: Client
et que l'on ouvre le formulaire Client (dans une couche 2), celui-ci est 'devant'
c1: Menu
ou 'dessus' le formulaire Menu principal.
Si on ne veut plus utiliser le formulaire Client et retrouver le formulaire Menu, il ne faut pas excuter
l'action OuvrirFormulaire Menu (celui-ci est encore ouvert et on laisserait ainsi le formulaire Client
ouvert) mais il faut excuter l'action Fermer le formulaire Client (fermer la couche 2) et retrouver
automatiquement le Formulaire Menu (en couche 1).
Il faut TOUJOURS fermer un formulaire si on ne travaille plus avec. C'est une ERREUR grave d'ouvrir un nouveau formulaire et laisser
l'ancien ouvert sans raison.
Ajouter (sans assistant contrle) un bouton libell Fermer dans le pied du formulaire Client et y attacher
la macro Fermer formulaire.
Remarque : possibilit de copier-coller le bouton Fermer du formulaire Client vers d'autres formulaires
(Produits, facture,) car il a mme libell et mme macro quels que soient les formulaires.
- Macro Fermer menu avec action Quitter (QuitterAccess en V 2010)
(Quitter = Quitter Access donc fermer le formulaire Menu, l'application access et Access)
et lattacher de mme lvnement SurClic du bouton Sortie
Complter le menu pour grer le lancement de tous les Formulaires et Etats disponibles
Page 73
Mono critre
1
2
3
4
X
X
X
Multi critres
Mono rsultat
X
X
X
X
Multi rsultats
X
X
X
Page 74
Liste
TOUJOURS
Trie
pour
faciliter le
choix
Procdure :
1) Crer une requte sur la table Client avec Num Client, Nom, Prnom,
trie sur Nom puis Prnom
(donc la colonne Nom doit tre gauche du Prnom pour tri prioritaire)
nomme R22 Client pour liste droulante.
Ce rsultat alimentera la liste droulante (proprit Contenu).
Le Nom-Prnom permettra de choisir un client (visible dans la liste droulante)
Le Num Client sera le vritable critre de recherche (INvisible dans la liste
droulante)
- Je veux que la liste droulante recherche les valeurs dans une table/requte
- Requte : R22 Client pour liste droulante
3 colonnes de
- Les 3 colonnes pour liste droulante
la
liste droulante
- Pas tri (dj tri dans la requte)
(Num Client) Nom Prnom
- Rduire 0 cm la largeur de la colonne Num Client
pour la cacher (on peut aussi la visualiser si besoin)
- Garder Num Client dans le contrle (critre de recherche)
- Aprs slection dune valeur : Mmoriser la valeur
Le Contrle
pour usage ultrieur (donc pas de stockage de cette saisie
stocke
dans un champ d'une table)
Num Client
- Etiquette pour la liste droulante : Rechercher le client :
Ce Contrle est donc Indpendant d'une quelconque source (champ).
-
Indpendant = Vide
Ensat - Informatique Applique - Marc Souques
Champ
Page 75
Page 76
sans changer
Fin TD7
Page 77
Procdure
1) Une Requte pour alimenter la liste modifiable
Page 78
Formulaire
principal
Clients slectionner par ville
Formulaire
source du
contrle de type
SF
Clients slectionns par ville SF
Requte
source du
Formulaire
R24Clients slectionns par ville
Page 79
Condition
Action
Actualiser
.
Tester
Arguments
Nom contrle : Clients slectionns par ville SF
Le contrle de type Sous-formulaire
Page 80
Copier le Formulaire Client slectionner par ville (clic droit sur ce nom) et
Coller en renommant Client slectionner par ville et date entre
Ouvrir en mode cration ce nouveau formulaire et supprimer le grand contrle sous formulaire.
Ajouter un contrle zone de texte pour saisir la date, le nommer DateSlection, proprit Format : Date,
abrg, vrifier que Slecteur de date est : certaines dates pour avoir le calendrier pour saisir.
Enregistrer ce formulaire.
Garder ce formulaire ouvert et crer une requte pour filtrer les rsultats.
1) Une requte de slection
base sur la table client avec comme critre de slection les valeurs du formulaire Clients slectionner
par ville et date entre :
- contrle liste modifiable VilleSlection (avec Gnrateur)
- contrle liste modifiable DateSlection (avec Gnrateur) avec l'oprateur > en dbut de critre
Les 2 critres sont sur la mme ligne Critre donc les 2 critres sont relis par ET.
Pour un lien par OU, les mettre sur 2 lignes distinctes, la ligne critre et une ligne en dessous
Condition
Action
Arguments
Actualiser
Nom contrle : Clients slectionns par ville et date SF
La nommer Rechercher actualiser SF ville et date et la fermer.
Sur le formulaire, partir de l'vnement Aprs MAJ
de chacun des 2 contrles de critre, associer la macro prcdente.
Rappel : Aprs MAJ se lie Aprs MiseA Jour et non pas Aprs MAJuscule !
Enregistrer et Tester
Page 81
grce la requte
R26 Facture dtail,
base de ce
Sous-formulaire (voir
plus loin)
Table
Ajouter 1 contrle
dans le pied du
Sous-Formulaire
(et PAS dans le pied
du Formulaire)
princpak
Requte
1) Crer une Requte nomme R26 Facture dtail qui sera la source du SF
Remarque:
le champ Ref commande de la table CommandeLigneProduit doit tre prsent dans la requte pour
pouvoir assurer la relation avec Num Commande de la table CommandeEnTete (base du FP) : voir
relation ci-dessus
Penser enregistrer la requte
avant de faire la colonne
calcule "Total du produit" pour
pouvoir accder aux colonnes
Quantit et Prix de la requte
courante
Page 82
Table Livre.
Rfrence
123456
123698
123581
541258
Titre
Excel pour Windows
Word pour Windows
VBA pour Windows
Access pour Windows
Editeur
Inter-Edition
PSI
SYBEX
Micro-Application
Prix
25
15
26
19
--- C'est une autre diffrence importante avec le Tableur o les donnes sont organises en
1 ou plusieurs Tableaux de Ligne-Colonne mais sans lien entre les tableaux --L'outil
SGBD
Access
4.
pour dvelopper
l'application
de Type
Base de Donnes
Traitements
Base de
Donnes
Table1
Table2
Page 83
ACCESS
ACCESS est un Systme de Gestion de Bases de Donnes Relationnelles. (SGBDR)
Les Donnes contenues dans la base de donnes peuvent tre traites de 3 manires :
1. l'aide de commandes SQL stockes dans des Requtes
gnration interactive dans environnement graphique (trs simple et trs puissant)
2.
3. l'aide d'instructions du langage VISUAL BASIC (VBA) stockes dans des procdures ou
fonctions : mode programmation niveau 2 (trs performant mais complexe) VBA NON vu
dans cette
formation
Page 84
Type de donnes
NumroAuto
Texte
Proprit du champ
Taille : 20
Index : Oui sans doublons pour interdire de saisir 2 fois
Imprimante par exemple
Null interdit : OUI donc vide interdit donc saisie
obligatoire
Dfinir pour Ref Catgorie une liste droulante pour effectuer les saisies par choix de valeur de Catgorie.
Remarque : Si aucune des 2 tables Catgorie et Produit n'existait, l'ordre de cration serait :
D'abord
Catgorie car c'est une table Pre et les Pres naissent avant leurs Fils.
Ensuite
Produit
car c'est une table Fils pointant vers un Pre et les Fils naissent aprs leur Pre
Page 85
Relations :
Un fournisseur de produit ne pointe pas vers 1 seul Produit ou 1 seul Client ou 1 seule Commande ou
1 seul Produit command ou 1 seule Catgorie donc pas de cl trangre vers 1 cl primaire d'une autre table.
Enregistrer la table : Fournisseur (Premire lettre de chaque mot en majuscule, sans accent, sans espace,
au singulier) et fermer cette table.
Crer aussi un formulaire Fournisseur par l'assistant.
fait rfrence (peut tre achet chez) plusieurs Fournisseurs dans certains cas.
fait rfrence (peut nous vendre)
plusieurs Produits.
Cl trangre
Cl trangre
AVEC doublons AVEC doublons
"Fils"
"Fils"
FRERE
SOEUR
x
x
x
x
x
x
x
x
Cl primaire
SANS doublon
"Pre"
Page 86
Produit
Fournisseur
Le produit ACE001
est fourni
par 1 et 2
Le fournisseur 2
fournit
ACE001 et ACE002
ProdFour
Cette solution permet :
Un Produit
fait rfrence (peut tre achet chez) plusieurs Fournisseurs.
Un Fournisseur
fait rfrence (peut nous vendre)
plusieurs Produits.
Dfinitions de la table ProdFour: ce nom intgre les 2 tables croises : Produit et Fournisseur
et sa liste droulante
C'est cette cl primaire sur les 2 champs Ref Produit + Ref Fournisseur qui interdit un doublon sur
le couple ACE001
+
1
Ensat - Informatique Applique - Marc Souques
Page 87
MCD Facturation
dessin avec le logiciel gratuit Looping.
(voir enseignant pour obtenir ce logiciel si besoin)
Page 88
A. Requte simple
Consulter les nouvelles tables et leurs donnes.
Voici la table produit : 14 enregistrements.
Remarque : le produit SON002 n'as pas de valeur pour Ref Catgorie !!!
1) Requte "R16 Produits slectionns"
Question : Liste de produits classe par Num Produit et compose de :
a) produits avec "imprimante" n'importe o dans la dsignation et dont le prix est infrieur 1000
et
b) produits de la catgorie Livre traitant
d' "access" : attention ne pas
slectionner un clavier avec une
dsignation " Clavier accessible"
Solution : requte bas sur la table Produit avec 4 critres de slection.
La slection pour "Livre" est obtenue par 4 dans Ref Catgorie
B. Requte multitable
1) Requte "R17 Produit et sa Catgorie"
Question : Liste des produits classe par Num Produit avec affichage de tous les champs de produit
(y compris Ref Catgorie) et affichage du nom de la catgorie du produit
Page 89
14 enregistrements seulement
car le doublon est regroup en 1 enregistrement et le triplet est regroup en 1 enregistrement.
Page 90
Page 91
et surtout pas par liste droulante proposant les autres numro d'lve.
On n'identifie pas un enregistrement par l'1 des autres enregistrements !
La valeur de la cl primaire, une fois attribu un enregistrement et donc pointe par d'autres
enregistrements d'autres tables, n'est gnralement JAMAIS modifie.
(Imaginer, si on changeait votre numro de Scurit Sociale, les consquence qui cela entrainerait !)
Proposer une liste droulante NON trie :
Mise en forme :
Page 92
Fac13a2007.accdb
Page 93
Page 94
2. L'autre partie du chemin est : \images\ qui est une constante pour l'organisation que nous avons
choisie (toujours un dossier 'images' sous le dossier de l'application .accdb).
Donc, pour affecter, la proprit 'Image' du contrle 'ImgPhotoRep',
C:\MesDocuments\Access \images\ DupondAlain.JPG crire 'logiquement' :
[ImgPhotoRep].[Image] = CheminApplication() & "\images\" & [NomPhotoRep]
la
valeur
Hors programmation en VBA, cette affectation est grer sous Access par une macro qui utilise l'action
'DfinirValeur' (= affectation) avec 2 Arguments :
Affectation '='
Elment :
[ImgPhotoRep].[Image]
Expression :
CheminApplication() & "\images\" & [NomPhotoRep]
Attention, pour trouver cette action DfinirValeur dans la liste droulante de la macro, il
faut Afficher toutes les actions de cette liste par le bouton ci-contre.
Cette affectation ne doit tre faite que si le 'NomPhotoRep' n'est pas Vide,
on utilise donc la partie conditionnelle de la macro avec la condition (voir ce bouton
pour afficher la colonne Condition) :
[NomPhotoRep] Est Pas Null Null signifie VIDE
Inversement, si le [NomPhotoRep] est Vide, on utilise aussi la partie conditionnelle de la macro avec :
[NomPhotoRep] Est Null et on affecte le nom d'une image spciale "Blank.jpg" :
CheminApplication() & "\images\" & "Blank.jpg"
Rsume de la macro [Macro incorpore] d'affectation :
Donc :
- le Formulaire, par son vnement Sur activation, dclenche
- une Macro [Incorpore] au formulaire qui, suivant que le champ 'NomImageRep' de la table
'Reprsentant' est Vide ou pas,
- affecte, la proprit 'Image' du contrle 'ImgPhotoRep' du Formulaire, la valeur du champ
'NomImageRep' contenant un nom de fichier ou l'image spciale 'Blank.jpg,
- tout en grant le chemin de dossiers menant aux fichiers des images
(C:\MesDocuments\Access\images\) grce
- la fonction VBA 'CheminApplication()' utilisant l'objet 'CurrentProject' et sa mthode
'Path', fonction stocke dans un module VBA (Module accessible par ALT+F11).
Page 95
En plus, on pourra Copier-Coller les 2 lignes de la macro et attacher une nouvelle macro [Incorpore]
l'vnement 'Sur sortie' du contrle 'NomPhotoRep'
pour que suite la validation
par la touche Entre de la saisie manuelle du nom du fichier (donc en sortant du contrle), l'image soit
raffiche immdiatement (sans attendre l'vnement Sur activation du formulaire).
Les limitations de cette version2 sont :
- Les noms des images doivent tre saisis manuellement au clavier dans le contrle du formulaire.
- Il ne faut pas faire d'erreur de saisie pour que :
la correspondance NomImage du contrle NomFichierImage soit parfaite!
On peut lever les 2 contraintes ci-dessus par l'utilisation de la version3 ci-dessous mais c'est un peu plus
compliqu gnrer
Saisir
dans
Formulaire Reprsentant
Type de contrle :
Zone de texte
Type de contrle :
Image
Nom : NomPhoto
Source : NomPhotoRep
Nom : ImgPhotoRep
Image : (aucune !)
Image : C:\MesDocuments\Access\images\DupondAlain.jpg
Macro (incorpore)
Logique :
& [NomPhotoRep]
Technique :
"Affecter"
Condition d'affichage :
Si [NomPhotoRep] est pas VIDE alors
Affecter l'image du champ [NomPhotoRep]
Sinon
Affecter l'image particulire BLANK.jpg
C:\MesDocuments\Access
Fin TD8
Page 96
Page 97
RedimentionnerPhoto
Exit Sub
Si vous souhaitez utiliser ce principe, vous pouvez simplement copier le code depuis
le fichier Fac14a2007.accdb de correction et le coller dans votre application sans
maitriser ce code en gardant dans votre application le contrle Image nomm
ImgPhoto et en gardant le dossier Images.
Page 98
Formulaire Produit :
Simple sans programmation
Pas Performant avec :
-taille importante de .accdb
-saisie par Coller (pas de
insrer un ficher.)
Programmation avec
1 Macro de 2 lignes
(donc simple)
Pas Performant avec
saisie clavier du nom
du fichier
Saisie
au clavier
Performant avec :
-taille rduite de .accdb
- chemin pour dossier
'images' automatique
Macro [Incorpore]
VBA
Saisie
la souris
Programmation avec VBA et Boite d'Ouverture de fichier de WINDOWS intgre en VBA.
Performant : - taille rduite .accdb , - saisie assiste par Boite d'Ouverture de fichier et
-chemin pour dossier 'images' automatique (pas stock dans champ 'NomPhoto')
Ensat - Informatique Applique - Marc Souques
Page 99
Page 100
Termin
Valider OUI.
Message
Page 101
Pour grer Les Clients parlent plusieurs langues et les Langues sont parles par plusieurs Clients, on
veut crer la table intermdiaire entre Client et Langue et y grer la proprit Niveau pour connaitre,
par Client et par Langue, le niveau pratiqu.
Rappel de 2 cas de relation N / N :
Une Commande vend
plusieurs Produits.
Un Fournisseur
fournit
plusieurs Produits.
On souhaite que la saisie du niveau soit faite dans une liste de niveaux de rfrence.
Crer une table Niveau
Crer un formulaire Niveau
(menu Crer>Plus de formulaire> Assistant>Table Niveau )
Page 102
Dans la requte pour Contenu, c'est [Nom] & " " & [Prnom] qui affiche DUMANS Benoit.
Page 103
et ses Langues
Page 104
Bien en Consultation.
Mauvais en Ajout
Pour appliquer le style un formulaire existant, ouvrir un formulaire un mode cration, ne pas
slectionner un lment du formulaire puis Menu Organiser> Mise en forme automatique> Assistant
format automatique et choisir 'A mon modle personnel'.
En plus :
Le formulaire X Formulaire modle de forme
Tabulaire t cr comme base pour Crer un
nouveau format (procdure ci-dessus A.) et le
nommer 'A mon modle personnel Tabulaire'. Il gre
une prsentation Tabulaire appliquer un
formulaire principal Tabulaire ou pour les sous-formulaires qui sont Tabulaires.
Page 105
Page 106
de Donnes
pour plusieurs utilisateurs (car sur disque-rseau partag)
TESTER plusieurs si possible
Page 107
Groupe de macros
Macro
Action
Argument
Page 108
Faire un 'Bip' sonore de manire inconditionnelle (BIP normalement inutile mais ici pour aspect technique)
...
...
AtteindreContrle
EstNull( ) est
une fonction
Pas
EstNull ([Formulaires]!
[Client]![Code Postal] )
AnnulerEvnement
ArrtToutesMacros
BoteMessage
Pas de
condition
Nom du contrle :
Code Postal
Bip
...
Page 109
alors AtteindreContrle
AnnulerEvnement
alors AnnulerEvnement
Sinon
BoteMessage
Si [Code Postal] Est Pas Vide alors BoteMessage
FinSi
Bip
Bip
Commentaire
Page 110
2) Attacher cette macro dans le Formulaire 'Client' llment Formulaire (afficher la fentre
'Proprits' puis slectionner le Formulaire) :
- par le carr gris ( l'intersection des 2 rgles gradues)
- par liste droulante de la feuille de proprits
puis choisir l'vnement 'Avant MAJ' ( Avant Mise Jour du formulaire donc de l'enregistrement
correspondant)
AvantMAJ signifie avant que les Donnes du formulaire soient enregistres dans la table sur disque.
3) Tester cette macro.
- En ajoutant un nouveau client sans Code Postal mais avec un Nom et un Prnom puis tenter de passer
au client prcdent par les boutons de navigation en bas de Formulaire.
- En se positionnant sur un client existant, en supprimant le Code Postal puis tenter de changer de client
par la liste droulante de recherche.
Excution
Importer/
exporter
AtteindreContrle (GoToControl),
AtteindrePage (GoToPage),
AtteindreEnregistrement (GoToRecord)
Excuter une commande ExcuterCommande (simuler les menus)
Enregistrer
Excuter une macro, une OuvrirRequte (OpenQuery),
procdure ou une requte ExcuterCode (RunCode),
ExcuterMacro (RunMacro),
SurErreur (OnError)
ExcuterSQL (RunSQL)
Excuter une application ExcuterApplication (RunApp)
AnnulerEvnement (CancelEvent),
Arrter l'excution
Quitter (Quit),
ArrtToutesMacros (StopAllMacros),
ArrtMacro (StopMacro)
CopierVers (OutputTo),
Envoyer des objets
EnvoyerObjet (SendObject)
Microsoft Access
d'autres applications
Transfrer des donnes
entre Microsoft Access et
d'autres formats de
TransfrerBase (TransferDatabase),
TransfrerBaseDeDonneesSQL (TransferDatabase),
TransfrerFeuilleCalcul (TransferSpreadsheet),
TransfrerTexte (TransferText)
Page 111
Manipulation
d'objets
donnes
Copier ou renommer un
objet
Supprimer un objet
Dplacer ou
redimensionner une
fentre
CopierObjet (CopyObject),
Renommer (Rename)
SupprimerObjet (DeleteObject)
Agrandir (Maximize),
Rduire (Minimize),
DplacerDimensionner (MoveSize),
Restaurer (Restore)
Ouvrir ou fermer un objet Fermer (Close),
OuvrirFormulaire (OpenForm),
base de donnes
OuvrirModule (OpenModule),
OuvrirRequte (OpenQuery),
OuvrirEtat (OpenReport),
OuvrirTable (OpenTable)
Imprimer un objet base de OuvrirFormulaire (OpenForm),
OuvrirRequte (OpenQuery),
donnes
OuvrirEtat (OpenReport),
Imprimer (Print)
SlectionnerObjet (SelectObject)
Slectionner un objet
base de donnes
Dfinir la valeur d'un
champ, d'un contrle ou
d'une proprit
Dfinir et supprimer des
variables mmoire
Mettre jour les donnes
ou l'cran
Divers
DfinirValeur (SetValue)
TRES PUISSANT
DfinirVarTemp
PUISSANT
SupprimerVarTemp
RedessinerObjet (RepaintObject),
Actualiser (Requery),
AfficherTousEnreg (ShowAllRecords)
Echo (Echo),
Sablier (Hourglass),
BoteMessage (MsgBox),
Avertissements (SetWarnings)
EnvoiTouches (SendKeys)
Page 112
1. Modification manuelle
Cette modification est faite de manire interactive par l'utilisateur : ouvrir le formulaire Client, se
positionner sur le client DURAND Alain :
- soit par les boutons standards en bas de formulaire
- soit par notre liste droulante de recherche
Saisir 92000 pour modifier le Code Postal du client courant.
en
On n'utilise gnralement pas ce bouton car tout marche trs bien en automatique.
Page 113
En Perfectionnement
A. La requte action
But : Modifier les prix des seuls produits de marque CANON en les multipliant par 2.
Le numro de ces produits commence par CAN.
Crer une requte en mode Cration sur la seule table Produit avec 2 champs :
- Num produit et Prix HT avec CAN* comme critres pour Num produit
Excuter la requte puis retour en mode Cration
Convertir la requte en requte Mise jour par le bouton Mise jour de la zone Type de requte.
Dans la nouvelle ligne Mise jour, inscrire dans le champ Prix HT en utilisant le bouton Gnrateur
de la barre doutils et en choisissant dans le gnrateur: Tables; Produit; Prix HT :
[Produit]![Prix HT] * 2
Page 114
En Mode Affichage
Remarque: un contrle Zone de texte affiche Indpendant (en mode cration) tant que sa proprit
Source contrle n'est pas dfinie (par un champ de table ou de requte ou bien par une dfinition de
calcul).
Grer les proprits des 2 contrles Zone de texte comme ci-dessus.
Consquence ici pour ces 2 contrles :
A l'ouverture du formulaire: la zone est vide (car sans source)
Aprs la saisie : seul le contrle lcran est rempli (pas de rpercussion de cette saisie dans une
table : Normal on saisit des critres de mise jour que l'on ne souhaite pas enregistrer)
Enregistrer le formulaire : Saisie variation des prix v1
Page 115
Critres
Permet d'extraire de
Num Produit
3 caractres partir de
la gauche
Permet de ne garder
qu'un seul nom de
marque
Page 116
Contrle de type SF
Formulaire
source du
contrle de type
SF
Requte
source du
Formulaire
Page 117
Action :
Bip
Action :
Message :
Titre :
(pour se rendre compte que la macro s'excute si le haut parleur est actif)
Page 118
Elment = Expression
Bip (En test pour se rendre compte que la macro s'excute si le haut parleur est actif)
Action :
BoiteMessage (ZoneMessage en V 2010)
Message :
="Reste en stock maintenant : " & [Qt stock]
Titre :
Gestion de STOCK
Deux macros incorpores ont donc t cr :
En plus, s'il vous reste du temps, pour tester l'affectation une proprit de contrle :
Contrle : Quantit Evnement : Sur Rception Focus
Action :
BoiteMessage (ZoneMessage en V 2010)
Message :
Prix Invisible ensuite !
Titre :
Evnement : Sur Rception Focus
Action :
DfinirValeur
Elment :
[Prix Ht].[Visible]
Expression : Non
Contrle : Quantit Evnement : Sur Perte Focus
Action :
BoiteMessage (ZoneMessage en V 2010)
Message :
Prix Visible ensuite !
Titre :
Evnement : Sur Perte Focus
Action :
DfinirValeur
Elment :
[Prix Ht].[Visible]
Expression : Oui
Page 119
Excuter la requte :
Page 120
Page 121
On peut cacher la liste des Quantits vendues par Client et par Catgorie :
Cliquer dans le tableau sur le champ Quantit puis sur le bouton du ruban :
Masquer les dtails
On peut grer le format numrique des valeurs affiches:
Cliquer dans le tableau sur le champ Moyenne de Quantit puis sur le bouton du ruban :
Feuille des proprits Onglet Format / Nombre : Standard (pour 2 dcimales)
Rsultat final :
Page 122
Page 123