这段代码无需这么复杂,如下修改即可:
Private Sub CmdMakeCJSheet_Click()
'定义两个记录集
Dim Rs1 As new ADODB.Recordset
Dim Rs2 As new ADODB.Recordset
'打开两个记录集,也就是将数据表中的数据读入到数据集中。
Rs1.Open "成绩表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Rs2.Open "选课表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'清空成绩表,等效的处理:docmd.runsql "delete * from 成绩表"
For iTemp = 0 To Rs1.RecordCount - 1
Rs1.Delete 1
Rs1.Update
Rs1.MoveNext
Next iTemp
'将选课表数据写入成绩表,等效的处理:docmd.runsql "insert into 成绩表 (学号,课程编号) select 学号,课程编号 from 选课表"
For iTemp = 0 To Rs2.RecordCount - 1
Rs1.AddNew
Rs1("学号") = Rs2("学号")
Rs1("课程编号") = Rs2("课程编号")
Rs1.Update
Rs2.MoveNext
Next iTemp
Me![InputAchFrm].Requery
MsgBox "生成空成绩单成功,并且可以输入成绩!", vbOKOnly, "生成成绩单完成"
Set Rs1 = Nothing
Set Rs2 = Nothing
End Sub
如果还想简化,三句就足矣:
Private Sub CmdMakeCJSheet_Click()
currentdb.execute "delete * from 成绩表"
currentdb.execute "insert into 成绩表 (学号,课程编号) select 学号,课程编号 from 选课表"
Me![InputAchFrm].Requery
End Sub