Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage bzw. Formel gesucht.

Begonnen von samurai, Juni 13, 2015, 12:54:00

⏪ vorheriges - nächstes ⏩

samurai

Hallo. Folgendes Problem bei dem ich nicht weiter komme. Verwaltet werden sollen "Artikel Wannen" folgend als Wanne bezeichnet. Es gibt also Filialen(NL), Wannen ausgänge, Wannen Eingänge, und Datum. Der Rechenweg sieht wie folgt aus.
Datum 10.06.2015 WanneRaus= 10; WanneRein= 5; BestandNL=5. 
Datum 11.06.2015 WanneRaus= 10; WanneRein= 5; BestandNL ( neu )= 10
Datum 12.06.2015 WanneRaus= 05; WanneRein= 0; BestandNL ( neu )= 15
...
zur Verdeutlichung, die Wanne welche im Bestand NL ist, muss zur WanneRaus addiert werden, danach werden WanneRein abgezogen. Mein erster Schritt war nun in der Abfrage Bestand NL, folgender: Bestand NL: [an NL]-[aus NL] .
Der 2. Schritt war : Bestand NL Neu: Wenn([Bestand NL]>0;[Bestand NL]+[an NL]-[aus NL];[an NL]-[aus NL]) .
Aber irgendwie funktioniert das nicht. Wie bekomme ich den Wert vom Vortag z.B.:
    Datum 11.06.2015 WanneRaus= 10; WanneRein= 5; BestandNL ( neu )=10 , nun zu dem Wert :
    Datum 12.06.2015 WanneRaus= 05 addiert ?
Oder habe ich da eine völlig falschen Weg eingeschlagen ?
Gruß Samurai.


MzKlMu

Hallo,
ZitatOder habe ich da eine völlig falschen Weg eingeschlagen ?
ja, glatte Sackgasse. In einer Datenbank gibt es keine Bestände, Bestände werden immer errechnet.
Du musst Zu und Abgang mit einem Vorzeichen erfassen (Zugang + Abgang -). Der Bestand ist dann einfach die Summe. Mit anderen Worten die Wannenmengen werden einfach mit der jeweiligen Vorgangsart einfach fortlaufend erfasst. Das richtige Vorzeichen lässt sich über die Vorgangsart automatisch setzen. In die Tabelle muss noch ein Fremdschlüssel zur Niederlassung.

Dann kannst Du mit einer gruppierten (über NL) Abfrage jederzeit automatisch den aktuellen Bestand ermitteln. Oder auch zu einem Stichtag.
Das Feld in der Tabelle für den bestand kannst Du ersatzlos löschen.

Wie erfasst Du die Menge je NL, hast Du für jede NL eine Tabelle ?
Gruß Klaus

samurai

Moin. Ich habe eine Tabelle " Filiale" und eine Tabelle " Wannen". Die Filialen sind mit id versehen. In der Tabelle Wanne, werden die ein und ausgänge mit Datum erfasst.
Meinst Du ich sollte jede Filiale in eine eigene Tabelle packen ? Bei der Erfassung brauche ich dann nur "+2" oder
"-2" eintragen? Der Rechenweg in der Abfrage bleibt dann ausgang - eingang , oder gibt es dann keinen ?
 

MzKlMu

Hallo,
ZitatMeinst Du ich sollte jede Filiale in eine eigene Tabelle packen ?
nein, natürlich nicht.
Erkläre mal genauer wie die Wannen mit den Filialen zusammenhängen.
Gibt es bei den Wannen einen Verweis (Fremdschlüssel) zur Filiale ?
ZitatBei der Erfassung brauche ich dann nur "+2" oder
"-2" eintragen?
ja, so ist es.
ZitatDer Rechenweg in der Abfrage bleibt dann ausgang - eingang , oder gibt es dann keinen ?
nein, es gibt keinen Rechenweg mehr.
Prinzip:
Zugang: +10
Abgang: -3
Zugang: +5
Abgang: -4
-----------------
Summe: 8 = Bestand

Du musst also nur die Summe bilden, das ist der Bestand.

Bitte beantworte mal obige Frage.
Gruß Klaus

DF6GL

Hallo,

nur zur Anregung und zur Übung:

http://dbwiki.net/images/f/fc/AccSampleKassenbuch.zip

So eine "Lagerhaltung" ist auch nichts anderes als eine Kontoführung...

Im Beispiel wäre vergleichbar:

tblKasse = tblLagerbewegungen
tblBuchungskennzeichen = tblBewegungsart
tblMandant = tblArtikel
tblPersonal = tblMitarbeiter
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

samurai

Die Filialen sind in einer Tabelle aufgelistet. Jede Fil. hat eine IDNummer .
Dann gibt es eine Tabelle für die Wannen. Fremdschlüssel Filiale ist vorhanden.
Die Eingabe der Ein und Ausgänge erfolgt über ein Formular mit Unterformular.
Man kann sagen, eine Filiale hat eine oder viele Wannen. Eine oder viele Wannen gehören zu einer Filiale.

MzKlMu

Hallo,
im Anhang findest Du eine einfaches Beispiel für eine Bestandsermittlung. Das Beispiel kommt völlig ohne VBA aus und ermittelt im Formular stets den aktuellen Bestand je Filiale.

Bitte Beziehungen ansehen. Es gibt auch eine Abfrage für den Bestand je Filiale.
Gruß Klaus

samurai

Hallo. Besten Dank, jetzt werden mir die Zusammenhänge klar. Die Vorgangsarten etc. Super ich Danke euch.
Einen schönen Sonntag noch.

Samurai.

samurai

Sorry. Muss jetzt doch noch mal nerven. Warum kann ich in der angehängten DB im Formular kein Datum eingeben ? Ich habe fast den ganzen Sonntag daran gesessen und versucht herraus zu bekommen warum das nicht geht. Sehe ich den Wald vor lauter Bäumen nicht oder bin ich einfach zu dusselig? Keine Scheu ich tue keinem was. Aber bitte klärt mich auf. Mal sehen ob das mit dem Anhang geht.

MzKlMu

Hallo,
ich habe nur Access2003, kann keine accdb's ansehen. Daher war ja mein Beispiel auch eine MDB.
Bitte konvertieren, oder warten.
Gruß Klaus

samurai

Hier die 2003 Version. In der Firma habe ich auch 2003 Version, da funzt es leider auch nicht.

MzKlMu

#11
Hallo,
sorry, aber Deine DB hat mit meinem Beispiel wenig gemeinsam.

- Datentypen sind falsch, wenn Du rechnen willst, muss der Operator (und Menge) auch eine Zahl sein.
- für Rein/Raus muss ein Kombi verwendet werden, da kann man nicht einfach den Text reinschreiben, da muss die Schlüsselzahl rein.
- Ein Datum ist vom Datentyp Datum/Zeit

Baue mein Beispiel nach, dann klappt es auch, das kann man nicht einfach so hinschludern eine gewisse Sorgfalt ist da schon von Nöten.
Gruß Klaus