Cours programmation Access

Précédente      Contenu     Suivante
Les Requêtes ...suite






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: Paye Critère: Non

      • 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





















    Haut de la page