Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Discussion fermée Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2007, 21h30   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 2
Points : 1
Points : 1
Par défaut CATEGORISER mes clients

Salut je suis débutant en ACCESS,je crée une base des données pour gérer la caisse d'un commerce,il s'est fait que des reductions sont accordés à certains clients alors j'ai crée un champ CATEGORIE pour differencier les clients et ce champ est utilisé comme clé primaire,categorie A pour à qui une réduction de 10% est accordeé, categorie B pour ceux de 20% et C pour ceux de 30% et je voudrais qu'au niveau du formulaire FACTURE CLIENT qui est à imprimer ces calculs puissent s'opérer automatiquement au niveau du pied de formulaire aprés que je choisi la catégorie du client,comment faire?
kash 30 est déconnecté   Envoyer un message privé 00
Vieux 06/09/2007, 11h29   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Bonjour,

3 méthodes possibles :

Méthode statique.
Les taux de remises sont écrites directement dans le code.

Code :
= montant - (montant * iif(categorie like "A";0.1;iif(categorie like "B";0.2;0.3)))
montant est le champ contenant la somme.
categorie est le champ contenant la catégorie client (celui-ci doit

2 inconvénients :
l'imbrication des iif qui peut prendre des proportions avec la quantité de catégorie.
l'obligation d'éditer le code lorsque que l'on ajoute ou change une catégorie.

Note qu'avec une catégorie numérique 1 au lieu de A, 2 au lieu de B... on peut utiliser Choose() qui se réduit à une fonction au lieu d'une par catégorie -1.

Méthode paramétrée.
Cette méthode a 2 avantages :
L'ajout, la modification, la suppression de catégorie peut se faire par l'utilisateur, pas de code à modifier.
Pas d'imbrication de iif().

Inconvénient :
On doit créer une table supplémentaire pour gérer les remises.
Table : tbl_param
Champ 1 : param (texte 1) contient A, B, C
Champ 2 : valeur (double) contient la remise sous forme 0.1, 0.2...

Code :
=Montant - (Montant * dlookup("Valeur";"tbl_param";"Param like " & Categorie))
3ème méthode
De loin la plus simple.
Catégorie ne contient pas A B ou C mais directement 1, 2, 3 (la valeur de la remise * par 10)

Code :
=Montant - (Montant * Categorie/10)
Après on peut faire des variantes avec VBA, un tableau... est-ce vraiment la peine.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé 00
Vieux 07/09/2007, 20h58   #3
Invité de passage
 
Inscription : septembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 2
Points : 1
Points : 1
Par défaut THANK YOU

Merci beaucoup LOUFAB,j'ai essayé la 3ème méthode et ça marche à merveille
kash 30 est déconnecté   Envoyer un message privé 00
Discussion fermée Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h34.


 
 
 
 
Partenaires

Hébergement Web