Vous êtes sur la page 1sur 14

INP E N S A T

TOULOUSE ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

$&&(66;3
7UDYDLO'LULJp

0DUF62848(6
Version du lundi 13 juin 2005

7DEOHGHV0DWLqUHV

&+ 1289($87(6'(-$,17(*5((6« 


1. TABLE PARAMETRES POUR L’APPLICATION ...........................................................................................................2
1) Enregistrer des paramètres ..............................................................................................................................................2
2) Modifier des paramètres..................................................................................................................................................2
3) Utiliser des paramètres ....................................................................................................................................................2
2. IMAGES DANS DES FORMULAIRES OU ETATS .............................................................................................................3
1) Images de '
Décoration'non stockées dans une table .......................................................................................................3
2) Images de '
Données'stockées dans un champ de table....................................................................................................3
3. CHAMP DE TYPE MEMO POUR DU TEXTE LONG ..........................................................................................................3
4. CHAMP DE TYPE LIEN HYPERTEXTE POUR ACCEDER A…...........................................................................................3
&+ 75$9$,/$)$,5(
1. SAISIE PAR LISTE DEROULANTE SANS TABLE-LISTE ....................................................................................................4
1) Créer une liste Déroulante (LD)......................................................................................................................................4
2) Actualiser les valeurs d'
une liste déroulante....................................................................................................................4
2. CONTROLE ZONE DE LISTE POUR SELECTION MULTIPLE GEREE AVEC DES REQUETES MISEAJOUR OU EN VBA ........5
$ /HIRUPXODLUH 
% /D7DEOHGHVpOHFWLRQ 
& &KURQRORJLHG H[pFXWLRQ« 
1) Macro '
BT sélection N,désélectionner TOUTES' ............................................................................................................5
2) Macro '
ZL Non sélectionnéE, sélectionnER 1' ................................................................................................................6
3) Macro '
ZL SélectionnéE, DésélectionnER 1'..................................................................................................................7
4) Macro '
BT Liste des clients des villes, Ouvrir Formulaire'............................................................................................7
' /HV)RQFWLRQVHQ9%$PRGLILHUµ7DEOHSRXU/LVWH9LOOH¶
3. MACROS OUVRIRFORMULAIRE AVEC CONDITIONWHERE .........................................................................................9
1) Macro FactureSF, Bouton lunettes, Ouvrir produit correspondant .................................................................................9
4. DES FONCTIONS DANS LES CALCULS DES REQUETES .................................................................................................9
5. RESUME DES MACROS.............................................................................................................................................12

