Les Requêtes ...suite
en date de :
Calculs avec des dates
- On peut comparer des dates avec les opérateurs de comparaison:
< #1975-01-01# signifie: avant 1er janvier 1975
#1980-01-01# > #1979-01-01# retourne VRAI
- Les fonctions NOW( ) et MAINTENANT( ) retournent le moment actuel, la date et l'heure
La fonction DATE( ) retourne la date seulement
La fonction TIME( ) retourne l'heure seulement
- On peut faire des calculs arthmétiques avec des dates, mais seulement en jours:
#2004-02-02# + 3 retourne 2004-02-05
maintenant( ) - 60 retourne la date 60 jours avant aujourd'hui
Pour faire des calculs avec des mois, années, etc., il faut utiliser les fonctions appropriées, comme la suivante:
- La fonction DATEDIFF("interval"; date1; date2) retourne l'interval de temps entre 2 dates
l'interval "j" retourne le résultat en jours
l'interval "aaaa" retourne le résultat en années
l'interval "m" retourne le résultat en mois
- La fonction INT( valeur) tronque un résultat en gardant seulement la partie entier:
par exemple, 19.95 devient 19
- La fonction ROUND( valeur, n) arrondie le résultat à n chiffres après le décimal:
par exemple, 19.9578354 devient 19.96
- Notez qu'on peut parfois faire des comparaisons d'âge sans calculer l'âge: plus la date est petite, plus la personne est vieille
pour trier en ordre croissant d'âge, on affiche en ordre décroissant de date de naissance
Calculs dans une requête
- Dans requête sélection,
calculer âge du client d'après sa date
de naissance
- Choisir colonne pour expression
- Donner titre à colonne avec les deux points :
- À la place du nom de champ,
écrire
- Age: INT(DATEDIFF("j"; [c_daten]; NOW( )) / 365.25)
- Vous remarquerez peut-être que la fonction est écrite de façons différentes dans les exemples - si vous travaillez avec le logiciel français vous pouvez utiliser le nom français d'une fonction, DIFFDATE(), ou le nom anglais DATEDIFF() et Access le traduira en français - cependant, avec le logiciel anglais vous ne pouvez pas utiliser les noms français
 Fig. 5-1
- Notez que les noms de champs utilisés
dans des calculs doivent être entre [ ]
- Pour calculer Montant qui est le prix
fois la quantité, où Prix et Quantite sont des champs de la requête
- Créer colonne avec expression
à la place du nom de champ
- Montant: [Prix] * [Quantite]
Création d'un module
- Une autre technique, qui est encore plus exacte, consiste à créer un module.
- Le Module est un objet d'Access qui contient du code; le module n'a pas d'interface graphique; il sert à contenir les fonctions ou procédures qui sont utilisées par les autres objets de l'application.
- Le code dans un module peut être exécuté par n'importe quelle requête ou formulaire de l'application.

Voici le code en texte:
Option Compare Database
Function Age(DOB As Variant)
If IsDate(DOB) Then
Age = DateDiff("yyyy", DOB, Now) + _
(DateSerial(Year(Now), Month(DOB), Day(DOB)) > Now)
End If
End Function
Un peu plus sur les fonctions
- La fonction est écrite en Visual Basic
- On doit déclarer les paramètres qu'on passe à la fonction
- Le nom du paramètre n'est pas important - c'est le data type qui compte
Les data types de base: String, Single, Double, Date, Boolean, Variant
- Le résultat final doit être mis dans une variable qui est le nom de la fonction
Par exemple, si la fonction est Age( ... ), le résultat final doit être: Age = ......
Requête Mise à jour

- Sert à faire des changements, corrections, modifications sur certains enregistrements de la table
- Contient seulement deux champs:
- le champ qui détermine quels
enregistrements seront modifiés (le critère)
- le champ qui décrit le changement
à faire (la mise à jour)
- On clique sur requête - nouveau
- On clique sur bouton m à
j
- Pour augmenter le montant de frais
de 15% pour ceux qui ne sont pas d'Ottawa
- Critère: PAS Ottawa dans
champ Ville
- M à j: [Montant] * 1.15 dans
champ Montant
 Fig. 5-2
- Peut aussi être faite par
paramétrage
- Réf: GL pages 316-318
Requête suppression
- Cliquer sur requête nouveau
- Cliquer sur bouton supression
- Contient seulement un champ - le
critère qui détermine lesquels seront supprimés
- Pour enlever tous ceux d'un programme
quelconque qui n'ont pas payé:
- Requête suppression
- Champ: Programme Critère:
paramètre de sélection
- Répondre oui à demande
de vérification
 Fig. 5-3
Regroupements
- Faire une requête sur un groupe
d'enregistrements
- Il faut que le groupe aie quelque-chose
en commun
- Eg: sur ville, programme, sexe mais,
pas sur numero d'étudiant (il y a un seul étudiant
par groupe!)
- on peut utiliser les fonctions statistiques
sur les groupes:
moyenne, somme, max, min, nombre
- Pour créer un groupe on utilise
la ligne "Opérations"
- On spécifie regroupement
pour le champ approprié
- On ajoute une colonne pour expression
avec la fonction requise



|