【问题标题】:ShellExecute() returns error code 5 when trying to open mdb file >10MB尝试打开大于 10MB 的 mdb 文件时,ShellExecute() 返回错误代码 5
【发布时间】:2009-02-12 14:43:41
【问题描述】:

我有一个 MsAccess 2003 应用程序,它是启动其他 MsAccess 应用程序的仪表板。

我使用 API ShellExecute 来启动/打开 MsAccess 应用程序,如下所示:

lngReturn = ShellExecute(Application.hWndAccessApp, _
                            "Open", _
                            AccessMDBName, _
                            "", _
                            "C:\", _
                            SW_SHOWNORMAL)

当将此代码部署到仅安装了 MsAccess 2003 运行时的用户计算机上时,打开大于 10MB 的 MDB 文件时返回错误代码 =5 对于较小的 MDB 文件,我没有收到任何错误。

知道会发生什么吗?

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    对我来说,10MB 的文件大小似乎不太可能(但没有什么是不可能的)。文件在同一个地方吗? Errorcode=5 表示访问被拒绝。作为启动 Access 的一部分,必须创建或更新 ldb 文件。您的文件是否可能位于不同的位置,并且此人对包含 >10MB 文件的文件夹没有写入权限? C:\ 是 mdb 文件的位置吗?一些公司的政策限制了对 C: 驱动器根目录的写访问。

    【讨论】:

      【解决方案2】:

      C:\ 的根目录可能对用户不可写。

      您可以做的是删除 c:\,它将使用当前工作目录。阿拉:

      lngReturn = ShellExecute(Application.hWndAccessApp, _
                                  "Open", _
                                  AccessMDBName, _
                                  "", _
                                  "", _
                                  SW_SHOWNORMAL)
      

      对于较小的文件(并且 10MB 不再那么大),MS Access 可能无需向工作目录写入任何内容即可逃脱。

      【讨论】:

      • 呃,不行,LDB文件不管MDB大小都得写。
      【解决方案3】:

      尝试在默认浏览器中打开网页时,我遇到了同样的问题,并且它(浏览器)由于某种原因而损坏。您可以尝试在资源管理器中单击文件或在命令行中键入文件名,以确保系统自行正确打开文件。因此,如果系统无法打开文件,这可能是原因,那么您可以检查应该打开文件的应用程序。祝你好运。希望这有助于找到问题。

      【讨论】:

        猜你喜欢
        • 2017-12-17
        • 1970-01-01
        • 1970-01-01
        • 2020-05-28
        • 2017-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多