Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Demande d'aide pour un module assez chaud

1 réponse
Avatar
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

1 réponse

Avatar
Xavier HUE
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.