Vous êtes sur la page 1sur 3

Facult de Sciences Economiques et de Gestion Universit Lumire Lyon 2

UV 37 B TD Access 97 Fvrier 2000

Facult de Sciences Economiques et de Gestion Universit Lumire Lyon 2

UV 37 B TD Access 97 Fvrier 2000

Sance 3 : Requtes et fonctions


Construction de la base de donnes exemple Une socit de vente par correspondance souhaite effectuer quelques analyses statistiques sur les montants des commandes passes par les clients. Crer une base de donnes nomme vpc.mdb. Slectionner l'onglet Table de la fentre de Bases de donnes et crer une table intitule Ventes ayant la structure suivante : Champ N Vente N Client Date Nb Articles Montant Type de donnes Numro automatique Texte Date/Heure Numrique Numrique Proprits Cl primaire Taille : 5 caractres Valide si : 2 lettres suivi de 3 chiffres Format : jj/mm/aa Valide si : infrieure la date d'aujourd'hui Taille : Entier Format : Montaire

Cette requte peut tre effectue d'une seconde faon, l'aide d'un champ calcul. Crer une nouvelle requte CalculDate. Dplacer le champ astrisque de la table Ventes vers la grille de cration de la requte. Entrer l'expression [Date]>=Date()-5 dans le champ suivant. Renommer l'tiquette par dfaut (Expr1) du champ par Calcul. Ne pas afficher ce champ lors de la prsentation du rsultat de la requte. Enfin, imposer la valeur logique Vrai dans la proprit Critres du champ Calcul. (Voir la figure ci-dessous). Le champ Calcul est calcul partir du champ Date : [Date] signifie que le champ calcul rutilise le champ nomm Date. Date() est un appel la fonction Date(). Seuls les enregistrements pour lesquels l'expression [Date]>=Date()-5 est vraie sont considrs.

Enregistrer et fermer la table. Saisie des donnes Ouvrir la table Ventes et saisir les donnes suivantes :

Fonctions Somme, Moyenne, Min et Max Crer la requte suivante : Afficher le total des montants, suivi du montant moyen et des montants minimum et maximum perus la date d'aujourd'hui. La requte doit comporter quatre champs calculs tiquet Somme actuelle, Montant moyen, Montant minimum et Montant maximum. Chacun de ces champs utilise l'expression [Montant]. Puis, cliquer sur le bouton Oprations de la barre d'outils. Slectionner la fonction adquate chacun des champs (Somme, Moyenne, Min ou Max) dans la proprit Opration qui vient d'apparatre dans la grille. Enregistrer la requte sous le nom CalculMontants et l'excuter. Fonction de regroupement Crer la requte suivante : Afficher le total des montants perus aujourd'hui. La requte Montant du jour comportera le champ Date et un champ calcul tiquet Somme du jour. Indiquer une opration de Regroupement et un critre =Date() pour le champ Date. En ce qui concerne le champ calcul, les valeurs de ses proprits sont les mmes que celles de la requte prcdente (Opration = Somme). Excuter la requte. De la mme faon, crer la requte suivante : Afficher le total des montants par client. La requte Montant par client comportera le champ N Client et un champ calcul Total Client. Rutilisation de champs calculs Crer la requte suivante : Calculer le montant moyen en euros partir de celui en francs. La requte Montant moyen euro est construite laide de deux champs calculs Montant moyen F et Montant moyen Euro. Ce dernier utilise le champ calcul Montant moyen F dans l'expression qui le dfinit. Affectation dune fonction VBA Utiliser une fonction VBA personnalise pour formuler la requte prcdente.

Champs calculs dans une requte Slectionner l'onglet Requtes de la fentre de Bases de donnes. Crer une requte de slection permettant d'obtenir la liste de tous les achats effectus depuis 5 jours. Pour cela, utiliser la fonction Date() dans la cellule approprie de la ligne Critres. pour excuter la requte. Nommer cette requte SlectionDate. Cliquer sur le bouton Le rsultat est reprsent ci-dessous pour le cas o la date du jour est le 13/02/00 :

Facult de Sciences Economiques et de Gestion Universit Lumire Lyon 2

UV 37 B TD Access 97 Fvrier 2000

Facult de Sciences Economiques et de Gestion Universit Lumire Lyon 2

UV 37 B TD Access 97 Fvrier 2000

