【发布时间】:2010-09-09 09:12:15
【问题描述】:
我有以下代码:
Dim obj As New Access.Application
obj.OpenCurrentDatabase (CurrentProject.Path & "\Working.mdb")
obj.Run "Routine"
obj.CloseCurrentDatabase
Set obj = Nothing
我正在试验的问题是一个弹出窗口,告诉我 Access 无法将焦点设置在其他数据库上。从代码中可以看出,我想在另一个 mdb 中运行一个 Subroutine。任何其他方式来实现这一点将不胜感激。
我正在使用 MS Access 2003。
这是一个间歇性错误。由于这是每月仅运行一次的生产代码,因此极难重现,我目前无法为您提供确切的文本和编号。这是发生这种情况的第二个月。
我怀疑当有人在使用这个或其他数据库时可能会发生这种情况。
数据流是每月在一个数据库中更新一次所有“项目”,然后在另一个数据库中提供此信息。
也许是因为“例程”代码中的第一行: If vbNo = MsgBox("你想更新吗?", vbYesNo, "更新") Then 退出函数 结束如果
我将制作另一个没有 MsgBox 的子例程。
我已经能够重现这种行为。当焦点必须转移到调用的数据库时会发生这种情况,但用户将焦点 ([ALT]+[TAB]) 设置在第一个数据库上。 “解决方案”是教育用户。
这是一个间歇性错误。由于这是每月仅运行一次的生产代码,因此极难重现,我目前无法为您提供确切的文本和编号。这是发生这种情况的第二个月。
我怀疑当有人在使用这个或其他数据库时可能会发生这种情况。
数据流是每月在一个数据库中更新一次所有“项目”,然后在另一个数据库中提供此信息。
也许是因为“例程”代码中的第一行: If vbNo = MsgBox("你想更新吗?", vbYesNo, "更新") Then 退出函数 结束如果
我将制作另一个没有 MsgBox 的子例程。
我已经在我们的开发数据库中尝试过这个,它可以工作。这并不意味着什么,因为其他代码在开发中也可以正常工作。
【问题讨论】:
-
我从未见过 Access 给出那个特定的错误消息。我已经看到“您没有打开数据库的权限”和“Access 无法设置焦点”一个对象,但没有看到您声明的错误消息。您能否发布错误号和确切的错误消息?我怀疑,正如 Remi 所做的那样,错误出在您在另一个数据库中的例程代码中,因此您可能也需要发布该错误。