Neuigkeiten:

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

Mobiles Hauptmenü

Pflege von Beständen - wer hat was?

Begonnen von Ahnungsloser1337, Dezember 27, 2012, 16:40:29

⏪ vorheriges - nächstes ⏩

Ahnungsloser1337

Moin,

also erstmal bin ich hier ganz neu und freue mich, unter euch zu weilen. Und wie mein Name schon sagt, habe ich keine Ahnung.
Ich würde ganz gerne ne Datenbank erstellen, in der ich Bestände verwalte.

Beispiel: Es gibt mehrere Institute, die wiederum jeweils diverse Kunden haben. Für diese Kunden gibt es eine gewisse Menge an verschiedenen Produkten - also einen vorrätigen Bestand.

Je nach Versand muss diesem Bestand Menge X abgezogen werden. In einer Übersicht möchte ich sehen, wie viel noch verfügbar ist.
Kann man mich so verstehen? Wenn ja, wer hat vielleicht schon eine DB dieser Richtung?

Danke schon mal für die fülle an Antworten und bösen Kritiken :-)

Liebe Grüße!

MzKlMu

Hallo,
Du machst bereits einen grundlegenden fehler, in einer DB werden keine Bestände gespeichert. Der Bestand wird errechnet Zugänge-Abgänge=Bestand

Du musst also eine Tabelle führen, in der die Menge je Produkt und Kunde gespeichert wird. Auch wenn ein Produkt nachgeliefert wird, kommt das als Zugang in diese Tabelle. Zugänge werden positiv gerechnet und Abgänge negativ.

Die Summe der Menge gruppiert über das Produkt ist der Bestand, automatisch und stest korrekt. Es gibt demzufolge in der ganzen DB keine Tabellenfeld für den Bestand.
Gruß Klaus

Ahnungsloser1337

Verstanden. Aber auch wenn ich die Tabellen habe - so brauche ich doch ein Formular oder Ähnliches um Ein- oder Ausgänge einzutragen. Wenn ich dafür in die Tabelle müsste, kann ich es ja auch per Hand auf n Blankozettel eintragen.
Ich hätte ja gerne ne Übersicht über die noch vorhandene Menge. Das die Buchungen in Form einer Zeile in einer Tabelle stattfinden ist mir bewusst.

Also ne Übersicht - wie viel von X gibt es noch bei Institut Y. Im Hintergrund - Pflege der Tabellen durch Eintragung in bspw. ein Formular.

Oder?

MzKlMu

#3
Hallo,
ja, so wird das gemacht.

Und wo hast Du jetzt ein Problem?

Beim Formular erstellen?
Bei der Abfrage für den Bestand?

Ich kann mir auch nicht vorstellen, dass bereits jetzt der Tabelelnaufbau stimmt.

Welche Tabellen gibt es mit welchen Felder und Beziehungen.

Anbei mal noch ein einfaches Beispiel mit Formularen und Abfragen.

[Anhang gelöscht durch Administrator]
Gruß Klaus

Ahnungsloser1337

Na das sieht doch schon nach dem aus, was ich wollen würde.
Ich selbst hab bislang übrigens nur hin und her gebastelt.

Es ist so, dass ich 6 verschiedene Institute habe. Für jedes Institut gibt es momentan zwei Artikel mit einem gewissen Anfangsbestand.
Für die Artikel brauche ich keinen Hersteller oder sonstwas. Nur die Bezeichnung. Bei einer Entnahme bzw. Herausgabe eines Artikels möchte ich neben dem Artikel und der Anzahl selbst nur noch das Datum und eine Kundennummer mit angeben.

Im Prinzip sollte man doch vorerst mit nur einem Institut n Grundstock aufbauen, den ich dann erweitern kann oder? Das Beispiel finde ich schon super.
Da brauche ich halt nur die Punkte Verfügbar, Hersteller und Mindestbestand nicht.

MzKlMu

Hallo,
ZitatIm Prinzip sollte man doch vorerst mit nur einem Institut n Grundstock aufbauen, den ich dann erweitern kann oder?
Nein, das wäre falsch. Das A+O einer DB ist das Datenmodell, also die Tabellen und deren Beziehungen untereinander. Wenn das bereits falsch angefangen ist kannst Du nichts mehr erweitern.
Daher sollte das erst mal geklärt werden.
Ich hatte nach dieser Struktur gefragt, hast Du aber vollständig unbeantwortet gelassen. Hier die Frage noch mal:
ZitatWelche Tabellen gibt es mit welchen Felder und Beziehungen.

Auch der Anfangsbestand gibt einen Datensatz in der Mengentabelle.
Gruß Klaus

Ahnungsloser1337

Hm ich kann das nicht erklären. Ich hab an der Beispiel-DB mal gebastelt. Da ist das drin was ich brauche. Das Formular Übersicht: Da würde ich gerne die einzelnen Institute anzeigen (281 ist eines). Beim Klick auf den Button würde ich dann gerne die Bestände pflegen für das jeweilige Institut. Fehlen in den Tabellen halt noch Kundennummer und Kundenname.

Kannst da was mit anfangen - also mit meinen bebilderten Gedankengängen? ???

[Anhang gelöscht durch Administrator]

MzKlMu

#7
Hallo,
so einfach ist das nicht. Du benötigst nicht für jedes Institut ein Formular.
Dir fehlen noch Tabellen für die Kunden und die Institute.
Da Du ja auch Kundenbestellungen hast, noch eine Tabelle für die Bestellungen und für die Bestellpositionen.
Also fehlen da noch mindestens 4 Tabellen.

Macht jedes Institut die gleichen Produkte?
Wie werden Produkte nachbestellt?

