为什么我不需要关闭SQL表

时间:2018-02-06 11:44:25

标签: sql-server vba

在下面的代码中,当我关闭电子邮件记录集时,我收到错误

  

关闭对象时不允许操作

...为什么我需要关闭Leagues RecordSet(在SELECT之后)而不是Emails RecordSet(在更新之后)?!?

Call ConnectToDatabase

SQLstr = "SELECT [Id],[Name],[Session] From [Leagues] "
SQLstr = SQLstr & "WHERE Leagues.[Name] = '" & UCase(KAleague) & "';"

KA_RS_Leagues.Open SQLstr, KA_DB, adOpenDynamic, adLockOptimistic

SQLstr = "UPDATE Emails SET FixtureList = 1 "
SQLstr = SQLstr & "WHERE Emails.League = '" & KA_RS_Leagues!ID & "';"

KA_RS_Emails.Open SQLstr, KA_DB, adOpenDynamic, adLockOptimistic

KA_RS_Leagues.Close
KA_RS_Emails.Close <<< Error occurs here

1 个答案:

答案 0 :(得分:1)

UPDATE不返回任何结果集,per the documentation

  

使用Source的{​​{1}}参数不是一个好主意   执行不返回记录的操作查询的方法,因为   没有简单的方法来确定呼叫是否成功。该   此类查询返回的Open将被关闭。执行一个   不返回记录的查询,例如SQL Recordset语句,   调用INSERT对象的Execute方法或Command   相反,Execute对象的方法。