online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon hari vom 05.02.2020, 16:12 Options

Bestand automatisch korrigieren

Hallo
Ich habe eine Access DAtenbank . In der befinden sich unter anderem eine Tabelle tblLager mit einem Feld Bestand und eine Tabelle tblRech_Material mit einem Feld Abgang.
Wie bekomme ich es nun hin dass wenn ich im Feld Abgang z.B. eine 3 eintrage der Bestand in der tblLager automatisch verändert wird??
Auf eure Antworten freue ich mich.
Gruß Hari


Antwort schreiben

Antwort 1 von Marie vom 05.02.2020, 23:58 Options

Na Du gibst doch sicherlich die Abgänge in einem Formular ein? Dann kannst Du doch ein Ereignis bei Änderung schreiben oder nach Aktualisierung oder beim Verlassen des Datensatzes, je nachdem, damit nichts verhuddelt wenn einer sich verschreibt oder nochmal korrigiert.

Aber um Dir jetzt hier Code zu liefern, der das an einer sinnvollen Stelle subtrahiert müsstest Du ein wenig mehr schreiben wo Du den Code hinhaben möchtest.

Eine andere Möglichkeit wäre eine Aktualisierungsabfrage. Aber auch dafür möchte ich natürlich zuerst wissen wann und wo Du diese aufrufen möchtest.

Gruß Marie

Antwort 2 von hari vom 06.02.2020, 09:41 Options

Hallo Marie
Vielen Dank für deine Antwort.
Also die Abgänge werden in einem Formular Rechnung eingegeben. Nach welchem Ereignis dies geschehen soll wird die Praxis zeigen, nach meiner Vorstellung nach Aktualisierung. Wenn du mir einen Code liefern könntest wäre das fantstisch, ich bin schon lange daran aber kriege es einfach nicht auf die Reihe.
Also für den Fall dass du mir den Code liefern könntest hier noch mehr Informationen:
Eingabe erfolgt in einem Formular Rechnung, das Feld ist mit Abgang bezeichnet und befindet sich in der Tabelle tblRech_Material, die Berechnung soll jedes mal nach Aktualisierung erfolgen.
Aktualisiert werden soll das Feld Bestand in der Tabelle tblLager also
[tblLager.Bestand]= [tblLager.Bestand] - [tblRech_Material.Abgang]
Über eine Aktualisierungsabfrage möchte ich dies nicht lösen, da diese Funktion SEHR oft benötigt wird wenn es Sie mal gibt. Also auch noch an andere Stelle in meinem Programm, aber ich gebe mich schon zufrieden wenn dies erst mal an einer Stelle klappt.
Einen schönen Gruß und einen schönen Tag wünscht dir
Hari

Antwort 3 von hari vom 06.02.2020, 10:20 Options

Hallo Marie
Da bin ich nochmal.
Nochmals ein paar Informationen:
Bei der Rechnugsstellung rufe ich über das Feld Teilenummer welche ich im Rechnungsformular eingebe sämtliche Angaben wie Teilebezeichnung Einzelpreis usw. automatisch ab, diese Angaben werden dann automatisch in die Tabelle tblRech_Material übertragen (der Sinn ist dass sich nach Rechnungsstellung bei Änderungen in der tblLager z.B. Preis diese sich nachträglich in der Rechnung nicht mehr ändern), danach erhält das Feld Abgang den Focus.
Die Tabelle tblLager und tblRech_Material stehen in einer 1:n Beziehung.
Alle Suchfunktionen beziehen sich auf die Teilenummer in der tblLager.
Übriegens ich erwarte nicht dass ich einen fertigen Code erhalte aber ich hoffe es da alle mir bisher genannten Tips von anderen nicht weitergeholfen haben. Wie bereits erwähnt es wäre fantastisch.
Gruß Hari

Antwort 4 von Marie vom 07.02.2020, 03:38 Options

Zitat:
Die Tabelle tblLager und tblRech_Material stehen in einer 1:n Beziehung.


Jo, schick mal den Code Deiner Datensatzherkunft des Formulares. Ich müsste wissen wie die Felder heissen, die gleich sind, ist das die Artikelnummer oder ID oder was?

Geh in die Abfrage, die die Daten Deines Formulars enthält, Ansicht SQL und kopier das hier rein.

Wie heisst das Formularfeld, wo die Abgänge eingetragen werden?

Normal hast Du beide Tabellenfelder in dem Formular und dann ist das einfach:
Private Sub frmfeldAbgang_LostFocus()
Me![Bestand] = Me![Bestand] - Me![Abgang]
End Sub


Wenn Deine Formularfelder Bestand und Abgang heissen! Wenn aber nach Lost Focus erneut darin geändert wird, dann wird erneut abgezogen, deshalb ist das nicht das gelbe vom Ei.

Gruß Marie

Antwort 5 von Marie vom 07.02.2020, 03:40 Options

upps sorry,

Private Sub frmfeldAbgang_LostFocus()
Me![Bestand] = Me![Bestand] - Me![frmfeldAbgang]
End Sub


natürlich entweder so, oder so:
Private Sub Abgang_LostFocus()
Me![Bestand] = Me![Bestand] - Me![Abgang]
End Sub


Also halt eben hier die Namen Deiner entsprechenden Formularfelder

Nochmal Gruß Marie

Ähnliche Themen

Warenbestand zurückzählen
JKF  15.01.2007 - 87 Hits - 4 Antworten

Brechnung in Access
Gonz  18.06.2007 - 66 Hits - 1 Antwort

Tabelle durchsuchen und auswerten
kholger  09.08.2007 - 60 Hits - 1 Antwort

Excel Mengen berechnen
heimlichen  11.11.2007 - 115 Hits - 15 Antworten

Excel
excelniete  14.05.2008 - 37 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026