Hallo Zusammen,
ich habe eine Datenbank in der verschieden einzelne Werte angezeigt werden, z. B. eine Eingangsmenge und den Ausschuss, der während einem Produktionsablauf anfällt.
Der Ausschuss ist weiter untergliedert, also z. B. in Defekt Wareneingang und Defekt Produktionsprozess.
Nun zum eigentlichen Problem:
Ich habe in der Abfrage eine Summe gebildet (mit Funktion Summe) und würde in einem weiteren Feld gerne den defekt Wareneingang + Defekt Produktionsprozess / Eingangsmenge *100 ausgeben. Das funktioniert leider nicht, mit der Fehlermeldung: "Überlauf"
Vielleicht habe ich da gerade einen Denkfehler und jemand kann mir helfen?
Vielen Dank schon mal :)
Das sieht für mich danach aus, dass Access intern ein Problem mit der Größe deiner Zahlen hat.
In welchem Bereich bewegen sich denn deine Zahlen?
Greets
Sulu
PS: Allerdings gehe ich da jetzt nicht von meinen Accesskenntnissen aus ;) Denke eher daran, dass z.B. ne doublezahl in der Programmierung zu klein ist für deinen Zahlenbereich und ihm das Probleme macht...
/edit: Zu deiner Funktion fällt mir auch noch ein kleiner Fehler auf: Die Summe deiner Funktion muss in Klammern. Denke an die Rechenregeln Punkt vor Strich etc. ;)
Hallo Sulu,
danke für die Antwort.
Die Zahlenbereiche in den Tabellen ist einheitlich auf Long Integer eingestellt, was ja eigentlich kein Problem darstellen sollte?
Die Punkt-Vor-Strich-Regel ist natürlich bekannt, das Problem besteht aber trotzdem.
Vielleicht noch eine andere Idee?
Danke :)
Hmm... Long Integer ist auch nicht unendlich ^^ Hatte gedacht, dass die Addierung vllt. den Wertebereich sprengt. Aber ich denke über etwa 2,2 Milionen kommst du nicht hinaus, oder?
Zitatshort
mindestens 16 Bit
garantierter Wertebereich:
signed: -32767 bis 32767
unsigned: 0 bis 65535
int
mindestens 16 Bit, nicht kleiner als short
garantierter Wertebereich:
signed: -32767 bis 32767
unsigned: 0 bis 65535
long
mindestens 32 Bit, nicht kleiner als int
garantierter Wertebereich:
signed: -2147483647 bis 2147483647
unsigned: 0 bis 4294967295
Quelle: http://www.wi-bw.tfh-wildau.de/~hendrix/grundstudium/c/skript/elementare_datentypen.html
Ansonsten fällt mir gerade höchstens die Möglichkeit ein, dass der sich am int stört. Aber eigentlich sollte der dann einfach die Kommazahlen abhacken... Und in einer Abfrage sollte das dann auch kein Problem darstellen, meine ich...
Bekommst du außer Überlauf noch mehr gesagt?
Hallo nachmal.
habe gerade mal im Internet etwas gestöbert und gefunden, dass das bei durch null teilen auftritt.
Kannst du da mal nachschauen?
Link zu dem Post: http://www.haitech-blog.de/article/1856/ms-access-fehlermeldung-ueberlauf
LG
Sulu
/edit: Habe noch etwas weiter gestöbert. Überlauf scheint auch Access nur zu geben, wenn (mindestens) ein Wert den Wertebereich sprengt. Dies kann daran liegen, dass dein Integerfeld zu klein ist bzw. das, was die Abfrage nutzt. Oder deine Division wie oben an min. einem punkt durch 0 teilt. Dann wird geht der Wert ja gegen unendlich und sprengt deinen Wertebereich.
Es kann allerdings auch sein, dass du falsche "Einheiten" hast. Also z.B. dein Plus oben in cent rechnest und unten durch millionen Euro teilst:
(1cent+1Cent)/0,01millionen Cent
mal als Beispiel ^^
Vielen Dank für die Hilfe.
Dadurch, dass ich eigentlich keine Nullwerte drin hatte, und meine Werte bis max. 4-stelligem Bereich gehen, hab ich nochmal ein bisschen herumprobiert und hab schließlich folgende Lösung gefunden:
Eigentlich ganz einfach:
Ich habe die Summe aus Defekt Wareneingang und Defekt Produktionsablauf nur durch die Eingansmenge geteilt und in den Eigenschaften - Format auf Prozentwert gestellt.
Dann funktioniert es! :D
Trotzdem vielen Dank für die Hilfe ! ;D
Freut mich, dass ich Anregungen setzen konnte ;) Auch wenn ich nicht helfen konnte. Aber meinen Glückwunsch, dass es jetzt geht.
Gruß
Sulu