访问函数或表达式等效于SQL ROW_NUMBER()?

时间:2010-08-18 21:12:08

标签: tsql ms-access

在执行INSERT查询时,我可以在Access中做些什么来模仿TSQL ROW_NUMBER()函数的行为吗?

2 个答案:

答案 0 :(得分:5)

老人但是好人:

如何在查询中排名记录
http://support.microsoft.com/kb/208946

答案 1 :(得分:0)

其他选项是使用一小块VBA(即如果您真的在Access中工作,而不仅仅是使用Access数据库)

Option Compare Database
Dim rn As Long

Function ResetRownumber() As String
    rn = 0
    ResetRownumber = "OK"
End Function
Function RowNumber(dummyID As Integer) As Long
    If (dummyID > 0) Then
        rn = rn + 1
        RowNumber = rn
    End If
End Function

在开始查询之前调用ResetRownumber() 然后

SELECT RowNumber(anyfield) AS RowNum, OtherField FROM SomeTable

这会给你一个rownumber。 传递其中一个选定的字段名称不是可选的,否则VBA函数仅调用一次而不是每行调用。 警告:仅在有限数量的记录中使用它,因为通过调用每个选定行的VBA代码,查询速度会显着降低。