1 membre
Connectés : ( personne )
- La Charte du Forum - Forum - Problèmes Access des débutants
Sujet n° 439 |
formulaire pour effacer en masse |
le 14/12/2010 : 09:42 par Marc
visiteur |
Bonjour,suite au sujet no .412,maintenant je souhaiterais pouvoir effacer de la base certains enregistrements,mais je voudrais le faire en masse,c'est à dire saisir plusieur codebarre dans un formulaire et les effacer d'un seul coup,donc je cherche à construire un formulaire qui me permettrait de creer une ligne supplémentaire automatiquement comme dans un sous formulaire est-ce possiblemerci Marc |
|
|
Réponse n° 1 -------- le 14/12/2010 : 17:01 par 3Stone
Administrateur
|
Bonjour,
Comme déjà dit et répété, je ne peux valider l'approche que tu as choisie.
Citation : Marcmais je voudrais le faire en masse,c'est à dire saisir plusieur codebarre dans un formulaire et les effacer d'un seul coup
En fait, un nouvel exemple qui illustre cela.
Pour mettre ta méthode en oeuvre, il faut donc un formulaire (continu),
ainsi qu'une table temporaire pour la mémorisation. Ensuite, pour
effacer "d'un seul coup", il faut en réalité une requête qui supprimera
effectivement les enregistrements en comparant son code barre avec ceux
de la table temporaire.
Autrement dit, faire compliqué au lieu de faire simple...
A la place, il suffit de supprimer directement l'enregistrement qui
correspond au code scanné. Bien que, là aussi c'est contraire aux bons
principes. On "empile" les événements, on crée des entrées et des
sorties... et en cas d'erreur ou mauvaise manipulation, on possède les
moyens pour corriger.
Enregistrer et ensuite supprimer ne laisse aucune trace... et ne permet donc aucune vérification, ni correction.
Je me souviens de tes premiers questionnements sur le sujet où j'avais
déjà précisé que l'analyse et donc toute l'approche, n'était pas
optimale, loin s'en faut.
Pour reprendre des exemples réels :
- On scanne les membres qui se présentent au club. Si la trace de
l'arrivé suffit, on scarnne uniquement à l'arrivée et on mémorise la
date et l'heure.
- On scanne des produits destinés à la vente. Il faut donc scanner à
l'arrivée et à la sortie. Mais on ne scanne pas chaque boite de petits
pois! On scanne pour connaitre le produit et on sauve une quantité et la
date/heure. A la sortie, c'est le produit, la quantité et la
date/heure.
Pour ce que j'ai vu et compris de ta base, tu scannes un code que tu
saucisonnes pour en extraire les différentes information, pour ensuite
sauver ces extraits dans une table. Lorsque tu souhaites supprimer un
enregistrement (une bobine, en fait) je pense que cela ne réprésente
plus un enregistrement précis de ta table...
Je devine aussi, que tu traites une série de boites identiques... mais...
Citation :je
cherche à construire un formulaire qui me permettrait de creer une ligne
supplémentaire automatiquement comme dans un sous formulaire est-ce
possible
Cette question me laisse perplexe
Tu as créé un formulaire continu pour les enregistrer... fais de même
(dans une table temporaire) pour mémoriser ceux que tu souhaites
supprimer !
Ou est la difficulté ? Sauf à remarquer qu'une mauvaise organisation
des données conduit inévitablement dans le mur, ou pour le moins pousse à
créer une usine à gaz qui ne fonctionnera pas de manière satisfaisante
Cordialement,
Pierre(3stone) |
|
|
Réponse n° 2 -------- le 14/12/2010 : 22:59 par Marc
visiteur |
Bonsoir,
merci d'avoir pris le temp pour me répondre ,j'ai déja créer une petite base qui fonctionne avec form,sous form et encore sous form,mais le pb que je rencontre c'est que certains utilisateurs,ne font pas attention et font des erreurs ex:je rentre 10 dans la base et je fais pas attention à la qté dans le carton et il y en a 11.
c'est pour ça que je voudrais tout scanner et je précise que chaque boite est unique c'est une ref différente à chaque fois,je vais essayer de voir une autre approche de cette façon de faire
Marc |
|
|
Réponse n° 3 -------- le 15/12/2010 : 14:40 par 3Stone
Administrateur
|
Bonjour,
Citation : Marcje précise que chaque boite est unique c'est une ref différente
Donc, il ne faut pas hésiter, c'est ce code complet qu'il faut sauver dans la table et ne rien scinder!
Dans l'exemple que tu m'avais fait parvenir, tu scinde en "Code", "Emul", "Axe", "Boite1", etc.
En fait, en prenant l'exemple de "Emul", j'imagine que cela désigne "Emulsion", il te faudrait une table "T_Emulsions" avec au moins 2 champs: [EMU_Code] : qui liste tous les différents codes existants [EMU_Description] : qui affiche les infos de cette émultion
Même chose pour le code "Axe" et les autres valeurs nécessaire.
Ensuite, une table des "T_Mouvements" avec une clé primaire qui peut être un simple NumeroAuto, le champ CodeBarre, un champ DateHeureIN, un champ DateHeureOUT, éventuelement un champ "Operateur", etc.
Lorsque tu recois ou réceptionne une boite de bobines, il suffit de scanner chaque bobine, le champ dateheure permet d'afficher dans un formulaire continu toutes les bobines du jour, de la veille, ou ce que l'on souhaite...
Pour "sortir" les bobines, on va simplement rechercher le code qui doit donc forcément exister parmis les entrées et y sauver la DateHeureOUT. Là aussi, l'affichage des "sorties" du jour est simplisime...
Selon les besoins, on peut également créer un enregistrement pour l'entrée et un second enregistrement pour la sortie... on veillera alors à remplacer les champs DateHeureIN et DateHeureOUT par un seul champ DateMouvement et un champ "Mouvement" qui spécifie si c'est une entrée ou une sortie...
Ceci est basé sur ce que j'ai pu deviner de tes besoins... mais c'est justement l'analyse préalable indispensable qui permet de faire ces choix.
Cordialement, Pierre(3stone) |
|
|
sujet actif
sujet clos
Important!
Nouveau message -
Rectifier message
Clôturer sujet
Remonter
|