2010-08-18 56 views
3

在做INSERT查詢時,我可以在Access中做什麼來模仿TSQL ROW_NUMBER()函數的行爲?SQL ROW_NUMBER()的訪問函數或表達式的等價物?

+0

你想在INSERT期間嗎? – 2010-08-18 21:14:44

+0

Yessir。我看到迄今爲止的答案涉及到編寫一個選擇count()的子查詢。不知道這是否在INSERT中起作用,因爲它將從目標表中進行選擇 - Access是否按順序執行INSERT(一次一行)? – NateJ 2010-08-18 21:53:05

回答

0

另一選擇是用一小塊VBA(那是,如果你真的在工作訪問,而不僅僅是使用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()您開始查詢 和TH之前en

SELECT RowNumber(anyfield) AS RowNum, OtherField FROM SomeTable 

這會給你一個排號。 傳遞所選字段名稱之一是不可選的,否則VBA函數只調用一次而不是每行。 警告:僅在有限數量的記錄中使用它,因爲通過調用每個選定行的VBA代碼,查詢將顯着減慢。

相關問題