Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

ACC2000 : exemple de fonction pour créer une somme en cours d'exécution sur un formulaire

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 210338
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Modéré : nécessite macro base, codage et compétences de l'interopérabilité.

Résumé
Cet article explique comment créer une fonction définie par l'utilisateur exemple pour calculer un cumul dans un formulaire.
Plus d'informations
Une pour calculer un cumul dans un formulaire consiste à utiliser la fonction DSum() . Pour plus d'informations sur l'utilisation de la fonction DSum() pour calculer un cumul dans un formulaire, consultez l'article suivant dans la Base de connaissances :
210495 ACC2000 : comment utiliser DSum pour créer une somme en cours d'exécution sur un formulaire
L'utilisation de la méthode démontrée dans cet article présente les avantages suivants sur l'aide de la fonction DSum() :
  • La méthode présentée dans cet article ne nécessite pas un champ séquentiel. Un champ de code séquentiel obligatoire vous limite à calculant une somme en cours d'exécution utilisant un seul classement de vos enregistrements.
  • L'utilisation de la méthode démontrée dans cet article est beaucoup plus rapide qu'utilisant la fonction DSum() pour calculer un cumul.

Création et utilisation de la fonction RunSum()

Microsoft fournit des exemples de programmation pour illustration uniquement, sans garantie explicite ou implicite. Cela inclut, mais n'est pas limité aux garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté et les outils qui sont utilisés pour créer et déboguer des procédures. Les techniciens du support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne sont pas modifier les exemples en vue de fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques. Remarque : le code d'exemple dans cet article utilise des objets Microsoft Data Access. Pour ce code s'exécute correctement, vous devez référencer la bibliothèque d'objets Microsoft DAO 3.6. Pour ce faire, cliquez sur Références dans le menu Outils dans Visual Basic Editor et assurez-vous que la case à cocher Bibliothèque d'objets Microsoft DAO 3.6 est activée.

  1. Ouvrez la base de données exemple Comptoir.mdb sera modifiée. Créez un nouveau module et tapez la ligne suivante dans la section Déclarations si elle n'est pas déjà présente :
    Option Explicit
  2. Tapez le code suivant dans le module :
    Function RunSum (F As Form, KeyName As String, KeyValue, _  FieldToSum As String)'***********************************************************' FUNCTION: RunSum()' PURPOSE:  Compute a running sum on a form.' PARAMETERS:'    F        - The form containing the previous value to'               retrieve.'    KeyName  - The name of the form's unique key field.'    KeyValue - The current record's key value.'    FieldToSum - The name of the field in the previous'                 record containing the value to retrieve.' RETURNS:  A running sum of the field FieldToSum.' EXAMPLE:  =RunSum(Form,"ID",[ID],"Amount")'***********************************************************   Dim RS As DAO.Recordset   Dim Result   On Error GoTo Err_RunSum   ' Get the form Recordset.   Set RS = F.RecordsetClone   ' Find the current record.   Select Case RS.Fields(KeyName).Type      ' Find using numeric data type key value?      Case DB_INTEGER, DB_LONG, DB_CURRENCY, _         DB_SINGLE, DB_DOUBLE, DB_BYTE         RS.FindFirst "[" & KeyName & "] = " & KeyValue      ' Find using date data type key value?      Case DB_DATE         RS.FindFirst "[" & KeyName & "] = #" & KeyValue & "#"      ' Find using text data type key value?      Case DB_TEXT         RS.FindFirst "[" & KeyName & "] = '" & KeyValue & "'"      Case Else         MsgBox "ERROR: Invalid key field data type!"         GoTo Bye_RunSum   End Select   ' Compute the running sum.   Do Until RS.BOF      Result = Result + RS(FieldToSum)      ' Move to the previous record.      RS.MovePrevious   LoopBye_RunSum:   RunSum = Result   Exit FunctionErr_RunSum:   Resume Bye_RunSumEnd Function
  3. Créez la requête suivante en fonction de la table Commandes et la requête Sous-totaux commande. Enregistrer la requête en tant que qryOrders :
       Query: qryOrders   ------------------------------------------------------   Type: select query   Join: Orders.[OrderID] <->; [Order Subtotals].[OrderID]   Field: OrderID      Table: Orders      Sort: Ascending   Field: Subtotal      Table: Order Subtotals
  4. Utiliser l'Assistant Formulaire pour créer un nouveau formulaire basé sur la requête qryOrders. Inclure les champs du formulaire. Dans l'écran suivant cliquez sur tabulaire .
  5. Ajouter une zone de texte avec les propriétés suivantes au nouveau formulaire :
       Name: RunningSum   ControlSource: =RunSum([Form],"OrderID",[OrderID],"Subtotal")   Format: Currency
  6. Enregistrez le formulaire et puis affichez-la en mode formulaire.
  7. Sélectionnez les enregistrements différents utilisant le sélecteur d'enregistrement. Notez que le champ Cumul affiche un total cumulé en fonction du champ sous-total.
total du fichier inf

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 210338 - Dernière mise à jour : 12/05/2015 11:30:05 - Révision : 2.2

Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowto kbprogramming kbusage KB210338 KbMtfr
Commentaires