好的,我認爲最簡單的&最快的方法是使用多個附加查詢使用VBA。下面的代碼針對每個DuplicateNo運行追加查詢N次,其中N = DuplicateNo,然後在DuplicateNo字段上進行過濾。
因此,它會在複製DuplicateNo = 1的所有記錄後運行追加查詢,在DuplicateNo = 2等位置運行查詢兩次。
附加查詢將運行所有唯一DuplicateNo值的總和。所以,如果可能的值是1-4,那麼查詢將運行10次。
Sub FillOutputTable()
Dim RS As Recordset
Dim strSQL As String
Dim N As Integer
Dim I As Integer
strSQL = ""
strSQL = strSQL & "SELECT DuplicateNo "
strSQL = strSQL & "FROM [table-input] "
strSQL = strSQL & "GROUP BY [table-input].DuplicateNo "
Set RS = CurrentDb.OpenRecordset(strSQL)
Do
N = RS("DuplicateNo")
For I = 1 To N
strSQL = ""
strSQL = strSQL & "INSERT INTO [table-output] (CustNo, CustName) "
strSQL = strSQL & "SELECT [table-input].CustNo, [table-input].CustName "
strSQL = strSQL & "FROM [table-input] "
strSQL = strSQL & "WHERE [table-input].DuplicateNo=" & N
CurrentDb.Execute strSQL
Next I
RS.MoveNext
Loop Until RS.EOF
RS.Close
Set RS = Nothing
End Sub
是否存在某種不能使用循環的約束? – EvilTeach
你正在使用哪個db? –
沒有限制。只要我能得到像所說明的那樣的輸出。 – dualdeath