Crer une fonction VBA, convertissant un montant en francs en un montant en euros : Slectionner la commande Module du menu Insertion. Puis activer Insertion/Procdure Dans la bote de dialogue intitule Insertion de procdure, nommer la fonction ConversionFE et activer loption Fonction. Cliquer sur le bouton OK. Insrer alors le code de la fonction dans la fentre Module. Enregistrer le module sous le nom ModuleVentes. Code de la fonction : Le code de la fonction admettra un paramtre de type Single et renverra le montant sous la forme d'une chane textuelle String afin de permettre le formatage personnalis des donnes rsultats affiches par le champ. Appeler la fonction prdfinie Format() et passer comme valeur de son second paramtres la chane suivante (guillemets inclus) : "##,##0.00 \euros". Cration de la requte : Activer de nouveau la fentre de base de donnes par le menu Fentre, commande 1 VPC :Base de donnes. Crer une requte Montant euro VBA qui fait alors appel la fonction ConversionFE en construisant l'expression de calcul du champ l'aide du gnrateur d'expression. Excuter la requte. Code SQL des requtes Les requtes cres sont automatiquement traduites par Access dans le langage SQL. Lorsqu'une requte est ouverte (en mode cration ou en mode feuille de donnes), le code SQL correspondant cette requte est tout moment accessible par la commande SQL du menu Affichage. Autres requtes Calcul des seuils au del desquels une remise est accorde aux clients. Crer une requte CalculRemises comportant deux champs calculs SeuilSup et SeuilInf calculant respectivement les montants gaux 80 et 70% du montant maximal command. Calcul du prochain taux de remise accords aux meilleurs clients. Crer une requte CalculMontantsRemise affichant les champs N Client, N Vente, Date, Montant et comprenant un champ calcul nomm Montant aprs remise. Ce champ calcul affiche la valeur du montant aprs dduction d'une ventuelle remise. Il fait appel une fonction personnalise CalculRemise. Cette dernire effectue une remise de 20% pour les montants suprieurs au SeuilSup et de 10% aux montants suprieurs au SeuilInf. Utiliser une condition logique de type If Then EndIf ou Select Case Case End Select.

Les expressions peuvent aussi utiliser des oprateurs : Saisie Pas C* >0 F Et <500 F Dans("Mme";"Melle"); Entre Date() Et Date()-2 Oprateur Pas Et Dans() Entre Et Rsultat La valeur ne commence pas par C La valeur est suprieure 0 F et est infrieure 500 F La valeur appartient l'ensemble de valeurs ("Mme","Melle") La valeur est une date comprise entre aujourd'hui et il y a deux jours

Dfinition des champs calculs Les champs calculs se dcomposent en deux parties spares par le caractre ":" Nom du champ : Expression de calcul Par dfaut le Nom du champ est Expr1. L'expression de calcul est une expression mathmatique pouvant contenir les oprateurs +, -, *, /. Cette expression peut tre base sur des donnes, mais peut aussi rutiliser des champs. Les noms de champs doivent alors tre spcifis entre crochets. Champ calcul Expr1 : Date() Rsultat

Le champ Expr1 affiche tous les enregistrements dat d'aujourd'hui Intrt : [Avoir] * 5% Le champ Intrt calcule un intrt de 5% partir du champ Avoir NouvelAvoir : [Avoir] + [Intrt] Le champ NouvelAvoir rutilise le champ calcul Intrt. Sortie1 : [Nom]&" "&[Prnom] Le champ Sortie1 regroupe les champs Nom et Prnom en une seule colonne sparant leurs valeurs respectives par un espace.

Liste des principales fonctions Slectionner Somme Moyenne Minimum Pour trouver Le total des valeurs dans un champ. La moyenne des valeurs dans un champ. La valeur la plus petite dans un champ. La valeur la plus grande dans un champ. Le nombre de valeurs dans un champ, sans compter les valeurs Null (vides). Utiliser des champ de type Nombre, Date/Heure, Montaire, et NumroAuto Nombre, Date/Heure, Montaire, et NumroAuto Texte, Nombre, Date/Heure, Montaire, et NumroAuto Texte, Nombre, Date/Heure, Montaire, et NumroAuto Texte, Mmo, Nombre, Date/Heure, Montaire, NumroAuto, Oui/Non, et Objet OLE Nombre, Date/Heure, Montaire, et NumroAuto Nombre, Date/Heure, Montaire, et NumroAuto

Expression des critres Il existe de nombreux formats d'expressions. En voici une liste non exhaustive : Saisie Dupont 100 >1 <=1 jan 97 Vrai Null Affichage "Dupont". 100 >1 <=#01/01/97# Vrai Null Rsultat La valeur est Dupont La valeur est 100 La valeur est plus grande que 1 La date est gale ou prcde le 1er Janvier 1997 La valeur est gale Vrai La valeur est nulle Maximum Compte

Ecartype Variance

L'cart type des valeurs dans un champ. La variance des valeurs dans un champ

Facult de Sciences Economiques et de Gestion Universit Lumire Lyon 2

UV 37 B TD Access 97 Fvrier 2000

Sance 3 : Requtes et fonctions


Rponses SlectionDate CalculDate

CalculMontants

Montant du jour

Montants par client

Montant moyen euro

Montant euro VBA

Code de la fonction VBA


'Fonction de conversion d'un montant en francs vers un montant en euros Public Function ConversionFE(MontantF As Single) As String ConversionFE = Format(MontantF / 6.55957, "##,##0.00 \euros") End Function