0
我正在MS ACCESS 2010中的一個項目中工作,其中現有的表讓我們假設員工詳細信息,並且必須提取每行基於僱員的字段first_name,然後爲每個人創建一個不同的表。例如,如果名字是John,那麼我應該從員工詳細信息表中獲取所有記錄,其中第一個名稱字段是John,並將所有這些行保存在新的表即新桌子_John等。 爲此,我創建了一個新表,只有第一個名稱字段的唯一記錄,然後運行下面的代碼,但我得到一個運行時錯誤3067:查詢輸入必須包含至少一個表或查詢如何從MS ACCESS中的表中提取唯一記錄(行)並將它們保存到不同表中
Private Sub cmdRemoveDuplicates_Click()
Dim db As Database
Dim rst As Recordset
Dim rst1 As Recordset
Dim tbl As Table
Set db = CurrentDb
Set rst = db.OpenRecordset("tblDetails", dbOpenDynaset, dbSeeChanges)
'Make new table with unique records from first name field
CurrentDb.Execute "SELECT distinct first_name INTO [unique_records] from tblDetails;"
Set rst1 = db.OpenRecordset("unique_records", dbOpenDynaset, dbSeeChanges)
rst1.Requery
Do Until rst1.EOF
CurrentDb.Execute "SELECT tblDetails.* INTO tblNew" & rst1!first_name & _
" FROM unique_records LEFT JOIN tblDetails ON unique_records.first_name = tblDetails.first_name" & _
" WHERE (((tblDetails.first_name)='" & rst1!first_name & "'));"
rst1.MoveNext
Loop
rst1.Close
rst.Close
db.Close
Set rst1 = Nothing
Set rst = Nothing
Set db = Nothing
End Sub
該代碼在Excel 2010中工作,以前我在Excel 2013中運行,所以它可能是一些兼容性問題,但我上面在我的問題中說明的代碼終於工作。 – 2014-12-16 18:22:53