Autres requêtes Microsoft Access

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

Microsoft-Access-requete-selection datediff 1

Microsoft-Access-requete-selection datediff 2

  • 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.

creation Module objet microsoft Access

  • 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

Microsoft-Access-requete-mise-a-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

Microsoft-Access-requete-mise-a-jour 2

  • 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

Microsoft-Access-requete-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

Microsoft-Access-requete-calcul-du-max-min-nombre-somme-moyenne

Microsoft-Access-requete-calcul-du-max-min-nombre-somme-moyenne 2

Microsoft-Access-requete-calcul-du-max-min-nombre-somme-moyenne 3

Leave a Reply