Neuigkeiten:

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

Mobiles Hauptmenü

Daten in anderem Feld speichern

Begonnen von HaNe, Februar 22, 2019, 13:38:42

⏪ vorheriges - nächstes ⏩

HaNe

Hallöchen,
ich habe mal wieder ein Problem. Im aktuellen Fall habe ich ein Formular in Tabellenform vor mir liegen. In diesem lasse ich mir ausgewählte Aufträge anzeigen. Hierzu soll nun in der vorliegenden Maske das benötigte Material eingegeben und somit dem Auftrag zugeordnet werden. Sobald der Anwender danach eine Auftragsbestätigung bekommen hat, werden nachträglich die Stückpreise, usw. eingegeben. Hierzu müssen auch die Versandkosten mit erfasst werden. Versandkosten durch Anzahl der benötigten Teile ergibt dann den Wert der Versandkosten/Position. Soweit alles kein Problem. Jetzt sollen in einem Feld die Gesamtkosten pro Position erscheinen (also Stückpreis * Anzahl + Anteile Versandkosten + Beschaffungskosten ) und in der Tabelle gespeichert werden. Ich habe hier ein Feld zur Berechnung dafür erstellt.. Jetzt sollen beim Schließen des Formulars die Werte des Berechnungsfeldes für jeden angezeigten Datensatz in ein entsprechendes Feld in der Tabelle geschrieben werden. Da ich aber nachträglich die Kosten für den Transport ändern möchte und ich nicht jedesmal jeden einzelnen Datensatz aktualisieren will, sollen nun die automatisch berechneten Werte, ähnlich einer Änderungsabfrage, in die Tabelle übernommen werden.

Ich hoffe, ich hab mich nicht zu umständlich ausgedrückt. Früher habe ich das in Excel gemacht...war ja dort kein Problem. Nun soll es aber zukünftig in Access Anwendung finde, um diese Daten für kommende Auswertungen und Berechnungen nutzen zu können.

Kann mir hier jemand einen Tipp geben?

Vielen Dank

und ein herzliches Glück Auf
HaNe

MzKlMu

Hallo,
das Voraben ist überflüssig. Die Berechnung in der Abfrage reicht. Damit hast Du auch dein Problem der Aktualisierung los, denn die Abfrage ist immer aktuell.

In einer Datenbank speichert man nur in Ausnahmefällen berechnet Werte. Und ein Ausnahmefall liegt bei Dir nicht vor.
Gruß Klaus

HaNe

Hallo Klaus,
vielen Dank für die schnelle Antwort. Leider bekomm ich das nicht hin. D.h. in der Tabelle habe ich z.B. das Feld PreisTeil. Dieses wird aber durch Felder im Formular berechnet ( z.B Versandkosten / Teil). Um nicht in jeden Datensatz die Versandkosten eingeben zu müssen, habe ich hier ein Feld im Formularkopf erstellt. Das ist auch der Punkt, wo ich nicht weiter weiß. Ich könnte auch den errechneten Wert Versandkosten/Teil in die Tabelle übertragen. Nur wir übertrage ich den diesen Wert in z.b 15 ausgewählte Datensätze?

Gruß
HaNe

MzKlMu

Hallo,
ich glaube, Du hast das nicht richtig verstanden. Du sollst gar nichts von den Berechnungen in der Tabelle speichern.
ZitatD.h. in der Tabelle habe ich z.B. das Feld PreisTeil.
Das Feld wird in der Tabelle nicht benötigt, wenn es berechnet wird.
Liefert die Abfrage das gewünschte Ergebnis ?
Wenn ja, hast Du alles was Du brauchst.
Gruß Klaus

HaNe

Hallo Klaus,
ich hab schon verstanden. Leider kann ich nicht in der Abfrage das Ergebnis ermitteln. Das wäre ja auch zu einfach. Darin liegt ja mein ganzes Problem. Da ich den Wert eingeben und die Berechnung für den Versand nur im Formular tun kann, müsste ich entweder den Faktor Versand pro Teil oder eben den erreichneten Gesamtpreis in die Tabelle speichern.

Gruß
HaNe

MzKlMu

Hallo,
ZitatDa ich den Wert eingeben und die Berechnung für den Versand nur im Formular tun kann
Wieso, normalerweise kann man Berechnungen auch in einer Abfrage machen. In der Abfrage muss es ja die gleichen Felder zur Berechnung geben wie im Formular. Dann bindet man das Formularfeld an das berechnet Feld der Abfrage und die Berechnungen im Formular entfallen ersatzlos.

Kannst Du mal ein Bild des Beziehungsfensters posten, den SQL Text der Abfrage und die Formel der Formularberechnung ?
Gruß Klaus

DF6GL

Hallo,


es sind nur die Grunddaten zu speichern:

