尝试编辑绑定到ADO记录集的表单中的记录时出现错误“对象已打开”

时间:2014-01-27 21:37:03

标签: vba ms-access ado

Private Sub Form_Open(Cancel as Integer)
Dim rsnb As ADODB.Recordset
Set rsnb = New ADODB.Recordset
rsnb.Open "SELECT * FROM QmessagesNoBill WHERE messageID='" & Me.OpenArgs & "'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Set Me.Recordset = rsnb 'set the forms recordset (me!) as the ADO recordset noted in SQL query above, see kb281998
rsnb.Close: Set rsnb = Nothing
End Sub

对错误进行调试时,突出显示按钮事件中的第一行文本:

Private Sub btnapprove_Click()
Me.Recordset!reviewed = 1 'mark that its been reviewed
Me.Recordset.Update
End Sub

请注意:

  • 如果我将Dim语句放在事件过程之外,则此代码有效
    • 我只想将它放在窗体打开事件中,因为它使代码看起来更清晰&我可以在那里放置密切的声明,而不是在表单关闭事件
  • 我是编程和新手的新手。我不熟悉DAO

1 个答案:

答案 0 :(得分:1)

我认为您不应该在将记录集绑定到表单后立即关闭记录集。

尝试从代码中删除rsnb.Close,看看是否可以修复它。