Intermittent error when attempting to control another database我有以下代码:
我正在尝试的问题是一个弹出窗口,告诉我Access无法将焦点放在另一个数据库上。从代码中可以看到,我想在另一个mdb中运行一个子例程。任何其他实现此目的的方式将不胜感激。 我正在使用MS Access 2003。 这是一个间歇性错误。由于这是生产代码,每个月只能运行一次,因此很难复制,并且目前我无法提供确切的文本和编号。这是第二个月了。 我怀疑有人在使用此数据库或其他数据库时可能会发生这种情况。 数据流是每月在一个数据库中更新所有"项目",然后在另一个数据库中提供此信息。
也许是因为"常规"代码中的第一行: 我将创建另一个没有MsgBox的子例程。 我已经能够重现这种行为。当焦点必须转移到调用的数据库,但是用户在第一个数据库上设置了焦点([ALT] + [TAB])时,就会发生这种情况。"解决方案"是教育用户。 这是一个间歇性错误。由于这是生产代码,每个月只能运行一次,因此很难复制,并且目前我无法提供确切的文本和编号。这是第二个月了。 我怀疑有人在使用此数据库或其他数据库时可能会发生这种情况。 数据流是每月在一个数据库中更新所有"项目",然后在另一个数据库中提供此信息。
也许是因为"常规"代码中的第一行: 我将创建另一个没有MsgBox的子例程。 我已经在我们的开发数据库中进行了尝试,并且可以正常工作。这没有任何意义,因为其他代码在开发中也可以正常工作。 我已经能够重现"开发"中的错误。 "此操作无法完成,因为另一个应用程序很忙。选择'切换到'以激活...。" 我真的看不到其余信息,因为它闪烁得非常快。我猜这个错误是由于两个数据库之间的"切换"引起的。我希望通过教育用户可以停止这种情况。 菲利普,您的答案当然是正确的。如果没有事先开发"例程",我会选择该路径。 "我已经能够重现此行为。当焦点必须转移到被调用的数据库,但是用户在第一个数据库上设置了焦点([ALT] + [TAB])时,就会发生这种情况。"解决方案"是教育用户。"由于无法阻止用户在Windows中切换应用程序,因此我想关闭这个主题。 如果您想通过其他方式运行该功能,请尝试以下操作:
如果" MyMacro"的功能名称为" RunCode",则希望在Working.mdb中执行 我猜这个错误消息链接到您的数据库之一的状态。您在此处使用Jet连接和Access对象,由于多种原因(多用户环境,无法删除LDB Lock文件等),您可能无法正确关闭活动数据库并打开另一个数据库。因此,根据我的说法,解决方案是忘记Jet引擎,并使用另一个连接来更新"其他"数据库中的数据。 当您说"数据流每月要更新一个数据库中的所有'项目',然后使该信息在另一个数据库中可用"时,我假设"常规"的作用是通过SQL更新某些数据说明或等效的记录集更新。 为什么不通过打开与其他数据库的连接来尝试进行相应的更新,并(1)发送相应的SQL指令,或者(2)打开记录集并进行请求的更新? 一个想法是例如:
这也可以通过ODBC连接(和DAO.recordsets)完成,因此您可以选择自己喜欢的对象。 |