Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: crunner82 am Februar 24, 2013, 14:50:15

Titel: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: crunner82 am Februar 24, 2013, 14:50:15
Ich stehe gerade vor einem kleinen Problem bei dem mir noch ein Lösungsansatz fehlt.

Es soll eine Datenbank mit EAN-Codes gefüttert werden. Dahinter ein Feld für die Anzahl.
Nun sollte bei Eingabe eines EAN-Codes in ein entsprechendes Formular der Wert "Anzahl" um 1 erhöht werden.

Bin leider totaler Anfänger, kann mir jemand ein bisschen weiterhelfen  ???
Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: DF6GL am Februar 24, 2013, 14:54:49
Hallo und guten Tag zunächst mal....


1) der Name "Anzahl" ist dringend zu vermeiden....

2) Ein solches Feld, wenn es denn die Anzahl der gespeicherten  EAN-Codes (Datensätze) in einer Tabelle  (Datenbank?) beinhalten soll, ist völlig fehl am Platz und komplett überflüssig.
Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: crunner82 am Februar 24, 2013, 15:05:18
Heisst das jetzt das sich sowas nicht umsetzen lässt?
Hast du einen Vorschlag wie man das machen kann?

Das soll so funktionieren:
Man scannt per Handscanner in ein Feld.
Das Programm soll dann dieses Feld suchen und dahinter die Anzahl um 1 erhöhen.
Dann das Feld leeren und wieder in dieses springen so das man weiterscannen kann.

Mittels php/mysql lässt sich sowas sehr schnell entwickeln...
Aber mittels office bekomme ich sowas nicht hin.
Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: Wurliwurm am Februar 24, 2013, 15:39:27
UPDATE TBLBESTAND SET ANZAHL=ANZAHL+1 WHERE EAN_CODE=<PARAMETER>

Dabei sollte der EAN-Code indexiert sein. Wenn die Zahlen wirklich immer stimmen müssen, ist auf Serialisierbarkeit der Updates zu achten, somit ist Access vielleicht nicht optimal dafür.



Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: DF6GL am Februar 24, 2013, 15:49:46
Hallo,

ich frag nochmal:  Für WAS wird diese "Anzahl" gebraucht??


Weiterhin:  Eingaben, auch Scanner-Eingaben sollten mittels Formulare passieren, und dort gibt es dann für diese Anforderung die Möglichkeit, die erwartete neue "Anzahl"  in der  Standardwert-Eigenschaft eines (gebundenen) Textfeldes anzugeben, bzw. dort zu berechnen:

=nz(DMax("*","tblDeineTabelle");0) +1


Um das Barcodefeld nach der Eingabe zu leeren, könnte z. B. solcher Code verwendet werden:

Sub Form_Afterupdate()
Me!BarcodeFeld = Null
Me!BarcodeFeld.Setfocus  ' wenn es noch andere aktive Steuerelemente gibt
End Sub
Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: crunner82 am Februar 24, 2013, 15:55:24
Es soll ne kleine Bestandsliste werden.
Bei einem Wareneingang werden die EANs gescannt damit der Anzahl Wert (also die Menge der Artikel in einem Lager) erfasst werden kann.
Der Scann soll natürlich in ein Formularfeld erfolgen.

Evtl. klappt sowas auch mit Excel und nem Marko (mittlerweile denke ich auch das das sogar die beste idee wäre)

Ich würde es am lieben mit php/mysql umsetzen, da sowas wirklich nicht viel arbeit ist, aber leider gibts das da nicht ^^
Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: DF6GL am Februar 24, 2013, 16:28:10
Hallo,

es ist nicht die Frage, ob das mit Access klappt oder nicht ( natürlich klappt das mit Access.. )  , es ist die Frage, welches KONZEPT Du bei der ganzen Geschichte verfolgst.


"Anzahlen" (d. h. gezählte/summierte Mengen) werden in DAtenbanken prinzipiell nicht gespeichert, sondern z. B. per Abfrage berechnet.

Wenn das Konzept so aussehen soll, dass Du erfassen willst, wieviel Material mit unterschiedlichen (Bar-)Codes wann und von wem ins Lager gelegt wurde (Bewegungen der Lagereingänge) , dann sähe das in etwa so aus:


