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
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.
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
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.
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
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 ?
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")
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.
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
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
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 ?
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
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.
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
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.
Hallo und Guten Morgen,
vielleicht habe ich mich wirklich etwas verdreht ausgedrückt. Ich habe am Samstag noch bissl was probiert und den aktuellen Stand hier angehängt. Bei mir funktioniert es wunderbar, wenn ich A190062 eingebe. Vielleicht habe ich ja auch bei der ersten Version doch zuviel gelöscht. Diese DB ist nur ein winziger Auszug aus einer großen DB, an und mit der ich seit 2007 arbeite.
Ich habe mich an deine Vorschläge gehalten und speichere nur die Versandkosten und die Transportkosten/Teil. Dadurch kann ich mir bei Bedarf den PreisTeil berechnen. Im späteren Gebrauch soll das Material für mehrere Aufträge bestellt werden. Es wären dann z.B. 100 Teile in 3 Aufträgen. Somit ergibt sich ja ein anderer Preis für den Transport/Teil, wie wenn ich das für jeden Auftrag einzeln tun würde. Des wegen brauch ich also diesen Faktor als Daten. ( auch um bei Wiederholteilen den Materialanteil genauer analysieren zu können)
Der Grundgedanke dieser kleine DB ist folgender - ich will für eine weitere Tabelle ( Nachkalkulation von Fertigungsaufträgen ) in der großen DB die Materialkosten / Auftragsposition erfassen, um diese später auswerten zu können. Hier verwende ich als Grundlage Datensätze aus einer Datenbank der Fa. Sage KHK - wir setzen im Haus den PC Kaufmann ein. Da dieser auf einer Datenbank von Access beruht, kann ich die Daten des PC Kaufmann für Aufträge, Bestellungen, usw. weiter verarbeiten und verwenden.
Zur Übersichtlichkeit generiere ich aus meiner DB mit zur Zeit weit über 80000 Datensätzen die Tbl Daten Sage aus bestehenden Tabellen, um diese nicht unnötig aufzublähen. In dieser Tabelle verwende ich nur Daten, die ich auch für z.B. die Materialbestellung brauche. Alle Felder dieser Tabelle, welche mit ABF.... beginnen, stammen also aus der SageDB und können nicht geändert werden. Das Feld ABFPosMengeStr stammt also auch aus dieser DB. Warum Sage den Wert als Text generiert....keine Ahnung. Klar, ich könnte das auch beim Generieren der Tabelle Tbl Daten Sage als Zahl übernehmen, hab darauf aber ehrlich gesagt in den letzten Jahren noch nie geachten. Generell kann ich aber sicher an der Struktur einiges ändern.
Ich habe mir Access in den letzten 15 Jahren versucht im Selbststudium neben meinen vielen anderen Aufgaben in meiner Firma zu erlernen, bin in VBA ein total unbeschriebenes Blatt...kann mir aber mit den bereits erstellten Datenbanken unheimlich viel helfen....und versuche immer mal wieder benötigte Dinge zu vereinfachen. So z.B habe ich mir im vergangenen Jahr eine Datenerfassung der Fertigungszeiten per Barcodescanner erstellt. Diese Daten fließen auch mit in die große DB, um eben Nachkalkulationen einfach und schnell zu erledigen.
Sicher ist das, was ich hier gemacht habe von einem Profi viel einfacher, effektiver und übersichtlicher zu machen. Dafür habe ich mir aber wahnsinnig viel Geld gespart und die Datenbank den Abläufen in meiner Firma angepasst. Soviel mal schnell zum Verständnis meines Vorhabens.
Ich bin also immer sehr, sehr dankbar für Leute, die mir in solchen Situationen einen Tipp geben oder/und mir hilfreich unter die Arme greifen.
Deswegen schon an dieser Stelle, vielen, vielen Dank für die stets freundliche und schnelle Hilfe.
Gruß
HaNe