Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: dobby110 am August 08, 2022, 15:01:46

Titel: richtige Feldgröße und Format wählen.
Beitrag von: dobby110 am August 08, 2022, 15:01:46
Hi zusammen,

ich hätte mal eine generelle Frage bzgl. der Feldgröße beim Felddatentyp "Zahl"

Und zwar habe ich ein Umsatz-Feld.
Dieses habe ich als Zahl, Feldgröße "Double" mit dem Format "Standardzahl" formatiert.
Dezimalstellenanzeige "Automatisch"

Welchen Hintergrund hat die Dezimalstellenanzeige "Automatisch"?
Denn wenn ich mehr als 2 Nachkommastellen eingebe, werden mir diese gar nicht angezeigt.
Im Regelfall benötige ich nur 2 Nachkommastellen, es gibt aber Ausnahmen, bei denen ich bis zu 7 Nachkommastellen eintragen muss. Diese würde ich dann natürlich auch gerne sehen.

Jetzt kämpfe ich mit dem Problem, dass mit meiner aktuellen Einstellung nur 2 Nachkommastellen angezeigt werden. Ich würde aber auch ungern die Dezimalstellenanzeige auf 7 umstellen, da es dann, in den Fällen ohne oder nur mit wenigen Nachkommastellen, schnell unübersichtlich wird.

Kann mir jemand sagen wie ich ein solches Feld am besten formatiere?
Die Daten die in das Feld eingetragen werden, werden auch nochmals über eine Schnittstelle weiterverarbeitet. Es darf hier also auf keinen Fall gerundet oder irgendwas abgeschnitten werden.

Achso ... das Format "Standardzahl" habe ich auf Grund der 1000er Trennung gewählt, da es sich teilweise um recht hohe Werte handelt.



Titel: Re: richtige Feldgröße und Format wählen.
Beitrag von: MzKlMu am August 08, 2022, 15:43:38
Hallo,
wenn Du 7 Stellen sehen willst, so musst Du 7 Stellen einstellen. Da gilt entweder alles oder oder nichts.
Die Einstellung "Auto" bei den Dezimalstellen bewirkt, dass die Einstellungen des Formats übernommen werden. Und Standardzahl hat nun mal nur 2 Kommastellen. Das Format bestimmt letztendlich die Anzeige. Bleibt das Format leer, bestimmt die Dezimalstellenanzeige die Ansicht. Aber dann hast Du keinen Tausenderpunkt  Wenn Du diesen haben willst, musst Du das Format selbst bestimmen und
#.##0,0000000einstellen. Es werden aber immer 7 Stellen angezeigt.
1.234,0000000
1.345,2345000
1.236,3456789
Titel: Re: richtige Feldgröße und Format wählen.
Beitrag von: PhilS am August 08, 2022, 16:38:56
Bzgl. der Kommastellen ist der Antwort von MzKlMu wenig hinzuzufügen. Nur: Evtl. kannst du in dem jeweiligen Formular je nach Bedarf (Kennzeichen im Datensatz) die Anzahl der Nachkommstellen per VBA umstellen von 2 auf 7.
Zitat von: dobby110 am August 08, 2022, 15:01:46Und zwar habe ich ein Umsatz-Feld.
Dieses habe ich als Zahl, Feldgröße "Double" mit dem Format "Standardzahl" formatiert.
[...]
Es darf hier also auf keinen Fall gerundet oder irgendwas abgeschnitten werden.
Dein Umsatz ist ein Umsatz von Geld? Dann wäre eigentlich der Datentyp Währung die richtige Wahl. - Allerdings speichert Währung nur 4 Nachkommastellen. Stattdessen könntest du den Datentype Zahl - Decimal verwenden und 7 Nachkommastellen vorgeben.
Double ist definitiv ungeeignet, weil Fließkommazahlen per Definition nicht exakt sind.

Titel: Re: richtige Feldgröße und Format wählen.
Beitrag von: MzKlMu am August 08, 2022, 17:04:36
Hallo,
Nur noch als Hinweis:
Zitat von: undefined.... die Anzahl der Nachkommstellen per VBA umstellen von 2 auf 7.
Das macht aber nur in einem normalen Formular Sinn, in einem Endlosform gilt die Umstellung dann auch wieder für die ganze Spalte und nicht je Datensatz.

Und auch bei Dezimal gibt es das gleiche Problem wie in #1 geschildert.

@Philipp
Wieso reicht Double nicht ?
Wenn ich recht weis, ist doch Double auf 15 Stellen genau.
Titel: Re: richtige Feldgröße und Format wählen.
Beitrag von: PhilS am August 08, 2022, 18:04:42
Zitat von: MzKlMu am August 08, 2022, 17:04:36Wenn ich recht weis, ist doch Double auf 15 Stellen genau.
Fließkommazahlen sind per Definition nicht genau, unabhängig von der Anzahl der Stellen.

Aus der VBA-Doku zu Double (https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/data-types/double-data-type): "Double-precision numbers store an approximation of a real number."

Nachfolgend ein kleines Beispiel mit nur 3(!) Stellen, das bereits Ungenauigkeiten aufweist.
Public Sub Double_Inaccurarcy()

    Const a As Double = 43.1
    Const b As Double = 43.2
    Const c As Double = 1
    Dim ergebnis As Double
   
    ergebnis = (a - b) + c
    Debug.Print ergebnis

End Sub

Zum Vergleich dasselbe mit Currency, ohne die Ungenauigkeit:
Public Sub Currency_NoInaccurarcy()

    Const a As Currency = 43.1
    Const b As Currency = 43.2
    Const c As Currency = 1
    Dim ergebnis As Currency
   
    ergebnis = (a - b) + c
    Debug.Print ergebnis

End Sub

Titel: Re: richtige Feldgröße und Format wählen.
Beitrag von: MzKlMu am August 08, 2022, 19:16:31
Hallo Philipp,
vielen Dank, aber eigentlich hätte ich es wissen müssen. Kann meine Frage gar nicht mehr verstehen. ;D  :-[