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’huiPour 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
- 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éer colonne avec expression à la place du nom de champ
- Pour calculer Montant qui est le prix fois la quantité, où Prix et Quantite sont des champs de la requête
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
- Peut aussi être faite par paramétrage
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: Paye Critère: Non
- Champ: Programme Critère: paramètre de sélection
- Répondre oui à demande de vérification
- Requête suppression
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