【发布时间】:2013-01-07 11:45:51
【问题描述】:
我们有一个用 VB.NET 和客户端的 VBA 开发的应用程序。在 VB.NET 开发的安装程序自定义操作中,我们使用 Access 的 SysCmd 603 将 mdb 文件编译为 mde,这是著名的未记录的。示例代码如下所示:
a = CreateObject("Access.Application")
If a.SysCmd(603, PATH_TO_BXB_FILE, PATH_TO_BXE_FILE) = 0 Then
MsgBox("Fail to compile to MDB file")
End If
此代码之前一直有效,直到最近。现在 Syscmd 调用返回 0,表示编译失败。但是由于我不熟悉Access编程,我不知道如何进一步检查导致此失败的原因。在此链接Application.SysCmd Method (Access) 中,它表示如果失败,它将生成运行时错误,但我不知道如何检查此错误。请帮忙
【问题讨论】:
-
也许可以通过vb.net中的try-catch来完成,所以在catch code中msgbox会弹出exception.Message?
-
@johnyTee 感谢您的快速回复。但是我已经尝试过这种直观的方法,并且它不会抛出 System.Exception。它只是简单地返回 0。我猜它会在其他地方写下错误的原因。
-
处理我自己的 2010 MS Access 副本和这个 social.msdn.microsoft.com/Forums/en-US/accessdev/thread/…,Syscmd 运行。您的 mdb 是否包含代码?代码是否干净?该链接表明 Syscmd 在自动化中的用途有限。
-
好的,我在您发布链接的页面上的注释下发现了这一点:'如果 objectname 参数引用的对象未打开或不存在,则 SysCmd 方法返回值为零.'