在执行INSERT查询时,我可以在Access中做些什么来模仿TSQL ROW_NUMBER()函数的行为吗?
答案 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代码,查询速度会显着降低。