![]() |
||
![]() |
Laufende Nummer fⁿr Berichte vergebenIn einer Access-Anwendung fⁿr eine Grundschule basieren Abfragen wie ╗alle Jungen der Klasse 1a½ auf einer Tabelle mit allen Daten. Die Berichte enthalten die laufende Nummer des Datensatzes, der von 1 beginnend aufsteigen soll. Wenn ich einzelne DatensΣtze l÷sche, kommt es in der Rei-henfolge der Nummern zu Lⁿcken, da Access die DatensΣtze nicht erneut nummeriert. Wie kann ich das Σndern? Die laufende Nummer, die Sie bei der Definition Ihrer Tabelle als Datentyp ausgewΣhlt haben, vergibt Access bei der Anlage eines Datensatzes nur ein einziges Mal automatisch. Sie k÷nnen diesen Wert nicht mehr Σndern. Deshalb eignet er sich fⁿr Ihre Anforderungen nicht. Hilfe bringt die VBA-Funktion ╗currentRecordNr()½, deren Quelltext im Kasten weiter unten steht oder auf der Heft-CDliegt: HCHIP-Code LFDNR Damit bestimmen Sie die Position des Datensatzes in der Gruppe, die der Bericht momentan darstellt. Public Function currentRecordNr(ReportName As String) As Long On Error GoTo Err_currentRecordNr Dim rpt As Report Set rpt = Reports(ReportName) currentRecordNr = rpt.CurrentRecord Exit_currentRecordNr: Exit Function Err_currentRecordNr: MsgBox Err.Description Resume Exit_currentRecordNr End Function Um die Funktion einzusetzen, ÷ffnen Sie ein Modul Ihrer Datenbank in der Entwurfsansicht und legen mit ╗Einfⁿgen | Prozedur½ die neue Funktion ╗currentRecordNr½ an. Definieren Sie die Funktion als ÷ffentlich und ergΣnzen Sie den VBA-Quelltext. Im String-Parameter ╗ReportName½ ⁿbergeben Sie den Namen des aktuellen Berichtes an die Funktion. Diese erzeugt nun das Objekt ╗rpt½, das auf den Bericht mit dem ⁿbergebenen Namen verweist. Mit der Eigenschaft ╗CurrentRecord½ des Report-Objektes ermitteln Sie die Position des aktuellen Datensatzes in der Gruppe, die durch das Report-Objekt dargestellt wird. Diesen Wert gibt die Funktion zurⁿck. Nun mⁿssen Sie den Rⁿckgabewert noch im Detailbereich Ihres Berichtes ausdrucken: Erzeugen Sie ein neues Textfeld und ÷ffnen Sie dessen ╗Eigenschaften½. Im Register ╗Alle½ tragen Sie bei ╗Steuerelementinhalt½ den Aufruf ╗=currentRecordNr(ôRptNameô)½ ein. Dabei tauschen Sie ╗RptName½ gegen den Namen Ihres Berichtes. |
![]() |