Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Werte aus selektierten Zeilen im Datenblatt-Unterformular summieren

Begonnen von 69bruno, Juni 14, 2012, 15:47:22

⏪ vorheriges - nächstes ⏩

69bruno

Hallo,

trotz Suchversuch habe ich keine Lösung für mein Problem gefunden.

Ich habe ein Unterformular in Datenblattansicht, das eine feste Anzahl Spalten und eine vom Hauptdatensatz abhängig varriierende Anzahl Zeilen enthält. Nun möchte ich, dass der Benutzer aus den angebotenen Zeilen mehrere markieren kann und die Summe der markierten Werte aus der letzten Spalte irgendwo ausgeworfen wird. (Egal ob Balloon-Meldung oder Popup oder Statusleiste....)
Am wichtigsten ist erstmal, dass Access die Werte der markierten Zeilen überhaupt summiert.

Kennt da einer einen Weg zu ??  :-[

Sieht etwa so aus:

|1. Quartal||Punkte||4|
|2. Quartal||Punkte||3|
|3. Quartal||Punkte||2|
|4. Quartal||Punkte||1|
|1. Quartal||Punkte||0|

Wenn jetzt Zeile 2,3 und 4 markiert werden, möchte ich das Ergebnis 6 irgendwo auswerfen.

Ach ja, Acc 2003
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

DF6GL

Hallo,


in Endlosform/Datenblattansicht ist es schwierig/nicht möglich , nicht aufeinander folgende Datensätze zu markieren. Als Alternative wäre denkbar:

-- ein Listenfeld mit Mehrfachselektion. Mittels Durchlaufen der selektierten Einträge kann die Summe berechnet werden.


-- Ein zusätzliches Ja/Nein-Feld, das als Kontrolkästchen im Endlosform eingebaut wird und als Markierung für die gewünschten DS fungiert. Über eine summierende Abfrage (bzw. die DSum()-Funktion) wäre dann die Berechnung durchführbar.


69bruno

 ;D
Genau das habe ich auch gemerkt. Aber.....ich habe die Reihenfolge einfach so festgelegt, das für unseren Anwendungsbereich immer zusammenhängende Zeilen markiert werden.

Und dann habe ich bei einer Internetquelle einen Code gefunden, der nur leicht ageändert werden musste, um meiner Fragestellung gerecht zu werden:
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
   Dim i As Long
   Dim F As Form
   Dim RS As Recordset
   Dim Summe As Long

   Summe = 0
   Set F = Me
   Set RS = F.RecordsetClone

   RS.MoveFirst
   RS.Move F.SelTop - 1

   For i = 1 To F.SelHeight
     Summe = Summe + RS![Anzahl]
     RS.MoveNext
   Next i
MsgBox "Summe der Punkte ausgewählter Zeiträume: " & Summe
End Sub
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If