online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Torillo vom 10.08.2021, 12:35 Options

Access Summe im Listenfeld rechnet Dezimalzahlen nicht

Hallo Gemeinde,

ich habe mit folgendem Code ...

Dim z%
Me.SummeStunden = 0
For z = 0 To Stundenliste.ListCount - 1
Me.SummeStunden = Me.SummeStunden + Val(Stundenliste.Column(4, z))
Next z

... die Summe eines Listenfelds berechnet, was soweit auch funktioniert. AAAAABER: sämtliche Ergebnisse mit Dezimalstellen werden komplett ignoriert, also z. B.:

Zeile 1: 4,25
Zeile 2: 1,00
Zeile 3: 1,75
Zeile4: 2,00

-> ergibt ein Ergebnis von: 3.

In der Tabelle ist das Feld "Stundenanzahl" als "Zahl" mit Feldgröße "Double", Format "Allgemeine Zahl", Dezimalstellenanzeige "2" angelegt.

Hat jemand eine Idee, wie ich zu einem richtigen und vollständigen Ergebnisse komme?

Vielen Dank im Voraus!


Antwort schreiben

Antwort 1 von RaHi vom 10.08.2021, 18:33 Options

Hallo Torillo,

probiere mal:
Me!SummeStunden = Me!SummeStunden + CDbl(Stundenliste.Column(4, z))
Ach ja, der "Punkt" solltest du nur für Eigenschaften des Objekts nehmen. Für Felder anzusprechen, ist es besser, das Ausrufezeichen zu verwenden.

Gruß
Ralf

Antwort 2 von Torillo vom 10.08.2021, 22:21 Options

Hallo Ralf,

danke für Deine Hilfe, das probiere ich dann aus. Zwischenzeitlich hat sich das Problem - nach einem 3/4 Tag suchen - lösen lassen, und zwar so:

Dim z As Integer
Dim Summe As Single

Summe = 0

For z = 0 To Stundenliste.ListCount - 1
Summe = Summe + Val(Str(Stundenliste.Column(4, z)))
Next z

Me!SummeStunden = Summe

--> nach Einfügen des Str in der Zeile "Summe = Summe + Val(Str(Stundenliste.Column(4, z)))" hat´s das richtige Ergebnis ausgeworfen!

Halleluja!

Antwort 3 von RaHi vom 10.08.2021, 23:00 Options

Hallo Torillo,

das Problem ist die englische (.) kontra deutsche (,) Schreibweise des Dezimalzeichens. Erlaube dir mal den Spaß und stelle in der Systemsteuerung unter "Regions- und Sprachpotionen" (Vista) auf englisch um, du wirst sehen, dass Programme plötzlich nicht mehr funktionieren, wenn du mit dezimalzahlen arbeitest, oder du hast dich echt beherscht bei der Programmierung. Noch ein Tipp: Schaue dir die Teilterme im Direktfenster an, so ersparst du dir viele Fehlversuche.
Noch viel Erfolg bei deinen weiteren Entwicklungen.

gruß
Ralf

Antwort 4 von Torillo vom 10.08.2021, 23:20 Options

Hallo Ralf,

ich bin glücklicher XP-Nutzer, hab mich bisher erfolgrich vor Vista gedrückt ;-)

Was das "oder du hast dich echt beherrscht bei der Programmierung" angeht: Access ist Neuland für mich, das meiste krieg ich mit Hängen und Würgen hin, wenn ein Profi mal den Code anschauen würde, würde es ihm kalt den Rücken runterlaufen!

Das mit dem Direktfenster hab ich auch noch nicht gerafft, bei mir gibt´s da keine "Ergebnisse". Aber das schau ich mir auf jeden Fall nochmal an, ist sicher eine große Erleichterung!

Ich hab auch schon ein neues Problem, werde ich dann mal extra posten -> wenn Du willst, schau mal rein :-)

Danke nochmal und Gruß
Torsten

Antwort 5 von RaHi vom 11.08.2021, 19:36 Options

Hallo Torsten,

die Sache mit dem Direktfenster solltest du dir Anschauen. Wenn du im VB-Modul bist, kannst du dieses Fenster mit Menü "Ansicht-->Direktfenster" einblenden, falls du es noch nicht hast. Im Direktfenster kannst du einfache Rechnungen ausführen, Bsp.:
? 3+4
oder dir Inhalte von Variablen anschauen, Bsp.:
? Me!SummeStunden
. Wenn du in den Debug-Modus gehst (setzte z.B. mit der Funktionstaste F8 in deinem Code in der Zeile
Summe = Summe + Val(Str(Stundenliste.Column(4, z)))
einen "Breakpoint". Dann kannst du mit F5 das Programm bis dahin laufen lassen und dann mit F8 im einzelschritt das Programm weiter ausführen. Gehst du dabei mit der Maus über die Variablen, wird dir auch der aktuelle Wert angezeigt. Alternativ gibst du wie oben beschrieben, die Ausdrücke im Direktfenster ein. Probiere es aus, das lohnt sich.

Gruß
Ralf

Ähnliche Themen

summe in accessbericht aus felder mit formeln
nathi  21.02.2008 - 95 Hits - 3 Antworten

MS Access
knipser  13.03.2008 - 50 Hits - 4 Antworten

Summe bilden, wenn Kriterium erfüllt
Meikel  24.03.2008 - 33 Hits - 4 Antworten

Access Summe Listenfeld mit Nachkommstellen
accessy  24.06.2008 - 57 Hits - 9 Antworten

SQL Server 2008 Express ADV - Datentyp Listenfeld?
mctommson  09.06.2009 - 311 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026