Demande d'aide pour un module assez chaud

Le
Sonia
Bonjours

Je souhaiterai réaliser un ensemble d'opération spécifique (Calcul, Sélection et suppression de lignes enregistées dans des tables) au moyen d'un module Unique afin d'insèrer les résultats dans une requête Requête Résultat

Type d'opération à réaliser dans le module unique

Je sais faire les calculs et la sélection automatique grace au code de PIERRE (merci à lui)
Par contre, je n'arrive pas introduire des critères Spécifique ( If Then Else et la supresion de lign
dans un table )

Presentation du SBG

Pour cette opération, j'utilise trois Tables et deux Requêtes et notre module UNIQU

1) Table : Prix de Base: (Cette Table sert de base aux calculs du prix variant (Voir plus loin) et Pourcentage baisse

Elle contient deux Champs Exempl
Champ 1 : N°article : Numérique : 1
Champ 2 : Prix Unitaire de Base : Monétaire : 100
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Xavier HUE
Le #5081731
Bonjour Sonia,

Pour t'aiguiller, car je n'ai pas décortiquer tes
procédures.

Lorsque tu écrit:
MaVariable = DSum(...)
C'est comme si tu écrivait en SQL
SELECT SUM(...) ...

Regarde dans l'aide d'Access, les différentes façon
d'interroger un domaine (DFirst, DSum, DCount, DLookup)

Donc dans ta fonction FnMeilleurPrix, tu devrais pratiquer
comme dans tes premières fonctions, par exemple:

LePrix = DLookUp("[Prix E]" , "[Meilleur
Prix]", "N_Article =" & MaN_Article)

Pour l'insertion, dans une table, tu dois passer par une
requête "Insertion" préenregistrée, ou bien par
l'instruction

DoCmd.RunSQL "INSERT INTO TaTable ..."

Et pour finir, je te conseille vivement de ré-écrire tes
fonctions. Ecrites ainsi, c'est assez difficile à suivre,
avec tous ces Nz(DSum(..)) imbriqués.
Personnellement, je ferais plutôt ainsi:
Dim PrixUnitaire As Long
Dim PrixVariantBase As Long
Dim PrixVariantE As Long
...
PrixUnitaire = Nz(dsum("[Prix Unitaire de Base]", "[Prix
de Base]", "N_Article =" & MaN_Article))
PrixVariantBase = Nz(dsum("[Prix Variant Base]", "[Prix
Variant E]", "N_Article =" & MaN_Article))
...
fnPrixVariant = PrixUnitaire + PrixVariantBase / ...

Beaucoup plus lisible à mou goût.
Pense à la maintenance.
Que ce soit toi, ou une autre personne, le code doit
pouvoir se lire le plus facilement possible.

Cordialement.
Publicité
Poster une réponse
Anonyme