Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Lagerbestand von Bauteilen bearbeiten

Begonnen von Shayol, September 12, 2015, 08:05:55

⏪ vorheriges - nächstes ⏩

Shayol

Hallo zusammen,
ich habe mich erst seit 2 Tagen mit Access 2010 beschäftigt und muss für die Arbeit eine kleine Datenbank erstellen wo man Bauteile suche kann und zugleich den Bestand ändern kann. Sprich Bauteilmenge entnehmen/ hinzufügen kann.

Das suchen von Bauteilen klappt wunderbar nur jetzt stoße ich auf meine Grenzen und komme nicht weiter, stehen voll auf den Schlauch. Wie setzt man das ganze am besten um , das entnehmen/hinzufügen von bestehen Bauteilen ? Sprich das Lager auffüllen wieder ?


Habe im Formular zwei Buttons hinzugefügt , wo jeweils ein kleines Formular aufgerufenwerden soll. Bauteil auswählen, Name angeben, Anzahl  angeben , Warenausgabe oder ob es Wareneingang(auswahlfeld), Datum(automatisch )hinzugefügen.  Wieviele Tabellen müssen min. erstellt werden , wie sollen die in Beziehung stehen ? usw.  Blicke da nicht durch. Könnte einer /mehrere Aushelfen, wäre für jede Hilfe dankbar. Die Datei habe ich im Anhang hinzugefügt.

mfg





MzKlMu

#1
Hallo,
konvertiere die DB mal nach Access2003 (MDB) ich habe nur Access2003.

Du benötigst (mindestens) folgende Tabellen:

- Bauteile
- Personentabelle (für die Namen)
- Vorgangsarten (Wareneingang, Warenausgabe usw.)
- Vorgaenge (Fremdschlüssel zu Name, Bauteil, Vorgangsart)

In der letzten Tabelle werden die Warenbewegungen erfasst als jeweils ein Datensatz. Zugänge mit positiver Menge und Abgänge negativ.
Der Bestand ergibt sich dann einfach über eine Summierung der Menge gruppiert über das Bauteil.
Der Bestand wird nicht als Tabellenfeld geführt, der Bestand wird immer errechnet.

Gruß Klaus

Shayol

Ich habe dir eine PN geschickt mit der umgewandelten datei in Access 2003. Beim Konventieren wurde das Formular und die Abfrage nicht mit umgewandelt.

MzKlMu

Hallo,
Du hast eine PN. Der Link in der PN funktioniert nicht.
Lade die DB (abgespeckt, komprimiert und gezippt) hier hoch. Ich helfe ohnehin nicht per PN, alles läuft über das Forum.

Im Anhang findest Du eine einfache DB zu einer Lagerhaltung.
Gruß Klaus

Shayol


MzKlMu

#5
Hallo,
die zwei  Tabellen reicht nicht. Du brauchst die in meiner 1. Antwort zitierten Tabellen. Zusätzlich zur Herstellertabelle. Das Feld Bestand in der Tabelle ist überflüssig und kann gelöscht werden.

Mein obiges Beispiel zeigt wie es gemacht wird. Das Beispiel deckt Deine Anforderung komplett ab. Wenn Du es nicht verstanden hast, frage nach.

PS:
287 Datensätze hätte es in einer Beispieldb nicht gebraucht.  ;D
Gruß Klaus

Shayol

Habe den Bestand gelöscht  ;D
Und habe die 3 weiteren Tabellen erstellt, ka o die richtig sind. Irgendwo muss ja trotzdem aufgelistet werden , wieviel ich hinzufüge und entnehme.

MzKlMu

#7
Hallo,
Zitatka o die richtig sind
natürlich sind die nicht richtig. Du kannst doch nicht einfach die Tabelle aus dem Beispiel in Deine DB übertragen und meinen dass das passt. Das musst Du anpassen. Du kannst auch nicht einfach Felder löschen, weil Du meinst diese werden nicht benötigt. Das Feld "Multiplikator" bei den Vorgansarten ist unerlässlich. Darüber wird automatisch das Vorzeichen für die Menge bestimmt. Auch das Feld für die Menge (tblVorgaenge) hast Du einfach gelöscht, wo willst Du denn die Menge erfassen ? Du musst auch Beziehungen anlegen. Wie die Beziehungen anzulegen sind, findest Du auch in meinem Beispiel.
ZitatIrgendwo muss ja trotzdem aufgelistet werden , wieviel ich hinzufüge und entnehme
Wird es doch in meinem Beispiel. Hast Du Dir das eigentlich schon mal richtig zu Gemüte geführt ? Ich fürchte nein, sonst hättest Du gesehen, dass Menge und Multiplikator absolut notwendig sind. In diesem Beispiel ist alles enthalten was Du brauchst, Listen für Eingang und Ausgang, wer es war sowie die Bestände. Alles in dem einen Formular (das Hauptformular) in das ein Unterformular integriert ist. Du musst das nur auf Deine DB übertragen.