Die Zusammenhänge der Tabellen sind noch völlig unklar. Das musst Du besser beschreiben. Vorher macht es keinen Sinn über Formular nachzudenken oder diese gar zu machen.
Gruß Klaus

Ahnungsloser1337

Macht jedes Institut die gleichen Produkte?

Ja, machen sie. Aber. Jedes Institut hat einen eigenen verfügbaren Bestand. Also wenn es 200 Mail Kobil gibt, gehören dem einen Institut davon bspw. 30. Diese 30 sollen dann für dieses Institut auch nur als Bestand ersichtlich sein.


Wie werden Produkte nachbestellt?

Das ist völlig egal denke ich. Mir ist nur wichtig das Zu- u. Abgänge einfach eingetragen werden.

Ahnungsloser1337

Nachtrag:

Für die Kunden brauche ich keine Tabelle, die sollen nur als Info händisch mit hinterlegt werden. Dazu gäbe es sonst zu viele. Und jeder Kunde bekommt fast nur ein Mal was.... über einen gewissen Zeitraum gesehen.

database

Hallo,

ZitatUnd jeder Kunde bekommt fast nur ein Mal was

Also kann es vorkommen dass der eine oder andere doch mehrfach beliefert wird.
Wenn man nun eine DB nach den Regeln der relationalen DB-Technik erstellt, MUSS auch darauf Rücksicht genommen werden,
wodurch wiederum eine Kundentabelle geführt werden muss.

Über die Anzahl der Datensätze in dieser Tabelle brauchst du dir keine Sorgen machen, das Wird Access schon verkraften  ;)
Und bei der Datenerfassung kann auf eine effiziente Gestaltung der Eingaben dahingehend Rücksicht genommen werden,
dass du kein eigenes Form zur Erfassung der Kunden benötigst und dadurch auch keine 'Mehrarbeit' entsteht.

D.h. du gibst nach wie vor die Kundennummer und den Kundennamen ein aber im Hintergrund werden diese Informationen in einer eigenen Tabelle eingetragen.
Der Vorteil dabei ist der, dass du keinen einzigen Kunden mehrfach speichern musst - da dir bereits während der Eingabe eine bestehende Kundennummer
angezeigt wird, wenn diese in eine Kombobox eingegeben wird - und das Datenmodell nicht vergewaltigt wird.


Ahnungsloser1337

das klingt doch schon mal gut. so solls sein^^
wie kriege ich das jetzt aber praktisch gelöst. ich muss ja auch Summen errechnen über Befehle usw. das fällt mir aber schwer :-)

DF6GL

Hallo,



ZitatFür die Kunden brauche ich keine Tabelle, die sollen nur als Info händisch mit hinterlegt werden. Dazu gäbe es sonst zu viele. Und jeder Kunde bekommt fast nur ein Mal was.... über einen gewissen Zeitraum gesehen.


Wie soll man das verstehen?   ???  Wenn es mehrere Kunden (insgesamt) gibt, dann braucht es dafür eine Tabelle . Fertig.


Zitatdie sollen nur als Info händisch mit hinterlegt werden. Dazu gäbe es sonst zu viele

Wo außer in einer Tabelle willst Du denn die "Info" "händisch" hinterlegen?


ZitatEs gibt mehrere Institute, die wiederum jeweils diverse Kunden haben. Für diese Kunden gibt es eine gewisse Menge an verschiedenen Produkten - also einen vorrätigen Bestand.



Wiederholung:  Dafür braucht es die Tabellen:


tblKunden  (KDID (PK), KD_Name, KD_Strasse ,KD_PLZ, KD_Ort, etc.,etc.)
tblInstitute  (InID (PK), In_Name, etc., etc.)
tblProdukte  (PrID (PK), Pr_Name, etc., etc.)

tblProduktBewegungen 
PrBwID (PK)
PrBw_KDID  (FK zu tblKunden)
PrBw_InID (FK zu tblInstitute)
PrBw_PrID (FK zu tblProdukte)
PrBw_Menge  (Zahl, Long)
PrBw_BuchDatum (Datum/Uhrzeit)
PrBw_Bemerkung  (Text oder Memo)



erweitere einfach das Beispiel von Klaus und fertig ist die Laube.




PS: erstelle erst mal die Tabellen mit ihren Beziehungen, dann sehen wir (bzw. Du  ;) ) weiter. Die Berechnungen ergeben sich dann ganz von alleine.



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

MzKlMu

#13
Hallo,
ich auch noch.  ;D
Es gibt keine halbe Datenbank entweder Datenbank oder keine. Das läuft nach dem Motto "Alles oder Nichts". In einer Datenbank hängen alle Tabellen/Eingaben zusammen. Du kannst nicht einfach einen Kundennamen irgendwo in die Luft hängen. Und selbst wenn Du sagst, ich trage den Kundennamen in ein ungebundenes Formularfeld ein, ist das falsch, denn nach Schließen des Formulars ist der Kundenname weg und damit ist auch der Zusammenhang verloren.
Alles was in einem Formular eingetragen wird muss in eine Tabelle.
Dabei ist es vollkommen egal, ob der Kunde wöchentlich bestellt, oder alle 10 Jahre.
Und 100.000 (um mal eine hohe Zahl zu nennen) Kunden sind für Access noch nicht wirklich viel.

Du solltest Dich erst mal mit den Grundlagen zur Entwicklung relationaler Datenbanken beschäftigen.
Franz hat dazu einige Links in seiner Signatur.
Gruß Klaus

Ahnungsloser1337

Nicht das ich nerven wollen würde, aber ich bin da momentan zu doof für.
Schicke mal die DB anbei. Da fehlen halt noch die Kundensachen. Aber wenn ich im Formular bspw einen Artikel wähle, übernimmt er den für alle??^^

Hat jemand Hilfe für mich?

[Anhang gelöscht durch Administrator]