【发布时间】:2021-11-22 17:02:23
【问题描述】:
我将以我是 Access/VBA 的新手这一事实作为开头。我正在尝试为链接的 SQL Server 数据库在 MS Access 中创建一组用于数据输入的表单,以记录植被数据。我有一个带有三个未绑定控件的表单,它们为子表单中的多个记录的字段提供值。具体来说,主窗体中的三个控件分别是Transect_OID、Data_Recorder和Data_Observer。在子表单中,每个 Transect_OID 对应于 30 条记录,对应于沿样带记录植物物种的 30 个位置中的每一个。我在主窗体中添加了一些事件过程来自动填充子窗体中的相应字段,以确保整个样带记录的一致性。但是,此设置导致写入冲突错误。在搜索互联网进行修复后,我遵循了此链接 https://www.accessrepairnrecovery.com/blog/fix-ms-access-write-conflict-error 中解决方案 #5 中的建议。当我添加建议的 OnActivate 事件过程时,我得到运行时错误 91“对象变量或未设置块变量”。这是该事件过程的代码:
Private Sub Form_Activate()
Dim rs As ADODB.Recordset
Set rs = Me.Recordset.Clone
rs.Open
rs.Bookmark = Me.Bookmark
DoCmd.RunCommand acCmdRefresh
Me.Bookmark = rs.Bookmark
rs.Close
Set rs = Nothing
End Sub
Private Sub Form_Deactivate()
DoCmd.RunCommand acCmdSaveRecord
End Sub
Private Sub Observer_AfterUpdate()
Me.frmLPIDetail.Form.Data_observer = Me.Observer
Me.Dirty = False
End Sub
Private Sub Recorder_AfterUpdate()
Me.frmLPIDetail.Form.Data_recorder = Me.Recorder
Me.Dirty = False
End Sub
通过研究其他运行时错误 91 投诉,似乎在以下情况下会引发此错误:
-
没有选择适当的库作为参考。在这种情况下,这将是 Microsoft ActiveX 数据对象 2.5 库。我已确保已选择此选项。
-
对象变量已声明但未设置。代码的第 3 行应该是它的设置位置。然而,这是调试器抱怨的那一行。
-
对象变量设置为空。倒数第二行就是这种情况,但我的理解是该行重置了对象变量
-
With 块中的 Go To 语句。该子程序从不调用这些命令,因此很容易排除此原因。
我不知道为什么会这样。任何建议将不胜感激。
【问题讨论】:
标签: ms-access runtime-error ado