Hallo zusammen,
ich habe ein berechnedes Steuerelement, der einfach nur die Summe im Endlosform berechnen soll.=Summe(Belast)
Problem dabei ist, das er mir drei Stellen hinter dem Komma anzeigt. Aber auch nur wenn ich das Textfeld direkt anklicke. ???
Ich habe 2 Stellen und Festzahl eingegeben.
Die Daten bezieht das Steuerlement aus einer Währungspalte.
Wieso berechnet mir Access also drei Stellen hinterm Komma? >:(
Gruß
T.
.
Probier's mal mit:
=ROUND(SUMME(...),2)
Die 2 steht für 2 Nachkommastellen.
Hab ich zwischendurch auch mal als Festkommazahl probiert.
Hatte keinerlei Auswirkung.
Ich habe überall zwei Nachkommastellen angegeben. Aber irgendwo ignoriert er irgendetwas.
Runden ist auch keine optimale Idee. Außerdem beschwert er sich über das ,2.
Ich hatte jetzt also einen gerundeten Beitrag ohne Nachkommastellen.
Sorry: Unter Umständen muss es ein Semikolon ";" statt des Kommas "," sein...
.
Jou. Mit Semikolon klappt es.
Bin mir allerdings nicht sicher ob das Runden eine gute Idee ist.
:-\
Abschneiden geht auch, die Funktion heisst "FIX".
Allerdings schneidet Fix einfach nur nach dem Komma ab.
Wenn man also eine Stelle nach dem Komma benötigt dann bietet sich folgendes an:
FIX(SUMME(...)*10)/10
Ich denke ich habe die Stelle endeckt, die bei mir Probleme macht.
Ich fürchte ich hab in der Tabelle die Nachkommastellen nicht klar genug definiert. Ich muss sie wohl doppelt und dreifach definieren damit Access es kapiert. >:(
Falls alle Stricke reißen schneide ich den Rest einfach ab.
Soweit Danke für die Hilfe. :)
Hallo,
ZitatIch fürchte ich hab in der Tabelle die Nachkommastellen nicht klar genug definiert. Ich muss sie wohl doppelt und dreifach definieren damit Access es kapiert
Ich fürchte, dass Access da nichts falsch macht, das Ding kappiert schon richtig.
Wenn du in der Tabelle eine Festkommazahl mit 2 Kommastellen für den Felddatentyp Zahl / Double angegeben hast, dann werden z.B. 2 Stellen in der Tabelle angezeigt.
Ziehst du das Feld in eine Formular werden dort wohl kaum mehr Kommastellen erscheinen als in der Tabelle, es sei denn du hast dich mit den Formaten des Feldentwurfs herumgespielt.
Erstell ein neues Feld und lass mal die Formatierungen weg - da werden nicht mehr Kommastellen erscheinen als in der Tabelle stehen. ;)
Hallo,
Jetzt hatte ich wieder etwas Zeit mich mit diesen korrupten Feld auseinander zu setzen.
Irgendwie krieg ich das nicht klar definiert. Entweder schneidet er mir beim Einfügen alle Nachkommastellen ab (und füllt mit ,00), oder aber ich bekomme drei Stellen hinter den Komma.
Was muss ich in der Tabelle definieren, damit ich ein Feld bekomme was nur zwei Stellen nach den Komma anzeigt.
Zur Erklärung:
Ich füge in die Tabelle die Daten einer anderen Tabelle ein. (mittels INSERT im VBA) Das sind gute 5000 Datensätze. Mindestens einer der Datensätze ist korrupt, das heißt er hat mehr als zwei Nachkommastellen.
@database:
Festkommazahl, 2 Kommastellen, Zahl, Double hat übrigens nicht geklappt. :-\
Gruß
T.
Hallo,
irgendwas wirfst Du durcheinander:
1) Darstellung am Bildschirm
2) Darstellung intern für Rechenvorgänge
eine Ganzzahl (Datentyp Integer, bzw. Long) hat keine Nachkommenstellen.
eine Festkommazahl hat eine definierte Anzahl von Nachkommstellen (Currency, Währung z. B. 4 Nachkommastellen), wobei man sich das als Ganzzahl vorstellen kann, bei der lediglich "das Komma an der richtigen Stelle" steht, (was es ja intern gar nicht gibt)
eine Gleitkommazahl (Single, Double) hat eine zunächst nicht definierte Anzahl von von Nachkommastellen, weil intern mit Mantissen (Logarithmen) gerechnet wird. Hier ist lediglich die insgesamte Anzahl der gültigen Stellen (Genauigkeit) interessant (Single ~ 7, Double: ~ 15 genaue Stellen insgesamt)
Die Darstellung der ANZEIGE wird durch die Formatangabe gesteuert. Dabei kann eine Formatierung mit zwei Nachkommastellen bei einer Ganzzahl nur zu "00" führen, weil es bei diesem Zahlentyp gar keine Nachkomma-Stellenwerte gibt.
Hmm,
Das Problem liegt daran, das ich die Daten der Datenbank meines Vorgängers einfügen muss. Aber davon sind nicht alle Datensätze in Ordnung.
Da die Summenbildung nur eine grobe Information ist und nicht zur Berechnung herhalten muss, schneide ich nach zwei Nachkommastellen den Rest ab. Alles andere bringt mir nichst.
Grüße
T.
Hallo,
es wird (für mich) immer verwirrter...
Wenn es nur eine "grobe Info" ist, warum scherst Du Dich überhaupt darum? Sperr das Feld , so dass es gar nicht erst den Fokus erhalten kann
Wo ist denn da ein "korruptes Feld", bzw. ein DS, der nicht in Ordnung ist?
Weiterhin schreib:
=Format(Summe(nz( [Belast];0));"0")
so dass evtl. "Null-Werte" in einen numerischen Wert gewandelt und dass keine Dezimalstellen angezeigt werden. "[Belast]" selber darf kein berechnetes Formularfeld sein.
Hallo,
Ich dachte ich hätte die Summenfelder bereits gesperrt, aber das waren sie nicht. Autsch.
Zur Erklärung:
Wenn ich die Datensätze der anderen DB mit INSERT INTO einfüge, habe ich das Problem das einige Daten nicht korrekt sind.
Dort sind Tippfehler und ähnliches vorhanden. Datumsangaben die schon im Jahre 5000 sind, oder ein Eurobetrag mit drei Nachkommastellen.
Wenn ich jetzt eine Summe bilden will, aber der Eurobetrag hat drei Nachkommastellen, ist das kontraproduktiv.
Hab ich dir das jetzt besser erklären können?
Gruß
T.
Hallo,
ZitatDatumsangaben die schon im Jahre 5000 sind,
ok, das ist wohl etwas daneben :D
Zitatein Eurobetrag mit drei Nachkommastellen.
das ist VÖLLIG UNERHEBLICH, wie der Betrag ANGEZEIGT wird, wenn das Feld den korrekten DATENTYP besitzt. Wenn das Feld den Datentyp "Text" besitzt (und damit ist es keine "Zahl" sondern nur eine Ansammlung von Textzeichen), dann solltest Du beim Update mit der VAL und/oder STR-Funktion diese Zeichenfolge in eine von der SQL syntaktisch korrekt interpretierbare Wertzuweisung umsetzen.
Jou.
Ich weiß das ich das Einfügen der Fremddaten noch optimieren muss.
Daran bastel ich auch schon fleißig. ;)
Grüße
T.