,167,7871$7,21$/32/<7(&+1,48(
(&2/(1$7,21$/(683(5,(85($*52120,48('(728/286(
$YGHO¶$JURELRSROH%3$X]HYLOOH7RORVDQ7HO
- ACCESS Travail dirigé : 10 -

&K1RXYHDXWpVGpMjLQWpJUpHV«
7DEOH3$5$0(75(6SRXUO DSSOLFDWLRQ
Il existe pour une application des YDOHXUV GH UpIpUHQFH à stocker dans XQH WDEOH
avec 1 seul enregistrement à plusieurs champs. Cette table n' est pas reliée aux autres
tables.
([HPSOH : Cours de l' ¼ HQ $, (nombre de points de base attribués à tous les
représentants pour une visite effectuée à un client…)
- Ces valeurs ne sont SDVFRQVWDQWHV donc on n' écrit pas (valeur en $= valeur en ¼ 
). On souhaite pouvoir PRGLILHU le cours de l' ¼HQ donc on range le cours de l'¼
dans un FKDPS de table et l' on souhaite pouvoir O DWWHLQGUH dans l'application.
- Ces valeurs ne concernent SDV XQ SUL[ SDUWLFXOLHU (prix du produit x, budget de
équipe y,…) mais sont FRPPXQHV à toutes les valorisations de l'
l' application donc
elles sont stockées en XQ VHXO H[HPSODLUH (1 seul enregistrement) et ne sont SDV
UHOLpHV à tel ou tel élément.
 (QUHJLVWUHUGHVSDUDPqWUHV
Donc création de la 7DEOHV 3DUDPqWUHV avec 1 seul enregistrement et autant de
champs que de paramètres (en vrac) à enregistrer:

 0RGLILHUGHVSDUDPqWUHV
La modification peut se faire directement dans la Table ou par un Formulaire.
 8WLOLVHUGHVSDUDPqWUHV
Pour accéder aux paramètres dans un
formulaire, il faut que celui-ci ait pour Source
une requête contenant les champs des
paramètres à utiliser.
Remarque: la table Paramètres dans la requête
n'est pas liée aux autres tables de la requête.
Remarque : 3$5$0(75(6 dans la requête
signifie tous les champs de la table.
Voir : depuis le menu, ' Représentant et ses
rôles d'entraîneur'puis le sous formulaire et sa requête en source : '55HSUpVHQWDQW
HW3$5$0(75(6 pour ce résultat >%XGJHW(XUR@ >&RXUV(XURHQ'ROODU@

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

,PDJHVGDQVGHV)RUPXODLUHVRX(WDWV
 ,PDJHVGH 'pFRUDWLRQ QRQVWRFNpHVGDQVXQHWDEOH
Exemple : Formulaire 3URGXLW dans O (QWrWH
agit de gérer une LPDJH IL[H pour WRXV OHV HQUHJLVWUHPHQWV
Il s'
d'un formulaire.
Cette image est GpILQLH GDQV XQ FRQWU{OH de type ,PDJH  à
gérer en mode assistant contrôle. Ensuite, définir la propriété 0RGH DIILFKDJH :
=RRP(pour remplir au mieux le cadre)
 ,PDJHVGH 'RQQpHV VWRFNpHVGDQVXQFKDPSGHWDEOH
Exemple : Formulaire 3URGXLW dans 'pWDLO
agit de gérer une LPDJHFKDQJHDQW à FKDTXHHQUHJLVWUHPHQW
Il s'
d'un formulaire.
Cette image est HQUHJLVWUpHGDQVXQFKDPS de type 2EMHW2/(
d'une table. (table Produit, champ Photo).
Cette image est affichée par XQFRQWU{OH du formulaire de type &DGUHG REMHW
GpSHQGDQW  (dépendant de chaque enregistrement). La source du contrôle est le
champ 3KRWR de la table. Gérer la propriété 0RGHDIILFKDJH : =RRP
La saisie peut se faire dans la table ou dans le formulaire, par clic droit sur la zone
d'image puis soit insérer un objet à partir d'
un fichier .BMP, soit par Coller.
Seul le format .BMP peut être utilisé et les fichiers .JPG (compressés) ne peuvent
être gérés d'
où un problème de taille de l' application.
Attention : 8 images .BMP de 500 Ko chacune = 4 Go de plus dans l' application !!!
Remarque : Pour minimiser la taille de l' application Access, on peut lier les images
(donner l'adresse du fichier-image sur le disque C?0HV,PDJHV?LPDJHEPS) au lieu
d'incorporer les images dans la base.
Attention dans ce cas si vous déplacez les images sur un autre disque avec un chemin
de dossiers différent (C?0HV'RFXPHQWV?&DWDORJXH?LPDJHEPS )…

&KDPSGHW\SH0pPRSRXUGXWH[WHORQJ
Le champ de type 7H[WH peut enregistrer 255 caractères au plus.
Le champ de type 0pPR peut enregistrer 65 535 caractères au plus.
Exemple : table 3URGXLW, champ &RPPHQWDLUHVOLEUHV.
Un contrôle de type =RQHGHWH[WH du formulaire Produit affiche le texte long.

&KDPSGHW\SH/LHQK\SHUWH[WHSRXUDFFpGHUj«
Le champ de type /LHQK\SHUWH[WHpeut enregistrer XQOLHQ vers:
une page web, un fichier sur disque, une adresse mail, un objet de la base de
données.
Exemple : table 3URGXLW, champ /LHQ:HE
Un contrôle de type =RQHGHWH[WH du formulaire Produit affiche le lien.

Remarque : /LHQVVXUODIRUPDWLRQj$FFHVV présents sur le Formulaire 0HQX 


OLHQVQRQVWRFNpVGDQVXQHWDEOH 
 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

&K7UDYDLOjIDLUH
6DLVLHSDUOLVWHGpURXODQWHVDQVWDEOHOLVWH
2EMHFWLI
Saisir la 9,//( des Client depuis une liste déroulante définie par les YLOOHV GpMj
VDLVLHV dans le formulaire &OLHQW
Si la ville n'
est pas présente dans la liste, il faut la saisir au clavier. La nouvelle ville
saisie au clavier doit immédiatement être disponible dans la liste déroulante.
3URFpGXUH
 &UpHUXQHOLVWH'pURXODQWH /' 
a) Créer une requête avec :
Champ : 9LOOH Table : &OLHQW Opération : 5HJURXSHPHQW Tri : &URLVVDQW
Exécuter, Enregistrer sous : 5/LVWHGHVYLOOHVSRXU/' et Fermer
b) Remplacer le contrôle zone de texte Ville du &OLHQW par un contrôle Liste
Déroulante ajouté en mode $VVLVWDQWFRQWU{OH avec :
Rechercher les valeurs GDQVXQHWDEOHRXUHTXrWH
Requête ; 5/LVWHGHVYLOOHVSRXU/'
Sélectionner 9LOOH pour Liste déroulante
Gérer la largeur de la liste
Stocker la valeur de la liste déroulante dans le champ 9LOOH
Etiquette : Ville Terminer
Nommer ce contrôle :/'9LOOHetgérer la mise en page du formulaire si besoin.
c) Exécuter
1) modification d' une ville d’un Client par saisie dans la liste déroulante
2) puis modification, pour ce même Client, de sa ville par saisie directe
au clavier d’une nouvelle ville (exemple DAX) car cette ville est non présente dans
la liste déroulante
3) puis, pour un autre Client, impossibilité de retrouver dans la liste
déroulante la ville de DAX saisie au clavier précédemment = Problème à gérer en
actualisant la liste à partir de son nom (/'9LOOH .
 $FWXDOLVHUOHVYDOHXUVG XQHOLVWHGpURXODQWH
Cette Actualisation sera faite dès que l' on (QWUH (clique) dans la liste déroulante.

Créer puis Associer la Macro )RUPXODLUHFOLHQW9LOOH$FWXDOLVHU/' à


l’événement 6XU(QWUpH (le curseur entre dans le contrôle)

$FWXDOLVHU  Nom contrôle :/'9LOOH

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

&RQWU{OH =RQHGHOLVWH SRXUVpOHFWLRQPXOWLSOH


JpUpHDYHFGHVUHTXrWHV0LVH$-RXURXHQ9%$
$/HIRUPXODLUH

       
           

Albi Pau
Toulouse Tarbes

%/D7DEOHGHVpOHFWLRQ
&&KURQRORJLHG H[pFXWLRQ«
Formulaire 6pOHFWLRQYLOOH

 0DFUR %7VpOHFWLRQ1GpVpOHFWLRQQHU7287(6 
Objectif : Désélectionner toutes les villes et
ouvrir le formulaire de sélection des villes
Liée à : Contrôle %7VHOHFWLRQ1 du Formulaire 6pOHFWLRQYLOOH
Evénement : 6XUFOLF
Contenu :
Avertissements Avertissement actif: Oui
OuvrirRequête R ville 1 MAJ désélectionner
toutes choix<=non
Avertissements Avertissement actif: Non
OuvrirFormulaire Selection villes multiples par Requetes MAJ

Remarque : on peut paramétrer Access pour les confirmations d'


opération :
dans Outils/Options/ModifierRechercher GpFRFKHU Confirmer : Modification/
Suppression/ Requête action.

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

3URSULpWpV

9LOOHV 9LOOHV
1RQ6pOHFWLRQQpHV 6pOHFWLRQQpHV

Albi
Pau
Tarbes
Toulouse

NonSelec Selection

 0DFUR =/1RQVpOHFWLRQQp(VpOHFWLRQQ(5 
Objectif : Affecter 28, à Choix dans la table ' Ville pour sélection'pour la ville
choisie et actualiser l'
affichage des 2 contrôles Zone de liste (2 listes de villes).
Liée à : Contrôle 1RQ6HOHF du Formulaire 6HOHFWLRQYLOOHVPXOWLSOHVSDU5HTXHWHV
0$-et de même avec
Evénement : 6XUGRXEOHFOLF et de même avec &/,& pour
Contenu :
OuvrirRequête R ville 2 MAJ sélectionner : choix<=oui
Actualiser Nom contrôle: NonSelec
Actualiser Nom contrôle: Selection

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -
 0DFUR =/6pOHFWLRQQp('pVpOHFWLRQQ(5 
Objectif : Affecter 121 à Choix dans la table ' Ville pour sélection'pour la ville
choisie et actualiser l'
affichage des 2 contrôles
Liée à : Contrôle 6HOHFWLRQ du Formulaire VHOHFWLRQYLOOHVPXOWLSOHVSDU5HTXHWHV
0$-et de même avec
Evénement : 6XUGRXEOHFOLF et de même avec &/,& pour
Contenu :
OuvrirRequête R ville 3 MAJ désélectionner : choix<=QRQ
Actualiser Nom contrôle: NonSelec
Actualiser Nom contrôle: Selection

 0DFUR %7/LVWHGHVFOLHQWVGHVYLOOHV2XYULU)RUPXODLUH 
Objectif : Ouvrir un formulaire Client basé sur une requête qui tient compte des
villes choisies (Choix=oui) dans la table '
Ville pour sélection'
Liée à : Contrôle Bouton ' BT Liste des clients'du Formulaire SHOHFWLRQ YLOOHV
PXOWLSOHVSDU5HTXHWHV0$-
Evénement : 6XUFOLF 
Contenu :
OuvrirFormulaire Clients sélectionnés par villes multiples

Lien tiré au niveau de la requête.


Pas de 1 et ∞ ici.
5HPDUTXH:on peut, dans une
requête, lier des tables et
requêtes et même requêtes et
requêtes.

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

'/HV)RQFWLRQVHQ9%$PRGLILHU 7DEOHSRXU/LVWH9LOOH 
Même travail que l' exemple précédemment avec du FRGH 9%$ pour
sélectionner une ville 1on6ésélectionnée.
Voici un exemple d' une Fonction VBA '16FOLFN()’ effectuant le même
traitement que la PDFUR =/ 1RQ VpOHFWLRQQp( VpOHFWLRQQ(5  et sa Requête de
mise à jour.
Vous n' avez rien à faire ici...
3ULYDWH)XQFWLRQ16FOLFN()
'en cas d'erreur, aller à l'étiquette error4 (en bas de function)
2Q(UURU*R7RHUURU

'Me = ce Formulaire lui-MEme
'column(0) = première colonne du contenu de la zone…
'de liste [Nonselect]=Liste des villes
'Monchoix$=la ville sélectionnée dans la colonne gauche [Nonselec]
0RQFKRL[ 0H>1RQ6HOHF@&ROXPQ  

'Dynaset=type de résultat d'une requête pouvant être mis à jour
'ds est la variable de type Dynaset
'LPGV$V'\QDVHWGE$V'DWDEDVH

'db est la variable correspondant à la base de données courante
6HWGE &XUUHQW'E 

'Recherche de l'enregistrement de [Table pour liste ville]…
'choisi par(Monchoix$) par une requête SQL Sélection (where)
6HW GV  GE&UHDWH'\QDVHW("VHOHFW  IURP >7DEOH SRXU /LVWH 9LOOH@
ZKHUH>9LOOHSRXUVpOHFWLRQ@ 0RQFKRL[ + "';")

'édition pour pouvoir modifier


GV(GLW
'modification à OUI du champ Choix de la table
GV>FKRL[@ 7UXH
'mis a jour du dynaset<=>[Table pour liste ville]
GV8SGDWH
'fermeture du dynaset
GV&ORVH
'Actualisation (Requery) des 2 listes de villes en fonction
'du nouveau contenu de [Table pour liste ville]
'pour nouvel affichage des 2 listes de villes.
'DoCmd pour exécuter la Commande d'actualisation Requery
'R&PG5HTXHU\1RQVHOHF
'R&PG5HTXHU\6HOHFWLRQ

([LW)XQFWLRQ'quitter la fonction
HUURU c'est une étiquette atteinte en cas d'erreur
0VJ%R[9RXVGHYH]FOLTXHUVXUXQQRP$WWHQWLRQ
([LW)XQFWLRQ
5HVXPH1H[W
(QG)XQFWLRQ

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

0DFURV2XYULU)RUPXODLUHDYHF&RQGLWLRQ:KHUH
Ajouter une macro au groupe de macros: *URXSH)DFWXUH
 0DFUR)DFWXUH6)%RXWRQOXQHWWHV2XYULUSURGXLWFRUUHVSRQGDQW
Objectif : Depuis le sous-formulaire Facture, Ouvrir le formulaire 3URGXLW en se
positionnant automatiquement sur le produit correspondant à celui de la ligne
est le contenu du contrôle de la liste déroulante 5HISURGXLW
courante de la facture. C'
(CLA001 par exemple) qui sera le critère de recherche.
Liée à : Contrôle Bouton de commande (à ajouter sans assistant contrôle) du
Sous-Formulaire )DFWXUH
Evénement : 6XUGRXEOHFOLF Champ de la
BoîteMsg Message: Détail du produit sélectionné... Table du
OuvrirFormulaire Nom formulaire: Produit formulaire à
&RQGLWLRQZKHUH: [Produit]![1XPSURGXLW] = ouvrir
Utiliser le
générateur Formulaires![Facture et ses produits 2 FP]![Facture et ses
d'expression produits 2 SF].Form![5HISURGXLW]
Contrôle du Formulaire de départ
$WWHQWLRQ à la syntaxe à partir du formulaire FP,
puis le contrôle du FP, puis le formulaire du contrôle, puis LE contrôle…

'HV)RQFWLRQVSRXUGHV5HTXrWHVHW)RUPXODLUHV
Dans des requêtes, nous avons déjà défini des &DOFXOV basés sur des contrôles,
champs et opérateurs arithmétiques en utilisant le générateur d'
expression.
7RWDOGXSURGXLW>4XDQWLWp@ >3UL[+7@ 3URGXLW>7DX[79$@ 
Dans des requêtes, nous avons déjà utilisé la puissance de la ligne 2SpUDWLRQ
permettant de gérer des 5HJURXSHPHQWV et de faire des calculs (6RPPH &RPSWH
0R\HQQH0LQ0D[3UHPLHU'HUQLHU«) sur les éléments regroupés et triés.

Nous allons maintenant ajouter dans des requêtes complexes l'


utilisation des
)RQFWLRQV9LVXDO%DVLFSUpGpILQLHV dans le Langage 9%$.
Les Fonctions VBA ont un nom Anglais et Français.
Le nom Anglais est reconnu partout alors que le nom Français est reconnu dans les
Requêtes, Formulaires, Etats et Macros PDLV SDV dans les Modules VBA et
SDVGDQVO $LGHHQOLJQH.
aide : Ouvrez le menu " / $LGHVXU0LFUR6RIW
- Pour rechercher une fonction dans l'
$FFHVV puis dans l'onglet 6RPPDLUH / 3URJUDPPHUHQ9LVXDO%DVLF / 5pIpUHQFHGX
ODQJDJH9LVXDOEDVLF / )RQFWLRQV (par ordre alphabétique anglais) ou bien à la place
de Fonction *URXSH ou ,QGH[OLVWH pour un classement thématique des fonctions.
Comme nous n' utilisons pas les modules, nous utiliserons le nom Français des
Fonctions, c'
est aussi celui que propose le Générateur d'
expression.

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

4XHOTXHVIRQFWLRQV9%$«
1RP)UDQoDLV Nom Anglais 5{OH
0DWKpPDWLTXH
5RXQG H[SQ  5RXQG  Arrondit une expression à n décimales
Round(10,129 ; 2) donne 10,13
(QW H[S  ,QW  Partie entière sans arrondir
Ent(10/3) donne 3
$OpDW  5QG  Nombre aléatoire compris entre [0 et 1[
Aléat() donne par exemple 0,658975546812358
'DWHKHXUH
'DWH  'DWH  Date du jour de l'
horloge de l'
ordinateur
Date() donne 22/12/04
7HPSV  7LPH  Heure courante
Temps() donne 09:12:59
0DLQWHQDQW  1RZ  Date et heure courante
3RUWLRQGHWHPSV
-RXU GDWH  'D\  Jour du mois (entre 1 et 31)
0RLV GDWH  0RQWK  Mois de la date (entre 1 et 12)
$QQpH GDWH  <HDU  Année de la date
+HXUH KHXUH  +RXU  Heure d'une heure complète: Heure(12:59:30) = 12
0LQXWH KHXUH  0LQXWH  Minute d'une heure complète: Minute(12:59:30) = 59
6HFRQGH KHXUH  6HFRQG  Seconde d'une heure: Seconde(12:59:30) = 30
-RXU6HP GDWH  :HHNGD\  Jour/semaine (entre 1 et 7), 7 = Dimanche en France
&DUDFWqUH
*DXFKH H[SQ  /HIW  Extrait n caractères à gauche d'
une chaine
Gauche("abcdef"; 3 ) donne "abc"
'URLWH H[SQ  5LJKW  Même chose à partir de la droite
'LYHUV
(VW1XOO H[S  ,V1XOO  Vrai si exp est Null (Vide) sinon Faux
9UDLIDX[  ,LI  Equivalent au Si( condition ; alors ; sinon ) d'
Excel
FRQGLWLRQ VraiFaux ( a=1 Et b=2 ; 5 ; 6 )
YDOHXU6L9UDL donne 5 si ( a=1 et b=2)
YDOHXU6L)DX[  donne 6 sinon
Utiliser des Fonctions dans des Requêtes.
Objectif: Effectuer des calculs concernant les visites des représentants.
Règle: Chaque visite est valorisée par un certain nombre de points quel que soit le
représentant. Ce nombre de points est stocké dans la table 3$5$0(75(6 dans le
champ %DVH3RLQWV9LVLWH 6L la durée de la visite >= 2 heures HW qu' elle n'
a pas lieu
un 'LPDQFKH , $ORUV le nombre de point calculé est le nombre d' heures de la visite x
%DVH3RLQWV9LVLWHx 26LQRQ %DVH3RLQWV9LVLWH(seulement).
On souhaite gérer le Total des points et compter le Nombre de visites regroupées
par 5HSUpVHQWDQW, par $Q, par 0RLV en utilisant des Fonctions VBA.

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -
Consulter la table 3$5$0(75(6pour voir la valeur de %DVH3RLQWV9LVLWH  
D  &UpHU XQH UHTXrWH EDVpH VXU OHV WDEOHV 9LVLWH HW 3$5$0(75(6 TXL VHUD OD
6RXUFHGXIXWXU)RUPXODLUH(voir en bas de page).
Ces 2 tables ne sont pas liées, c'
est normal. Gérer 5 colonnes pour cette requête.
Les 3 premières colonnes seront la base du 5HJURXSHPHQW et du 7UL:

La quatrième colonne calcule le nombre de points de chaque visite.


Elle utilise quelques Fonctions présentées ci-dessus.
Total points : 9UDL)DX[( SI
+HXUH([Durée visite]) >=2 Et -RXU6HP([Date visite];2) < >7 ; Condition double
Heure([Durée visite]) * [BasePointsVisite] * 2 ; Alors
[BasePointsVisite] ) Sinon

Les calculs 6RPPH et &RPSWH pour la quatrième et la cinquième colonne sont


effectués sur les enregistrements 5HJURXSpV par les 3 premières colonnes.

On compte les
lignes d’une
colonne
quelconque

E &UpHUXQ)RUPXODLUH
Maintenant que les résultats bruts
sont obtenus par la 5HTXrWH, nous
allons présenter dans un )RUPXODLUH
le bilan des visites et des points par
Représentant, An et Mois.
Créer un Formulaire sur la table
Représentant et sur la requête
précédente sans le champ 5HI
UHSUpVHQWDQW dans le sous-formulaire (inutile
sinon affiche Lespourcy).
 L' assistant formulaire détecte la possibilité
de faire un FP et un SF entre les 2 champs
Num représentant de la table 5HSUpVHQWDQW et
Ref représentant de la 5HTXrWH en se référant à
la fenêtre Relation.

Ajouter dans le pied du SF un contrôle =RQHGHWH[WH pour faire le Total général de


tous les points du Représentant avec pour Source 6RPPH >7RWDO3RLQWV@

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

5pVXPpGHV0DFURV
Rappel sur les $FWLRQV de Macros vues en TD:
6HGpSODFHUGDQVOHVGRQQpHV 7URXYHU6XLYDQW, 7URXYHU(QUHJLVWUHPHQW ,
$WWHLQGUH&RQWU{OH , $WWHLQGUH(QUHJLVWUHPHQW
$UUrWHUO H[pFXWLRQ $QQXOHU(YpQHPHQW ,4XLWWHU ,$UUrW7RXWHV0DFURV , $UUrW0DFUR
'pSODFHURXUHGLPHQVLRQQHUXQHIHQrWUH$JUDQGLU,
2XYULURXIHUPHUXQREMHWEDVHGHGRQQpHV)HUPHU ,2XYULU)RUPXODLUH , 2XYULU5HTXrWH ,
2XYULU(WDW
'pILQLUODYDOHXUG XQFKDPSG XQFRQWU{OHRXG XQHSURSULpWp 'pILQLU9DOHXU 
0HWWUHjMRXUOHVGRQQpHVRXO pFUDQ$FWXDOLVHU
$IILFKHUGHVLQIRUPDWLRQVjO pFUDQ%RvWH0HVVDJH , $YHUWLVVHPHQWV
(PHWWUHXQHWRQDOLWp%LS
5 $FWLRQV intéressantes non vues en TD sont commentées ci-dessous
5HVWUHLQGUHOHVGRQQpHV $SSOLTXHU)LOWUHpour appliquer le filtre d’une requête à des
données affichées
([pFXWHU([pFXWHU&RPPDQGHaction très puissante pour exécuter une commande parmi
toutes celles disponibles par tous les menus standards = 500 commandes environ de Actualiser à
Zoom en passant par Annuler, Aperçu, AtteindreSuivant, Copier, Coller, Imprimer, Sauvegarder, Supprimer …
([pFXWHU0DFURexécuter une macro depuis une macro, intéressant pour créer une boucle grâce
aux arguments 5pSpWHU&RPSWH ( = Pour) et 5pSpWHU([SUHVVLRQ ( = TantQue) Voir macro
([pFXWHU$SSOLFDWLRQexécuter une application Windows en donnant si besoin le ….
chemin de dossiers qui y mène:&?3URJUDP)LOHV?0LFURVRIW2IILFH?:25'(;(
,PSULPHUREMHW ,PSULPHU :imprimer l'objet en cours avec les options d'impression
h Penser à faire des JURXSHVGHPDFURV par thème (formulaire par exemple).
h Penser à choisir le bon pYqQHPHQW pour déclencher une macro
(voir Formulaire ' Produit TEST sur Evènements'de l' application des TD)
h Penser à la possibilité de gérer des FRQGLWLRQV ou des ERXFOHV dans les macros.

L'application 'HPRQVWUDWLRQ$FWLRQV0DFURPGE d' Hervé Inisan du livre


"5pIpUHQFH$FFHVV" illustre toutes les $FWLRQV de Macro par catégorie, avec un
test sur une application et accès au code. $ YRLU VXU OH VHUYHXU DYHF OHV
DSSOLFDWLRQVGXFRXUV

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -

$XWUHVWUDLWHPHQWV«
Formulaire 5HSUpVHQWDQWHWVHV9LVLWHV
 2SpUDWHXUGHFRQFDWpQDWLRQ 
=6XSSU(VSDFH([Nom représentant]) " " [Prénom Représentant]
 &RQYHUWLU+HXUHHQ0LQXWHV
Fonction 6WDQGDUG dans $FFHVV : +HXUH()
=Heure([Durée visite])*60+Minute([Durée visite])
D 'DQVXQFRQWU{OHGHIRUPXODLUH

E 'DQVXQHFRORQQHGH5HTXrWH

 7RWDOGX'pWDLOGDQVOH3LHGGX6)
D 6RPPHG XQ&RQWU{OHDYHFGpILQLWLRQGHFDOFXOImpossible
=Somme([FormDureeMn])
E 6RPPHG XQ&RQWU{OHDYHFFDOFXOGpILQLGDQVUHTXrWH3RVVLEOH
=Somme([ReqDureeMn])
 &RQYHUWLU0LQXWHVHQKHXUHV
Fonction 8WLOLVDWHXU dans un 0RGXOH9%$ :
='XUHH(Q+HXUHV([TotDuree])
 "!" - ./ .0  0  /
DureeEnHeures(#"$"%'&( DureeMin )+* , ) )1* 2
'Role : Retourner une chaine de caractères correspondant à une durée en Heures et Minutes
' à partir d'une Durée en minutes exemple : 65 Mn donne "1H05Mn"
34 5 Heure )1* , 4 . / .-0 , Minute )1* , -. / .0
'ENTREE : DureeMin : Durée en minutes (ex : 65)

Heure = DureeMin / 60
Minute = DureeMin 6
! 7 60 'Mod pour le reste de la division
DureeEnHeures = Heure 8 "H" 8
 !0 5 & :9 Minute, "00" ; 8 "Mn" 'Conversion implicite String
<7 " "!"
 8WLOLVHUOHV)RQFWLRQV9%$GH'RPDLQH
Formulaire 6WDWLVWLTXHVVXUO DSSOLFDWLRQ

 8WLOLVHUOHV5HTXrWHVSRXUOHVFDOFXOV
Formulaire 6WDWLVWLTXHVVXUO DSSOLFDWLRQ

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH
- ACCESS Travail dirigé : 10 -
 ,PSULPHU/$)DFWXUHFRXUDQWH
Voir formulaire Facture et ses produits
D &UpHU XQ (WDW EDVp VXU OD
WDEOH )DFWXUH  HQ WrWH HW VXU OD
UHTXrWH 5 )DFWXUH GpWDLO DYHF
XQ UHJURXSHPHQW SRXU IDLUH
GDQV 7RWDO )DFWXUH OD 6RPPH
GHVOLJQHV1RP)DFWXUH
E &UpHU XQ ERXWRQ GDQV OH
IRUPXODLUH )DFWXUH HW OXL DVVRFLHU OD PDFUR VXLYDQWH j DMRXWHU GDQV OH
JURXSHGHPDFUR)DFWXUH
OuvrirEtat Nom état: Facture
Affichage: Impression directe
&RQGLWLRQZKHUH: [Facture en tête]![1XPIDFWXUH]=
[Formulaires]![Facture et ses produits 2 FP]![1XPIDFWXUH]
Une mise en forme conditionnelle a été faite sur le contrôle 7RWDOGXSURGXLW.
Afficher un fond Jaune si la Valeur est > 500
Sélectionner le contrôle de l' Etat puis menu )RUPDW0LVHHQIRUPHFRQGLWLRQQHOOH
puis définir la &RQGLWLRQ et le )RUPDW.

 (16$7,QIRUPDWLTXH$SSOLTXpH 3DJH

Vous aimerez peut-être aussi