Irgendwie musst Du hier auch etwas mitdenken, Access muss man lernen.
Gruß Klaus

MzKlMu

Hallo,
na, habe ich Dich erschreckt und Du hast aufgegeben ?
Gruß Klaus

Shayol

Nene, habe mich damit beschäftigt !  ;D
Habe aber nur noch 2 Probleme, dann ist es rdy im Groben, nur ich komme nicht drauf  wie ich es umsetzen kann. 
Folgendes:
Im Formular "Suchen" habe ich im Detailbereich einen Button erstellt , der für jeden Datensatz einzeln zählen soll. Wenn man auf ihn klickt soll sich das "bearbeiten" Formular öffnen, soweit klappt es :)
Mit diesem Formular soll man dann neue Datensätze einfügen in der "Bewegungsdaten : Tabelle " einfügen, das klappt auch soweit. Jetzt kommt das NUR/ABER  :P

Der soll sich aber automatisch die Typ-Nr. rauslesen(Anzeige im Texfeld , Ist die Kontrolle , das man den richtigen Datensatz ausgesucht hat) und sobald man auf Speichern klickt, soll die richtige "ID"  vom ausgesuchten Datensatz abgespeichert werden. Habe nur feste Werte zur Zeit eingetragen , in VBA. Das selbe ist mit den Listen-feldern, die sollen die "ID" übertragen  und nicht den ausgesuchten Namen/Vorgang(ebenfalls fest "Wert" einegtragen.

Private Sub cmdSpeichern_Click()

Dim rcsBewegungsdaten As Recordset
Set rcsBewegungsdaten = CurrentDb.OpenRecordset("Bewegungsdaten", dbOpenDynaset)

rcsBewegungsdaten.AddNew

rcsBewegungsdaten.Fields("Datenbank_ID").Value = 1
rcsBewegungsdaten.Fields("Vorgang_ID").Value = 1
rcsBewegungsdaten.Fields("Personen_ID").Value = 1
rcsBewegungsdaten.Fields("Menge").Value = Me.txtMenge

rcsBewegungsdaten.Update

MsgBox "Der aktuelle Bestand vom jeweiligen Bauteil wurde aktualisiert."
DoCmd.Close
End Sub





MzKlMu

Hallo,
ich habe nur Access2003 (MDB) wie ich weiter oben schon geschrieben habe.

Aber vorbab, binde das Formular an die Tabelle, dann braucht es zum Speichern keinen Code. Und die richtigen Werte werden auch übernommen, automatisch.
Du programmierst Sachen, die man nicht braucht.  ;D
Gruß Klaus

Shayol

hmm , dan  muss ich wieder eine Abfrage machen und als Unterformular anzeigen lassen oder

MzKlMu

Hallo,
ja, es wäre auch die richtige Lösung. Was gefällt Dir daran nicht ?

Ich habe auch etwas Zweifel, dass Du das richtig umgesetzt hast.
Die Meldung "Der aktuelle Bestand vom jeweiligen Bauteil wurde aktualisiert." irritiert mich. Es gibt ja keinen Bestand zur Aktualisierung.

Kannst Du nicht mal konvertieren ? Ich habe keine Möglichkeit ACCDB's anzusehen.
Gruß Klaus

Shayol

#13
Hab doch nichts geschrieben , das ich etwas dagegen habe. :) Ich bin für jede Lösung Dankbar!

Kann es dir leider nicht geben ,  er meckert. Das bestimmte Funktionen in Access 2003 bestimmte Funktionen nicht unterstützt.  :(

Die MsgBox ist schon ok , beim hinzufügen eines neuen Datensatzes bestimme ich den Neuen Bestand von jeweiligen Bauteil.

MzKlMu

Hallo,
dann zeige mal ein Bild der Beziehungen, aber so, dass man alle Felder der Tabellen sieht. Und keine zu großen Abstände zwischen den Tabellen, aber so, dass die Wege der Beziehungslinien klar zu erkennen sind.

Für die MDB würde es ja genügen, eine leere MDB anzulegen und die Tabellen der ACCDB zu importieren.

Auf die MsgBox solltest Du verzichten, auf Dauer nervt es, etwas bestätigen zu müssen, was sowieso klar ist.

Hast Du berechnete Felder in den Tabellen angelegt ? Wenn ja, solltest Du diese ohnehin entfernen. Berechnet wird in Abfragen.
Gruß Klaus