[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes Access des débutants - Problèmes Access des débutants


clos par 3Stone le 24/03/2011 : 16:37  Sujet n° 445  afficher la valeur conditionnelle d'un champ

le 21/12/2010 : 15:58
par Gilles

Anonyme

visiteur

Bonjour,Nous avons créer un petite application de gestion de stock ,le probléme rencontré se trouve au niveau de la saisie des qtées.Car l'orsque l'article est en vrac pas de probléme la qté est de 1,dans les autres cas , dans le code article ,figure la qté par carton qui peut être différente pour chaque carton.le formulaire est composé comme suit : code article , désignation , qtédans excel ceci fonctionne trés bien : SI(A1=8000;20;SI(A1=5000;5;SI(A1=4000;10;1)))comment l'adapter dans access et ou l'écrirecordialement Gilles
 sujet clos  Haut
Réponse n° 1
--------
le 21/12/2010 : 16:58
par 3Stone

Anonyme

Administrateur

Bonjour,
 
Citation :

dans excel ceci fonctionne trés bien : SI(A1=8000;20;SI(A1=5000;5;SI(A1=4000;10;1)))

 
Il ne faut surtout pas avoir une approche "Excel" dans Access!
Excel n'est pas une base de données et ne possède pas de table pour l'organisations et stockage des données.

 
Citation :

Car l'orsque l'article est en vrac pas de probléme la qté est de 1,dans les autres cas , dans le code article ,figure la qté par carton qui peut être différente pour chaque carton.

 
C'est là qu'intervient l'analyse préable à la contruction d'une base de données!

L'organisation dépend aussi de la manière ces articles sont retirés du stock. S'il sont toujours retirés à la pièce (par opposition à "par carton"), le plus simple est alors de gérer directement des unités.
 
Citation :

SI(A1=8000;20;SI(A1=5000;5;SI(A1=4000;10;1)))

 
Ce qui ne veut strictement rien dire dans une gestion de stock d
Qu'est-ce-que A1, 8000, 20, etc. ??

Pour construire une base de données, il y a quelques règles qu'il est nécessaire de respecter, sans quoi rien ne peut fonctionner. A lire absolument.

Lorsque les tables auront été correctement réalisées, tu auras probablement:
  • une table T_Articles avec CodeArticle, description, etc.
  • une table T_Conditionnement avec CodeConditionnement, CodeArticle, NombreUnite
  • ainsi que les tables fournisseurs, etc.

En placant les différents conditionnements dans une table séparée, cela permet de ne faire apparaitre les articles qu'une seule fois dans la table T_Articles. Mais cela permet surtout d'ajouter autant de conditionnements que souhaités pour chaque article.

Dans le formulaire de saisie, une petite liste déroulante permettra alors de faire le choix selon le "carton" à saisir. Tout cela sans le moindre test "à la Excel..."

Cordialement,
Pierre(3stone)
  clos par 3Stone le 24/03/2011 : 16:37  Haut
Réponse n° 2
--------
le 21/12/2010 : 17:35
par Gilles

Anonyme

visiteur

Bonsoir,

la formule excel était juste pour l'exemple de ce qu'on voudrais faire le A1 serait remplacé par un champ à créer du genre Feet .Sur l'étiquette du carton il y a un code barre qui indique cette longueur,on voudrait par la suite le scanner et le convertir en unité par carton soit :8000=20 , 5000=5 , 4000=10 , on peut aussi le faire manuellement,avec un scanner ça limite les erreurs de saisie au niveau des qtées

Cordialement

Gilles

Ecrire à Gilles   clos par 3Stone le 24/03/2011 : 16:37  Haut
Réponse n° 3
--------
le 21/12/2010 : 18:25
par 3Stone

Anonyme

Administrateur

Bonjour,

Le fait de lire avec un scanner code-barres ne change rien à l'organisation des données, mais n'intervient qu'à l'organisation et présentation du formulaire de saisies.
D'ailleurs, lors d'une panne du scanner, il faut tout de même pouvoir saisir!
Donc, soit on scanne la valeur 5000, soit on sélectionne cette valeur dans la liste, mais dans les deux cas, ce sera 5 qui est sauvé.
 
Citation :

Sur l'étiquette du carton il y a un code barre qui indique cette longueur,on voudrait par la suite le scanner

 
Si une étiquette est destinée spécialement à la "longueur", on est bien dans le cas de saisie séparée.
 
Citation :

et le convertir en unité par carton soit :8000=20 , 5000=5 , 4000=10

 
C'est justement ce qu'il ne faut pas faire par code d

Si le conditionnement vient à changer dans le futur, cela demanderai à revoir tout le code de la base. Ces valeurs doivent se retrouver dans une table (que j'avais nommé T_Conditionnement), ce qui permet d'ajouter simplement de futurs conditionnements, quels que soit l'article et leur valeur.

Ainsi, à la lecture du code "8000", il suffit de récupérer la valeur correspondante. Ici, ce sera "20".

Que ferais-tu si tu avais 10.000 articles ayant jusqu'à 10 conditionnements différents ?  Je n'oses penser au code nécessaire y

L'organisation correcte des données permet de ne jamais plus toucher au code de la base, ni à son organisation, on ne fait que de la saisie est des mises à jour.

Cordialement,
Pierre(3stone)
  clos par 3Stone le 24/03/2011 : 16:37  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut