尝试打开大于 10MB 的 mdb 文件时,ShellExecute() 返回错误代码 5

Posted

技术标签:

【中文标题】尝试打开大于 10MB 的 mdb 文件时,ShellExecute() 返回错误代码 5【英文标题】:ShellExecute() returns error code 5 when trying to open mdb file >10MB 【发布时间】: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 文件,我没有收到任何错误。

知道会发生什么吗?

【问题讨论】:

【参考方案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】:

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

【讨论】:

以上是关于尝试打开大于 10MB 的 mdb 文件时,ShellExecute() 返回错误代码 5的主要内容,如果未能解决你的问题,请参考以下文章

无法从解析服务器下载大于 20mb 的 pdf 文件

打开受 Busy Win 保护的 mdb 文件密码

如何使用 Lambda /API Gateway 在 S3 上上传大于 10MB 的 csv 文件

当文件大小大于 2mb 时,Imagick 无法调整 GIF 图像的大小

访问错误 3443:无法识别的数据库格式“databasename.mdb”

使用 C# 检查 mdb 中的密码 [关闭]