User Tools

Site Tools


vba:access:functions:rownr

[VBA][Access] rowNr()

Generiert eine Zeilennumerierung für ein Abfrage

Version 1.0.0 (04.07.2018)

Beispiele

SELECT  
	rownr(123, t.id) ,
	t.*
FROM tbl_data t
ORDER BY t.sort

Code

udf_rownr.bas
Attribute VB_Name = "udf_rownr"
'-------------------------------------------------------------------------------
'File         : udf_rownr.bas
'               All rights reserved
'               http://wiki.yaslaw.info/dokuwiki/doku.php/vba
'Environment  : VBA 2010 +
'Version      : 1.0.0
'Name         : rowNr
'Author       : Stefan Erb (ERS)
'History      : 04.07.2018 - ERS - Creation
'-------------------------------------------------------------------------------
Option Explicit
 
 
'/**
' * Die Funktion dient dazu, in einer Abfrage eine Zeilennummerierung durchzuführen
' * @example    Design-Ansicht:     ROW_NR: rownr(now; [id])
' * @example    SQL-Ansicht:        rownr(now, [id]) as ROW_NR
' * @param  Variant     Ein fixer Wert, der als Kennung gilt, damit eine neue Zählung beginnt. Am Besten NOW()
' * @param  Variant     Ein Dummy, damit die Funktion für jede Zeile aufgerufen wird. zB. [ID]
' * @param  Long        Der Zähler kann damit auf einen bestimmten Wert gesetzt werden
' * @return Long
' */
Public Function rowNr(Optional ByVal iSeqName As Variant = Null, Optional ByRef iDummy As Variant = Null, Optional iSetTo As Variant = Null) As Long
    Const C_NULL = "NULL"
    Static seqName As Variant
    Static id As Long
 
    If NZ(seqName, C_NULL) <> NZ(iSeqName, C_NULL) Then
        id = 0
        seqName = NZ(iSeqName, C_NULL)
    End If
    id = NZ(iSetTo, id + 1)
    rowNr = id
End Function
 
vba/access/functions/rownr.txt · Last modified: 04.07.2018 09:23:00 by yaslaw