ZitatJetzt sollen in einem Feld die Gesamtkosten pro Position erscheinen (also Stückpreis * Anzahl + Anteile Versandkosten + Beschaffungskosten


Stückpreis , Anzahl , Anteile Versandkosten , Beschaffungskosten


Der Gesamtpreis kann dann durch Berechnung im Steuerelementinhalt eines Textfeldes angezeigt werden.

Steuerelementinhalt von Textfeld "txtGesamtpreis":

=[Stückpreis] * [Menge] + [AnteileVersandkosten] + [Beschaffungskosten]


und auch hier der Hinweis:  Dringend auf Leer-und Sonderzeichen (Blanks) wie auch auf reservierte Wörter verzichten ("Anzahl")
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

Hallo,
wobei noch zu beachten wäre, dass "AnteileVersandkosten" auch berechnet werden soll.
ZitatVersandkosten durch Anzahl der benötigten Teile ergibt dann den Wert der Versandkosten/Position.
Es wären also nur die "VersandkostenGesamt" zu speichern.
Gruß Klaus

HaNe

Hallöchen @all
erstmal ein Dankeschön an Alle schonmal vorab.

Ich muss dringend erstmal los, werde aber Auszüge der DB mal hier online stellen, um Einsicht in mein Chaos zu geben. Ich denke mal, ich habe mich nur falsch ausgedrückt.
Gruß
HaNe

HaNe

Hallo nochmal,

wie gewünscht hier also ein kleiner Auszug meiner FertigungsauftragDB. Ich hier nur eine kleines Beispiel. Alle Fragen oder Hinweise stehen als Textfeld gelb hinterlegt

Gruß
HaNe

MzKlMu

Hallo,
Kannst Du bitte mal die Bedeutung der 4 Preisfelder erklären.
- ABFPosEPreis
- ABFPosGPreis
- PreisStück
- PreisTeil

Was willst Du jetzt genau berechnen ?

Und warum speicherst Du eine Menge (ABFPosMengeStr) als Text ?
Hat das einen tieferen Sinn ?
Gruß Klaus

HaNe

Hallo,
ich arbeite hier mit Daten einer Datenbank der Fa. Sage. Wir nutzen im Haus den PC Kaufmann. Die Daten sind in einer Access-Datenbank abgelegt. So kann ich auf diese Daten zugreifen und sie zur Erstellung unserer Fertigungsaufträge verwenden. Die ersten beiden Bezeichnungen stammen aus dieser Datenbank und Bezeichnen dort hinterlegte Preise. Ich kann mit diesen Preisen damit gleich eine Nachkalkulation der einzelnen Teile durchführen.( Habe zu diesem Zweck eine Datenerfassung der Fertigungszeit mit Scanner programmiert - funktioniert seit einem halben Jahr wunderbar...)
PreisStück ist der Materialpreis / Stück. PreisTeil soll dann der Wert sein, der in der Tabelle gespeichert werden soll. Die ersten beiden ABFPosEPreis und ABFPosGPreis haben also nichts mit dieser Berechnung zu tun und finden später Verwendung.
Ich habe nun folgendes getestet. Sobald ich den Wert in Versand geändert habe, für ich eine Aktualisierungsabfrage durch und schreibe mit den Versand und die errechneten Kosten Versand /Teil in die Tabelle. Somit kann ich nun, wie von dir vorgeschlagen, die Werte des Gesamtpreises in einer Abfrage berechnen lassen....oder hast du noch einen anderen Vorschlag?

Wir sind ein kleiner Familienbetrieb und da kann ich mir eine fertige ERP-Software nicht leisten...da mach ich das selbst und passe alles auf meine Bedürfnisse an.

Gruß
Hane


MzKlMu

#12
Hallo,
Du hast jetzt viel geschreiben, aber das was ich wissen wollte nicht beantwortet.
Was bedeuten diese beiden Preise:
Materialpreis / Stück
PreisTeil

Ist der PreisTeil der Stückpreis mit den Versandkosten je Teile ?
Zitatoder hast du noch einen anderen Vorschlag?
Ja, die Aktualisierungsabfrage dürfte überflüssig sein.

Ich habe mir die DB angesehen, wenn ich im ersten Formular einen Wert eintrage, erscheinen im 2. Formular keine Datensätze.

Gruß Klaus

HaNe

Hallo,
du musst nur das in das Feld eingeben ,was als Beispiel steht - also A190062. Ich habe ja nur ein kleines Beispiel generiert, um die Funktion zu zeigen.Bei mir funktioniert es.

PreisStück ist der Nettoeinkaufspreis.
PreisTeil ist der in diesem Formular errechnete Preis.

Leider kam ich heute nicht wirklich weiter.....

Gruß
HaNe

MzKlMu

Hallo,
wenn ich  A190062 eingebe, erscheint bei mir gar nix. Aber das ist erst mal egal.
Ich bin darauf angewiesen, dass Du mir das erklärst was ich wissen will. Ich sitze ja nicht vor Deinem PC.
Wie jetzt der PreisTeil errechnet wird bzw. von was er abhängig ist weis ich immer noch nicht. Ich kann zwar nach der Formel sehen, die Du drin hast, aber ich weis ja nicht ob die richtig ist.

Bitte beschreibe doch mal in prosa was wie berechnet werden soll. Und bitte nicht einfach "wird berechnet".

Und meine Frage, warum eine Menge (ABFPosMengeStr) als Text gespeichert wird ist immer noch nicht beantwortet.

In der einen Tabelle aus Deinem Beispiel sind bereits Strukturfehler. Alles was mit dem Auftrag zu tun hat gehört in eine eigene Tabelle als ein Datensatz. Also alle Felder deren Inhalt gleich ist. Und in diese Tabelle kommen dann auch die Versandkosten in einem Datensatz.
Die Auftragspossitionen werden dann in einem Unterformular angezeigt.
Dann lässt sich alles bequem errechnen.

Kannst (bzw. willst) Du die Struktur noch ändern ?

Ich bin erst heute Abend wieder Online.

Gruß Klaus