Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Summe einer Spalte eines Listenfeldes





Frage

Hallo zusammen! Ich bräuchte in einem Formular, das ein Listenfeld enthält, die Summe einer Spalte dieses Listenfeldes. Das Listenfeld wird noch gefiltert, nach Datum und Text. Hat jemand einen Vorschlag, wie ich zu der heiß ersehnten Summe komme ???

Antwort 1 von piano

Hallo
Das einzige Problem ist, wohin zu plazieren:
Vorschlag: Bei Ereignis Formular Anzeigen.
Private Sub Form_Current()
Dim z%
Me.XSumme = 0
For z = 0 To Liste0.ListCount - 1
    Me.XSumme = Me.XSumme + Val(Liste0.Column(3, z))
Next z
End Sub
 

Das Formularfeld möge XSumme heißen, und die zu summierende Spalte ist 4
Zitat:
(Column(3, z)
.
Zähler beginnt mit 0!

Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von andi-ahnungslos

Hi piano! Vielen Dank für Deine Hilfe, ich habe sie wie folgt umgesetzt:

Private Sub Form_Current()
Dim z%
Me.Gesamtpreis = 0
For z = 0 To Listenfeld.ListCount - 1
Me.Gesamtpreis = Me.Gesamtpreis + Val(Listenfeld.Column(4, z))
Next z
End Sub

Vorab eine Frage zu Deinem Code, Du schreibst:
Das Formularfeld möge XSumme heißen, und die zu summierende Spalte ist 4
(Column(3, z)
--> ist es richtig, dass im Code (Column(3, z) steht, obwohl Spalte Nr. 4 summiert werden soll? Bei mir ist es Spalte Nr. 5, deshalb hab ich (4, z) im Code. Ist das korrekt?

Leider bekomme ich die Summe nicht angezeigt, es steht eine 0 im Feld Gesamtpreis.

Hast Du noch eine Idee, woran es liege könnte/was ich falsch mache ???

Vielen Dank im Voraus !!!
Andi

Antwort 3 von piano

Hallo
ad 1): Wie gesagt:
Zitat:
Zähler beginnt mit 0!

Zeile 0 ist die 1. Zeile und Spalte 0 ist die 1. Spalte.

ad 2): Der Zeitpunkt der Berechnung ist entscheidend: Wenn das Listenfeld erst nach der Anzeige des aktuellen Satzes
Zitat:
(Ereignis Formular Anzeigen)
gefüllt wirden, musst du ein anderes Ereignis für den Berechnungszeitpunk wählen (z.Bsp.: Akualisieren des Listenfeldes)
Gruss piano