Tabelle tblBewegungen
BID (Primärschlüssel, Autowert)
B_Barcode (Text)
B_Erfassdat (Datum/Uhrzeit)  
B_BewegartID (Zahl.Long)    'dient für evtl. später Ereiterungen, wenn z. B. auch Lagerentnahmen erfasst werden sollen
B_Menge (Zahl, Long)  '  für evtl. Erweiterung, wenn doch mal mit einem Barcode-Scan mehr als ein Artikel eingelagert/ausgelagert wird
.
.
.


Einzelform mit Datenherkunft zu dieser Tabelle und mindestens den Feldern
B_Barcode
B_Erfassdat      Eigenschaft gesperrt auf ja gesetzt
B_Menge           Eigenschaft gesperrt auf ja gesetzt


Die restlichen Felder sollten auch eingefügt , aber auf unsichtbar gesetzt werden.

In der Standardwert-Eigenschaft von "B_Menge" kommt 1 zu stehen,
in der Standardwert-Eigenschaft von "B_Erfassdat" kommt   =Datum()     zu stehen.


Um das Barcodefeld zu leeren und für weitere Berechnungen , kommt vorher abgegebener Code als Ereignisprozedur zum Einsatz:




Um die Menge eines bestimmten eingelagerten Artikels (hier gleichbedeutend mit der Anzahl von Scan-Eingaben eines bestimmten Barcodes)  im Formular anzuzeigen, könnten zwei weitere ungebundene Felder eingebaut werden, eines ("txtBarcode") , das den gerade eingescannten Barcode (weiterhin) anzeigt und eines ("txtBestand") , das die eingelagerte Menge dieses Artikels berechnet.





Sub Form_Afterupdate()

Me!txtBarcode=Me!B_Barcode  ' zum "Merken" des Barcodes und zur Anzeige, siehe weiter unten.
Me!!txtBestand = nz(DSum("B_Menge","tblBewegungen"),0)   'dies gilt zunächst nur für die grundlegende Ausbaustufe
Me!B_Barcode = Null
Me!B_Barcode.Setfocus  ' wenn es noch andere aktive Steuerelemente gibt
End Sub


Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: Wurliwurm am Februar 24, 2013, 17:24:14
Zitat von: DF6GL am Februar 24, 2013, 16:28:10
"Anzahlen" (d. h. gezählte/summierte Mengen) werden in DAtenbanken prinzipiell nicht gespeichert, sondern z. B. per Abfrage berechnet.

Öha. :-/

Es ist gang und gäbe, daß Bestandswerte in Datenbanken aggregiert gespeichert werden. Glaubst Du ernsthaft, Daß wenn Du bei Amazon siehst "25 Stück auf Lager", daß dieser Wert erst durch eine Group-By-Abfrage berechnet wurde? Oder daß der Kontostand bei der Bank aus allen Kontobwegungen jedesmal aufaddiert wird, wenn Du am Geldautomaten stehst?
Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: DF6GL am Februar 24, 2013, 20:04:51
Hallo,


Eieiei, hier geht es um eine lapidare Access-DB  -----  ::)
Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: MzKlMu am Februar 24, 2013, 20:10:53
Hallo,
ich sehe das auch wie Franz. Es ist überflüssig (und unzuverlässig) einen Artikelbestand zu speichern.
Wenn man Zu und Abgänge über eine Vorgangsart erfasst (und damit das Vorzeichen der Menge bestimmt), ist auch bei 1000enden von DS blitzschnell der Bestand eines Artikel errechnet. Es ist ja nur ein Wert.
Banksalden sind ja ungeleich komplexer, da spielen Buchungszeiten (Datum) Teilbuchungen und alles Mögliche rein, das halte ich für nicht vergleichbar.
Ich würde jedenfalls auch keinen Bestand speichern.
Titel: Re: Eingabe einer Artiklennummer mit automatischer Erhöhung der Anzahl dahinter.
Beitrag von: crunner82 am Februar 24, 2013, 23:19:34
Konnte das ganze nun genau so wie ich es wollte mittels nem Excel VBA lösen.
Es ging mir wirklich nur um eine sehr kleine Bestandsliste.
Trotzdem danke an alle  :)