尝试打开大于 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的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Lambda /API Gateway 在 S3 上上传大于 10MB 的 csv 文件
当文件大小大于 2mb 时,Imagick 无法调整 GIF 图像的大小