ACC2000 : Procédure pour créer un cumul par groupe à l'intérieur d'une requête

Niveau intermédiaire : exige une expertise élémentaire en termes de macros, programmation et d'interopérabilité.


Cet article s'applique uniquement aux bases de données Microsoft Access (.mdb).


Résumé

Cet article explique comment créer un cumul par groupe dans une requête Microsoft Access.

Plus d'informations

La méthode recommandée pour produire des cumuls par groupe consiste à créer un état Access. Cependant, vous pouvez produire des cumuls similaires dans une requête. L'exemple suivant explique comment créer un cumul sur un groupe d'éléments dans une requête Access.
  1. Ouvrez la base de données exemple Northwind.mdb.
  2. Créez la nouvelle requête suivante basée sur la table Products.

    Query: qryGrpRunSum
    -------------------
    Type: Select Query

    Field: CategoryID
    Table: Products
    Sort: Ascending

    Field: UnitsInStock
    Table: Products
  3. Sur la ligne Field de la troisième colonne de la grille de création de requête, tapez l'expression suivante :
    RunSum: fncRunSum([CategoryID], [UnitsInStock])
  4. Enregistrez la requête sous le nom qryGrpRunSum, puis fermez-la.
  5. Créez un nouveau module, puis tapez ou collez le code suivant :
    Option Compare Database
    Option Explicit

    Function fncRunSum(lngCatID As Long, lngUnits As Long) As Long
    'Variables qui conservent leurs valeurs.
    Static lngID As Long
    Static lngAmt As Long

    If lngID <> lngCatID Then
    'Si l'ID actuel ne correspond pas au dernier ID, (ré)initialisez.
    lngID = lngCatID
    lngAmt = lngUnits
    Else
    'Si l'ID actuel correspond au dernier, conservez un cumul pour l'ID.
    lngAmt = lngAmt + lngUnits
    End If

    'Transmet le cumul à la requête.
    fncRunSum = lngAmt
    End Function
  6. Enregistrez le module sous le nom modGrpRunSum, puis fermez-le.
  7. Dans la fenêtre Base de données, double-cliquez sur la requête qryGrpRunSum pour l'exécuter. Notez que la première colonne de la requête affiche les catégories, la deuxième les unités en stock et la troisième un cumul des unités en stock par catégorie.
IMPORTANT : Si vous faites défiler vers le haut ou vers le bas en mode Feuille de données, les valeurs du cumul peuvent changer. Ce comportement est prévisible avec ce type de requête Access et avec Microsoft Jet. S'il se produit, faites défiler jusqu'au groupe que vous voulez afficher, et appuyez sur la touche F9 à une ou deux reprises pour recalculer avec précision la somme pour le groupe qui est affiché. Vous pouvez également inclure des critères dans la requête pour retourner uniquement le groupe pour lequel vous voulez afficher un cumul.

Références

Pour plus d'informations sur le groupement d'enregistrements dans un état Access, cliquez sur Aide sur Microsoft Access dans le menu ? (Aide), tapez grouper des enregistrements dans un état dans le Compagnon Office ou l'Aide intuitive, puis cliquez sur Rechercher pour afficher les rubriques correspondantes.

Pour plus d'informations sur la création de cumuls dans un état Access, cliquez sur Aide sur Microsoft Access dans le menu ? (Aide), tapez calculer un cumul dans un état dans le Compagnon Office ou l'Aide intuitive, puis cliquez sur Rechercher pour afficher les rubriques correspondantes.
Propriétés

ID d'article : 205183 - Dernière mise à jour : 9 mars 2003 - Révision : 1

Commentaires