Supportnet / Forum / Datenbanken
Berechnen von Daten
Frage
Hi Leute, habe bei Acess2000 folgendes Problem:
In meiner Datenbank trage ich in einer Spalte einen Namen ein, in der nächsten Spalte Arbeitszeit Anfang und in der nächsten Arbeitszeit Ende. Das Ganze wiederholt sich 10 mal (Name1, Anfang1, Ende1... Name2, Anfang2, Ende2....)
Das den Sinn, daß bei einer Tätigtigkeit mehrere Leute arbeiten.
Nun will ich die gesamte Arbeitszeit ermitteln und die Arbeitszeit pro Mann.
Für die Gesamtzeit habe ich eine Abfrage erstellt, in der ich Gesamtzeit1, Gesamtzeit2, Gesamtzeit3....usw berechne und zwar habe im "Feld" folgendes stehen: Gesamtzeit1: [Ende1]-[Anfang1].
Als "Funktion" habe ich "Ausdruck".
Und das natürlich 10 mal für jede Zeit.
In der 11. Spalte zähle ich Summe:[Gesamtzeit1]+[Gesamtzeit2]+.....[Gesamtzeit10] zusammen.
Nun habe ich folgendes Problem:
Bis zu 5 Arbeiter habe ich in einem Datensatz schon eingetragen,
Existieren aber noch keine Daten bei einem der weitern Spalten wird nicht mehr addiert.
Also so lange ich nur 1-5 zusammenzähle geht das.
Die Felder sind als Uhrzeit Formatiert, die Namen als Text.
Hat jemand eine Idee?
Antwort 1 von Locke
Ach ja, für die Berechnung Arbeitszeit pro Mann habe ich noch keine Idee gehabt.
Bitte nur Lösungen per Abfragen, bitte kein Code.
Bitte nur Lösungen per Abfragen, bitte kein Code.
Antwort 2 von KawaVN800
Hi Locke,
versuche mal in den Felder Anfang1..10 und Ende1..10 als Standardwert 0 (Zero) einzusetzen. Es ist nämlich so, dass Access bei der Ausführung von Berechnungen in Abfragen, wenn er auf Wert-Null (istnull(x) = wahr) ignoriert den Datensatz!
Alternativ kannst Du versuchen mit:
GesamtzeitX: Wenn(Nicht IstNull([EndeX]) Und Nicht IstNull([AnfangX]);[EndeX]-[AnfangX];0)
So sollte funkzen!
Ich muss auf jeden Fall sagen, dass so eine Tabelle- bzw. Datenbankaufbau (mit praktisch 10 Datensätze in einem Datensatz zusamengefasst) ziemlich unüblich und schwer zu handhaben ist. Aber es kann sein dass bei Dir das nicht anders zu lösen ist. Ich deine Problematik nicht!
Es würde mich interessieren, ob ich Dir weiterhelfen könnte!
CU
Carlo (:-))
P.S.
Was hast Du gegen eine Lösung über Code bzw. Funktion? Ausgerechnet in so einem Fall wäre es, meine Meinung nach, villeicht das beste!
versuche mal in den Felder Anfang1..10 und Ende1..10 als Standardwert 0 (Zero) einzusetzen. Es ist nämlich so, dass Access bei der Ausführung von Berechnungen in Abfragen, wenn er auf Wert-Null (istnull(x) = wahr) ignoriert den Datensatz!
Alternativ kannst Du versuchen mit:
GesamtzeitX: Wenn(Nicht IstNull([EndeX]) Und Nicht IstNull([AnfangX]);[EndeX]-[AnfangX];0)
So sollte funkzen!
Ich muss auf jeden Fall sagen, dass so eine Tabelle- bzw. Datenbankaufbau (mit praktisch 10 Datensätze in einem Datensatz zusamengefasst) ziemlich unüblich und schwer zu handhaben ist. Aber es kann sein dass bei Dir das nicht anders zu lösen ist. Ich deine Problematik nicht!
Es würde mich interessieren, ob ich Dir weiterhelfen könnte!
CU
Carlo (:-))
P.S.
Was hast Du gegen eine Lösung über Code bzw. Funktion? Ausgerechnet in so einem Fall wäre es, meine Meinung nach, villeicht das beste!

