如果是Form,我会编写一些代码来从表中选择值并将其插入另一个表中。这是我的代码:
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
当事件执行时,它会给出一个错误,指出“此集合中找不到项目”。我做错了什么?
答案 0 :(得分:1)
首次选择数据时,您将检索总和为SumOfabsence_time
和SumOfmolat
,但对于INSERT,您尝试使用rs("absence_time")
和rs("molat")
。这些列不会存在于Recordset中,因此您会收到错误消息。您需要改为使用rs("SumOfabsence_time")
和rs("SumOfmolat")
。
(强制评论:你真的应该使用参数化查询而不是动态SQL。)