J'ai les éléments suivants: forme principale "client" d'une table "client". sous-formulaire "factures" avec champs "date facture", "montant facture" "ID client" etc. à partir d'une table "factures"Contrôle calculé sur le sous-formulaire basé sur l'enregistrement en cours
chaque fois que l'utilisateur clique ou passe à un enregistrement dans le sous-formulaire "factures". Je voudrais qu'un contrôle «total jusqu'à présent» calcule la somme du «montant des factures» jusqu'à ce que la date de l'enregistrement en cours soit «cliquée» ou sélectionnée.
-à-dire pour le client Microsoft avec factures: 1) 2 mai 09, 150 2 $) 3 mai 09, 200 3 $) 4 mai 09, 500
$ Si l'utilisateur clique sur enregistrement 2), « total donc loin » devrait afficher 350 $ Si l'utilisateur clique sur le disque 1), « jusqu'à maintenant » devrait montrer 150 $ Si l'utilisateur clique sur enregistrement 3), « jusqu'à maintenant » devrait montrer 850
$ Actuellement, je suis en utilisant la fonction DSum sur un événement "OnCurrent" dans le sous-formulaire "factures" pour définir la valeur "total jusqu'à présent". Cette méthode est-elle lente, inefficace?
Toute autre méthode plus simple, plus propre, plus élégante, plus rapide et plus efficace utilisant les fonctions d'accès au ms?
Je souhaite que le sous-formulaire "factures" affiche TOUTES les factures pour ce client, quel que soit l'utilisateur cliqué.
Si DSum() est lent, le bouclage de tous les enregistrements sera sûrement plus lent? –
Non - le recordsetclone est une copie en mémoire. DSUM fait une requête sur la base de données. –
Et c'est une copie des enregistrements déjà filtrés et récupérés dans le sous-formulaire, donc il ne va pas y avoir beaucoup d'enregistrements –