Office: (Office Version unbekannt) Artikelbewegungen

Helfe beim Thema Artikelbewegungen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo ihr Lieben, ich bin noch Anfänger und versuche eine DB zu basteln in dem ich ein paar Artikel und deren Bestandsdaten (Zu- sowie Abgänge und... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Teejay92, 3. Februar 2023.

  1. Teejay92 Neuer User

    Artikelbewegungen


    Hallo ihr Lieben,

    ich bin noch Anfänger und versuche eine DB zu basteln in dem ich ein paar Artikel und deren Bestandsdaten (Zu- sowie Abgänge und IST-Bestand) erfassen möchte. Nun hab ich schon ein paar Beiträge zu diesem Thema gefunden, welche aber alle recht alt sind bzw. nicht vollständig etc.

    Angefangen habe folgendermaßen:

    Tabelle Artikel:
    - ID
    - Bezeichnung
    - Preis
    - Anfangsbestand

    Tabelle Bewegungen:
    - ID
    - Bezeichnung
    - Zugang
    - Abgang
    - Datum

    Abfrage:
    - Bezeichnung (aus tbl_Artikel)
    - Anfangsbestand (aus tbl_Artikel)
    - Zugang (aus tbl_Bewegungen)
    - Abgang (aus tbl_Bewegungen)

    Nun stehe ich etwas auf dem schlauch... ich habe eine 1:n Verbindung der beiden Bezeichnungen, da ich keine Artikelnummern verwende, sondern exakte Namen der Artikel.
    Wie schaffe ich es nun das ich die Bewegungen "buchen" kann, sodass sich die Bestände selber errechnen und ich meine Reports der einzelnen Artikel ziehen kann?
     
    Teejay92, 3. Februar 2023
    #1
  2. andyfau
    andyfau hat Ahnung
    Hallo,
    in Tabelle Artikel die ID als Primärschlüssel definieren. Die Bezeichnung als eindeutig kennzeichnen, wenn diese immer eindeutig sein soll. Primärschlüssel sind immer eindeutig.

    In der Tabelle Bewegungen die (Bewegungs)ID ebenfalls als Primärschlüssel, am besten als Autowert, definieren.
    Das Feld Bezeichnung raus aus der Bewegungstabelle. Stattdessen ein Feld ArtID als Fremschlüssel
    welches dann mit der Artikeltabelle als 1:n Beziehung MIT referentieller Integrität verbunden wird.

    Das Feld Anfangsbestand raus aus der Artikeltabelle. Der Anfangsbestand ergibt sich als erste Zugangsbuchung in den Bewegungen.

    Zur Vertiefung des Themas empfehle ich was über "Normalisierung" einer Datenbank zu lesen.

    Nun kannst Du mit Hilfe des Abfrageassistenten beliebige Auswertungen auch mit Summen erstellen.
    Schau hierzu mal unter
    www.access-tutorial.de
     
    andyfau, 3. Februar 2023
    #2
    1 Person gefällt das.
  3. Teejay92 Neuer User
    Nabend,
    vielen Dank für die schnelle Hilfe! Sieht schon mal gut aus.

    Ich hab das nun fast exakt so gemacht. Im nächsten Schritt muss ich dann für die Reports Abfragen bzw. Formulare für Buchungen erstellen, richtig?
     
    Teejay92, 3. Februar 2023
    #3
  4. andyfau
    andyfau hat Ahnung

    Artikelbewegungen

    Richtig, Du kannst die Abfragen dann im Formular/Berichtsassistenten verwenden und brauchst nur noch die Felder zurecht zu schieben und formatieren.
     
    andyfau, 3. Februar 2023
    #4
    1 Person gefällt das.
  5. Doming
    Doming hat Ahnung
    Moin Teejay
    Folgendes fällt mir dazu auf:
    In der Tabelle1 sollten außer dem Primärschlüssel nur die Eigenschaften der Artikel stehen,
    also Bezeichnung, Hersteller und vielleicht noch die Artikelnummer des Herstellers oder je nachdem, nach was Du evtl. irgendwann Filtern willst, Farbe, Material, Zustand des Artikels.
    Kein Bestand, der errechnet sich durch die Tabelle "Bewegungen".
    Kein Preis, denn der kann sich ändern, der gehört in eine andere Tabelle.
    Kein Lieferant, denn auch der kann sich ändern, der gehört auch in eine andere Tabelle ;-)
    Man könnte auch Eure eigene Artikelnummer als Primärschlüssel nehmen, was einiges vereinfachen würde. Allerdings muss dann sichergestellt sein, dass diese Artnr nie, also auch nicht in 20 Jahren, für ein anderes Produkt verwendet wird.
    Primärschlüssel sollte gerade als Anfänger immer ein eigenes Feld mit der Eigenschaft "Autowert" sein, dann ist sichergestellt, dass sich da keine Doppelungen ergeben.
    Zu den exakten Namen der Artikel: Bedenke, dass dort evtl Änderungen oder Dubletten kommen können. Z.B. zwei Lieferanten vom gleichartigen Mehl.

    In die Tabelle Bewegungen gehört nur die
    1. ID(Autowert)
    2. Datum
    3. ein Feld für die Bewegung (Zahl positiv: Zugang, Zahl negativ: Abgang), der jeweilige Bestand wird dann später bei Bedarf in einer Abfrage berechnet
    4. ein Feld mit dem Primärschlüssel des Artikels als Fremdschlüssel, Name z.B. FS_Produkt
    5. Ich würde noch zusätzlich ein ZahlenFeld für die Art der Bewegung machen, z.B. 1 für Anfangsbestand, 2 für Standardbuchung, 3 für Korrekturbuchungen (Inventur)

    Je nachdem, was Du nachher noch vorhast, könnte man noch eine Tabelle für die Lieferanten einrichten (in der stehen natürlich nur seine Daten: Name, Adresse, Kontaktdaten und sowas, dann wäre noch ein Fremdschlüssel in der Tabelle "Bewegungen" sinnvoll: von wem wurde geliefert.
    Dann vielleicht die Tabelle für den EinkaufsPreis, mit dem Fremdschlüssel Lieferant und Fremdschlüssel Artikel.

    au weia, ich glaube ich höre lieber auf zu schreiben, sonst gehen wieder die Pferde mit mir durch ;-)
    Gruß
    Doming
     
    1 Person gefällt das.
  6. Teejay92 Neuer User
    Vielen Dank! Ich bin soweit eigentlich schon soweit zufrieden, benötige nun aber eine Abfrage, welche mir nur Datensätze zeigt wo mein Meldebestand > Ist-Bestand ist. Muss ich das über einen Filter in einer Abfrage machen oder wie wäre das am besten?
     
    Teejay92, 6. Februar 2023
    #6
  7. Doming
    Doming hat Ahnung
    Woher bekommst Du denn die Istbestände?
    Wenn Du Dir die Bestände anzeigen lassen willst, brauchst Du eine Abfrage, die (nach meinem Modell) alle Materialbewegungen summiert. Durch die positiven und negativen Buchungen kommt als Summe der Sollbestand raus.

    Wenn ich Dein Datenmodell raten soll, vermute ich, dass Du zum Anfangsbestand alle Zugänge addierst und die Abgänge subtrahierst. Also erst alle Zu- und Abgänge gruppieren, das ganze voneinander abziehen und zum Anfangsbestand dazuaddieren.
    Die beiden SQL-Abfragen dazu wären:
    Code:
    1.
    SELECT tbl_Artikel.Bezeichnung, Sum([Zugang]-[Abgang]) AS Bewegung
    FROM tbl_Artikel 
    INNER JOIN tbl_Bewegungen 
    ON tbl_Artikel.Bezeichnung = tbl_Bewegungen.Bezeichnung
    GROUP BY tbl_Artikel.Bezeichnung;
    2.
    SELECT tbl_Artikel.Bezeichnung, [Anfangsbestand]+[Bewegung] AS Sollbestand
    FROM Abfrage1 
    INNER JOIN tbl_Artikel 
    ON Abfrage1.Bezeichnung = tbl_Artikel.Bezeichnung;
    Wie Du diesen Sollbestand dem Istbestand gegnüber setzen willst, weiß ich natürlich nicht.
     
  8. Teejay92 Neuer User

    Artikelbewegungen

    Mein IST-Bestand errechne ich mir in einer Abfrage, wo ich die Summe der Abgänge von der Summe der Zugänge subtrahiere. Nun hab ich in dieser Abfrage ein Zahlen-Feld für meinen Meldebestand und den errechneten IST-Bestand.

    Sprich:
    Textfeld "Bezeichnung" (Artikel)
    Zahlenfeld "Meldebestand"
    Errechnet "Summe von IST-Bestand"

    Nun benötige ich eine Liste aller Artikel, bei denen der Meldebstand > "Summe von IST-Bestand" ist.
     
    Zuletzt bearbeitet: 6. Februar 2023
    Teejay92, 6. Februar 2023
    #8
  9. Doming
    Doming hat Ahnung
    Hihi, immer diese Vokabeln :-) Ist heißt bei mir, ich zähle nach was da ist. Und Sollbestand ist das, was mein System denkt, was da ist.
    Aber egal,
    dann baust Du Dir eben eine Abfrage, in der Du als Kriterium unten einträgst [Meldebestand]>[IstBestand], als Datenherkunft nimmst Du Deine im ersten Absatz erwähnte Abfrage.
     
    2 Person(en) gefällt das.
  10. Teejay92 Neuer User
    Vielen Dank!
     
    Teejay92, 6. Februar 2023
    #10
Thema:

Artikelbewegungen

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden