Access - Berechnungen aus Feldern über Tabellen

Hallo,

ich benötige Hilfe bei einem Access-Problem.

Ich habe 2 Tabellen erstellt und möchte nun eine Berechnung über die Tabellen erstellen.

Bzw. soll ein Formular dazu dienen in bestimmten Feldern ein „X“ zu setzen. Dieses Feld hat dann in der Überschrift einen Wert. Dieser Wert soll, wenn ein „X“ gesetzt wurde mit einem Wert aus der 2. Tabelle multipliziert werden.

Das Ergebnis wiederrum soll in dem Formular angezeigt werden.

Es können über mehrere Zeilen Eingaben getätigt werden. Danach soll dann ein Ergebnis für jede Zeile bestehen und am Ende ein Gesamtergebnis aller Zeile. Dazu sollen alle Zeilen addiert werden.

Die Tabellen bestehen bereits. Nun muss ich die Verbindung herstellen und die Berechnung integrieren.

Wie kann ich das machen?

Gruß
Jimmy

Hi,

ich verstehe zwar die Aufgabenstellung nicht hundertprozentig; ich würde aber vorschlagen, daß du anstelle eines „X“ den Wert 1 in das Feld schreibst, im anderen Fall Null, dann kannst du einfach alle Zeilen multiplizieren. Eine andere Möglichkeit wäre, das ganze über einen Boolean (Ja/Nein) zu lösen.

Gruß Dietmar

Hallo Jimmy,
bitte schau doch mal bei www.donkarl.com. Dort wird das Problem ausführlich behandelt

Gruß Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

wenn Sie möchten bzw. keine anderweitigen Antworten erhalten, können Sie mir die Datenbank an [email protected] zusenden, damit ich es mir einmal ansehen kann. Aber vielleicht haben Sie das Problem zwischenzeitlich ja bereits mit der Hilfe anderer Personen beheben können.

MfG
C. Knell

Sorry,

deine Frage kan ich dir leider auch nicht beantworten.

Gruß Rolf

Hallo Jimmy,
das kannst Du besser mit Excel machen. Statt eines X setzt Du in das entsprechende Tabellenfeld jeweils eine 1. Am Ende jeder Zeile und jeder Spalte kannst Du dann die Formel einfügen, die den Wert im obersten Tabellenfeld mit der 1 multipliziert sowie alle Werte addiert.
Unter Access kann man nur mit ziemlichem Aufwand auf den Wert in der obersten Tabellenzeile zugreifen, zB. mit einer Aggregatfunktion (dlookup(„Feldname“,„Tabellenname“) - wenn es immer die oberste Zeile sein soll.), keinesfalls jedoch auf den Spaltennamen, selbst wenn der aus einer Zahl besteht. Statt des „X“ in den Eingabefeldern müßtest Du dann ein Ja/Nein-Feld erstellen, welches, wenn es aktiviert wird, den Wert -1 zurückgibt. Den dann noch mit -1 multiplizieren (damit eine positive Eins entsteht).
Soviel als Anregung. Die komplette Anwendung hier zu entwickeln, würde den Rahmen sprengen. Hoffe, weitergeholfen zu haben.
Gruß Klaus

Hallo,

würde die Anforderung über eine SQL-Abfrage lösen. Mit dem Abfrageassistenten sollte man aber auch ans Ziel kommen. Dazu müssen die beiden Tabellen miteinander verjoint werden, so kannst du die beiden Tabellen behandeln, als ob es eine Tabelle wäre. Auf diese Abfrage und den nötigen Berechnungen kann dann auch ein Formular oder ein Bericht gesetzt werden.

Die „X“ werden wahrscheinlich über eine Case when gesetzt, ebenso die Berechnungen.

Hoffe, dir bei deinem Problem mit meinen Ausführungen helfen zu können. Für mehr Details stehe ich gerne zur Verfügung.

schöne Grüße aus dem Berchtesgadener Land
Stefan

Hallo Jimmy,

da brauche ich noch ein paar mehr Informationen von dir.
Welche Felder gibt es in den beiden Tabellen?
Wie sieht oder soll dein Fomular aussehen?
Meinst du mit dem X-Feld ein Ja/Nein-Feld, das im Formular mittels einer Checkbox dargestellt wird?

Noch eine Frage zu der Berechnung: Ich nehme an, dass die Ergebnisse nur angezeigt und nicht gespeichert werden sollen, so dass sie bei jedem neuen Öffnen des Formulars neu berechnet werden, oder?

Gruß Markus

Danke für die vielen Antworten. Ich habe jetzt eine Abfrage erstellt mit den Join-Befehlen.

Ich bekomme aber die Berechnung nicht hin. Es muss so funktionieren, das z.B. die Spalte 5 heißt. Wenn dort ein X gesetzt wird, soll der Wert 5 (Spaltenname) mit dem Wert der Spalte Multiplikator (Spaltenname) multipliziert werden. Leider kenne ich mich im Bereich VBA noch nicht sonderlich gut aus. :frowning:

Gruß
Jimmy