2

我们有一个在 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)中,它说如果失败,它将生成运行时错误,但我不知道如何检查此错误。请帮忙

4

1 回答 1

3

syscmd的 603 参数未记录。它会因多种原因而失败,例如,在 VBA 下运行,如果您不使用单独的 MS Access 实例,它将失败。在,其他失败的原因如下:

  • 当它用于在单独的 Access 数据库(与解决方案数据库分开)中运行的 VBA 代码中时;
  • 当解决方案数据库关闭时;和
  • 当解决方案数据库中的 VBA 代码中没有语法错误时。

该文档还列出了这些参考:

Douglas Steele 在这里提出了一个有趣的观点:
http
://www.pcreview.co.uk/forums/thread-2621925.php Tony Toews 在这里调查了未记录的 SysCmds:
https ://msmvps.com/blogs/access/archive/2007/ 08/19/so-what-are-the-undocumented-syscmd-items.aspx
Tony Toews 还链接到此页面:
http ://www.everythingaccess.com/tutorials.asp?ID=Undocumented-SysCmd-Functions

于 2013-01-07T19:56:35.190 回答