# [Access] Bericht Postionen Nummerieren



## Thomas Darimont (9. Juli 2003)

Servus!

Habe eben in einem Access-Buch nen netten Tipp gefunden:

Wenn man in einem Bericht verschiedene Positionen einer Gruppierung mit einer Laufenden Nummer versehen will, so muss man lediglich ein Textfeld in den Gruppierungsbereich des Berichts ablegen und als Steuerelementinhalt "=1" eingeben. Danach wählt man in den Eigenschaften des Textfeldes unter Daten -> Laufende Summe -> über Gruppe -> fertig! ;-)

Gruss Tom


----------



## Vitalis (26. August 2003)

Hallo Tom, ich muß zur Zeit eine Access-Anwendung schreiben und das mit der laufenden Nummer im Bericht wußte ich schon.. 

Aber wie in Gottes Namen macht man das in einem Formular? Ich werd noch wahnsinnig... Kennst Du oder jemand anderes die Lösung dafür? Ich brauch sowohl eine simple Nummerierung als auch eine laufende Summe.

Vielen Dank schonmal und Gruß,
Vitalis


*edit*

Habe die Lösung für beides gefunden. Und zwar geht das z.B. mit so einer Funktion:


```
Function GetSum(FeldName As String) As Single
  
  Dim Datensatz As Recordset
  Dim Summe As Single
  
  Set Datensatz = Me.RecordsetClone
  Datensatz.Bookmark = Me.Bookmark

  Do Until Datensatz.BOF
      Summe = Summe + IIf(IsNull(Datensatz(FeldName)), 0, Datensatz(FeldName))
      Datensatz.MovePrevious
  Loop
  
  GetSum = Summe
      
End Function
```

Im Textfeld, wo die laufende Summe angezeigt werden soll, gibt man als Steuerelementinhalt nun folgendes an:  =GetSum("FeldName")

Das war's.


----------



## Thomas Darimont (26. August 2003)

Servus!

Welche Formularart verwendest du denn ...
ich meine Zeigst du in deinem Formular immer nur einen Satz von mehreren an, über die du eine Summe bilden willst ?

Laufende Nr. könntest du bekommen indem du dir das Recordsetobjekt des Formulars besorgst und dann die 
Datensätze zählst ...

(Im  Formular-öffnen Ereignis) 

rs (Recordset Objekt) . moveLast
count = rs.recordCount

dann kannst du mit rs.count sehen, an der wievielten Stelle du dich befindest ...

denke mal, dass war so ...

und für die Summe kannst du ja folgendes machen ...

Sagen wir mal, du hast als Datenquelle die Tabelle Tbl1 dort willst du über alle Datensätze das Feld endwert summieren.

Dazu könntest du dir einfach eine Abfrage basteln die nur dieses Feld aus der Tabelle 1 enthält und über Gruppierung -> Funktion Summierung die Summe  errechnet ... ... in dem Ergebnis der Abfrage steht nur ein Feld  mit dem Namen summeVonEndwert. 
Du baust einfach beim wieder beim Open-Ereignis ein neues Recordset Objekt auf und benutzt als "Open" String deine Abfrage.

Nun kannst du mir rs!summeVonEndWert auf die Summe Zugreifen ...


Gruß Tom


----------



## Vitalis (26. August 2003)

Hi nochmal,
ich benutze ein Endlosformular und brauche für jeden Datensatz eine kumulierte Prozentangabe zu einer Gesamtsumme. 

Ich hab meine Frage oben mit der Lösung, die ich gefunden habe, editiert. Auf diese Weise funktioniert sowohl eine Nummerierung, als auch eine laufende Summe. Ist also schon erledigt.. aber danke für Deine Antwort 

Gruß,
Vita


----------

