2015-09-26 25 views
0

在窗體事件中,我編寫了一些代碼以從表中選擇值並將其插入到另一個表中。這是我的代碼:當我嘗試插入時,出現「在此集合中找不到項目」錯誤

Dim rs As DAO.Recordset 
Set rs = CurrentDb.OpenRecordset("SELECT std_crs_absence.std_name, std_crs_absence.stg_number, std_crs_absence.crs_name, Sum(std_crs_absence.absence_time) AS SumOfabsence_time, Sum(std_crs_absence.molat) AS SumOfmolat " & _ 
"FROM std_crs_absence GROUP BY std_crs_absence.std_name, std_crs_absence.stg_number, std_crs_absence.crs_name ", dbOpenDynaset) 
rs.MoveFirst 
Do Until rs.EOF 
    sqlinsert = "INSERT INTO abs_summary ([std_name],[stg_number],[crs_name],[SumOfabsence_time],[SumOfmolat])" & _ 
    " VALUES ('" & rs("std_name") & "','" & rs("stg_number") & "','" & rs("crs_name") & "'," & rs("absence_time") & "," & rs("molat") & ")" 
    DoCmd.RunSQL (sqlinsert) 
    rs.MoveNext 
Loop 
rs.Close 
Set rs = Nothing 

當事件執行時,它給我一個錯誤,說「在這個集合中找不到的物品」。我究竟做錯了什麼?

回答

1

當您第一次選擇數據時,您檢索的數據爲SumOfabsence_timeSumOfmolat,但對於INSERT,請嘗試使用rs("absence_time")rs("molat")。這些列在Recordset中不存在,所以你會得到這個錯誤。您需要改用rs("SumOfabsence_time")rs("SumOfmolat")

(強制註釋:你真的應該使用參數化查詢,而不是動態SQL)

+0

謝謝你,我嘗試這樣做,但它給了我同樣的錯誤,這個問題是不是在這一點上 –

相關問題