====== [VBA][Access] flexible Zeilennummern in einem Form anzeigen ====== //Dieses kleine Tutorial zeigt, wie man in einem Datensheet oder einem Endlosform eine Zeilennummer anzeigen kann// - Ein ungebundenes Textfeld erstellen. Ich nenne es mal ''tbxRowNr''. - Dem neuen Textfeld die Control Source ''=rowNr()'' mitgeben. {{:vba:tutorials:2017-08-24_143132.png?linkonly|Bild}} - Das Textfeld auf disabled und loocked setzen {{:vba:tutorials:2017-08-24_143913.png?linkonly|Bild}} - Für das Formular das Code-Modul aktivieren (Formular-Parameter HasModule = True) {{ :vba:tutorials:2017-08-24_143329.png?linkonly |Bild}} - Den untenstehenden Code dem Formular hinterlegen. - die Konstante C_ROWNR_CONTROL anpassen und den Namen des Steuerelementes eingeben {{:vba:tutorials:2017-08-24_143439.png?direct&400|}} Option Explicit '------------------------------------------------------------------------------- ' -- Settings '------------------------------------------------------------------------------- Private Const C_ROWNR_CONTROL = "tbxRowNr" 'Name des Steuerelemtens mit der Zeilennummer '------------------------------------------------------------------------------- ' -- Private Members '------------------------------------------------------------------------------- Private pRowNr As Long 'SPeichern der letzten Zeilennummer '------------------------------------------------------------------------------- ' -- Private Events '------------------------------------------------------------------------------- '/** ' * Bei Löschen, hinzufügen, Filtern etc. neu berechnen ' */ Private Sub Form_Current() pRowNr = 0 'Nummer zurücksetzen Me(C_ROWNR_CONTROL).Requery 'Nummer neu berechnen End Sub '------------------------------------------------------------------------------- ' -- Public Methodes '------------------------------------------------------------------------------- '/** ' * Gibt die nächste Zeilennummer zurück ' * @return Long/Null ' */ Public Function rowNr() As Variant 'Letzter leerer zukünftiger Datensatz nicht berechnen If Me.Recordset.RecordCount <= pRowNr Then rowNr = Null Else pRowNr = pRowNr + 1 'Letze Nummer eins hochrechnen rowNr = pRowNr 'und zurückgeben End If End Function