我有下列代码:

Dim obj As New Access.Application
obj.OpenCurrentDatabase (CurrentProject.Path & "\Working.mdb")
obj.Run "Routine"
obj.CloseCurrentDatabase
Set obj = Nothing

这问题我尝试是弹出,告诉我的访问设置不将重点放在其他数据库。正如你可以看到代码,我要运行一个子程序在另一个mdb。任何其他方式实现这将不胜感激。

我的工作与MS Access2003年。

这是一个间断的错误。因为这是生产的代码,这将进行只有一次一个月,这是非常困难的再现,我不能给你的确切文字和号码在这个时候。这是第二个月发生这种情况。

我怀疑这可能发生在有人正与这个或其他数据库。

数据流是更新所有项目'每月一次在一个数据库,然后提供这些信息中的其他数据库。

也许,这是因为第一行中的'程序'码:如果vbNo=MsgBox("你想要更新吗?", 而"更新"),然后 退出功能 如果结束

我会让另一个子程序,而不MsgBox.

我已经能够重现这种行为。它发生时的重点已经转移到所谓的数据库,但用户设置的重点([ALT]+[标签])在第一数据库。的'溶液'是教育的用户。


这是一个间断的错误。因为这是生产的代码,这将进行只有一次一个月,这是非常困难的再现,我不能给你的确切文字和号码在这个时候。这是第二个月发生这种情况。

我怀疑这可能发生在有人正与这个或其他数据库。

数据流是更新所有项目'每月一次在一个数据库,然后提供这些信息中的其他数据库。

也许,这是因为第一行中的'程序'码:如果vbNo=MsgBox("你想要更新吗?", 而"更新"),然后 退出功能 如果结束

我会让另一个子程序,而不MsgBox.


我已经尝试过这种在我们的发展数据库和它的工作。这并不意味着任何东西作为其他代码也职工在发展。

有帮助吗?

解决方案 3

我已经能够重现的错误"发展".

"这一行动无法完成,因为其他应用程序繁忙。选择开关'激活。..."

我真的不能看到其他的消息,因为它是闪烁的速度非常快。我猜这个错误是由于'换'之间的两个数据库。我希望,通过教育用户,这将停止。

菲利普,你的回答是,当然,正确的。我会选择这一道路如果我没有开发的'常规'事先。

"我已经能够重现这种行为。它发生时的重点已经转移到所谓的数据库,但用户设置的重点([ALT]+[标签])在第一数据库。的'溶液'是教育的使用者"。 作为这是不可能防止用户的开关的应用程序,在Windows,我想接近的课题。

其他提示

我猜这个错误信息是相联系的国家之一的数据库。你在这里使用的喷气连接和访问对象,你会不能够,用于多种原因(多用户环境,unability删除LDB锁的文件等),以适当地靠近你的活动数据库和打开另一个。因此,根据我的解决方案是忘记喷气发动机和使用另一种联接,以更新的数据在"其他"数据库。

当你说"的数据流,以更新所有项目'每月一次在一个数据库,然后提供这些信息中的其他数据库",我的假定作用的你的"例行"是要更新一些数据,要么通过SQL指示,或相当的记录集中更新。

为什么你不试图作出相应的更新打开一个联接到你的其他数据库和(1)发送相应的SQL指令或(2)开记录集和使要求更新?

一个想法是例如:

Dim cn as ADODB.connexion, 
    qr as string, 
    rs as ADODB.recordset

'qr can be "Update Table_Blablabla Set ... Where ...
'rs can be "SELECT * From Table_Blablabla INNER JOIN Table_Blobloblo  

set cn = New ADODB.connexion
cn.open

You can here send any SQL instruction (with command object and execute method) 
or open and update any recordset linked to your other database, then

cn.close

这也可以通过ODBC联接(和道。记录),因此你可以选择你最喜欢的对象。

如果你想的另一个手段的运行的功能,尽量如下:

Dim obj As New Access.Application
obj.OpenCurrentDatabase (CurrentProject.Path & "\Working.mdb")

obj.DoCmd.RunMacro "MyMacro"
obj.CloseCurrentDatabase
Set obj = Nothing

这里'MyMacro'有一个行动的RunCode'功能的名字,你会喜欢的执行工作。mdb

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top