【问题标题】:Access VBA API cannot access files on Windows 8Access VBA API 无法访问 Windows 8 上的文件
【发布时间】:2014-07-22 21:30:59
【问题描述】:

解决方案:原来这台 win 8 机器隐藏了已知的文件扩展名。我的两个测试文件最终都是 testing.txt.txt 和 testing.pdf.pdf,当我试图找到 testing.txt 时,这当然会失败。

由于某种原因,执行文件操作的 VBA api 的任何部分在我运行 Windows 8 的系统上失败,但在 Windows 7 上成功(都运行 Access 2013)。

我试图使用 FollowHyperlink 方法作为打开 .pdf 文件的简单方法。所以我开始简单:

FollowHyperlink "C:\TestingFolder" - 产生一个打开路径的资源管理器窗口(太棒了!) FollowHyperlink "C:\TestingFolder\foo.pdf" - 产生错误 490 无法打开指定的文件

然后我尝试了 Filelen 函数并得到另一个错误,它无法访问该文件。

我最终得出的结论是,任何实际访问文件的操作都会失败,这可能是由于某些安全设置。它在 Windows 7 而不是 8 上运行的事实似乎表明操作系统级别的某些东西可能有问题。

我尝试过的解决方案:

    • 以管理员身份显式运行访问
    • 将文件移入用户目录并移出根目录
    • 进入访问信任中心并禁用所有安全措施(暂时)
    • 尝试了不同的文件类型(.pdf、.txt)

    【问题讨论】:

    • 并且在 CMD 窗口中使用这个完全相同的命令是否成功?
    • @Brad 我今晚必须试一试才能确定,但​​我知道这条路很好。当我在 Win 7 上运行时,完全相同的代码实际上可以工作。
    • 我想知道你是否也有打开文件的权限
    • @Brad 是的,我想知道我自己(这是一个令人困惑的问题)
    • 这是在同一台计算机上吗? Win8/Win7?你从哪里得到路径?探险家?你能验证文件夹和文件的权限吗?

    标签: ms-access vba ms-access-2013


    【解决方案1】:

    您的问题不是 Windows API,而是软件的安装。 FollowHyperlink 使用涉及文件类型关联的系统注册表。如果 PDF 文件与 Adob​​e Reader 相关联,并且您已安装并制作 PDF,默认情况下使用 Adob​​e 打开,那么您不会有问题。但是,如果您的系统缺少可以打开带有“令人毛骨悚然”扩展名的文件的程序,那么它将惨遭失败。

    您的解决方案是找到合适的程序来打开文件。然后使用代码,它会打开相应的文件及其关联的程序。

    【讨论】:

    • 我尝试了多种路径来打开文件,包括 shell API。它也会因 txt 文件或任何其他扩展名而失败。最后,即使是 FileLen 方法也失败了,它应该对任何文件进行操作。
    • @Sparkfizt,你试试 Allen Browne 的 GoHyperlink 方法了吗? allenbrowne.com/func-GoHyperlink.html
    【解决方案2】:

    原来这台 win 8 机器隐藏了已知的文件扩展名。我的两个测试文件最终都是 testing.txt.txt 和 testing.pdf.pdf,当我试图找到 testing.txt 时,这当然会失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 2013-10-27
      • 1970-01-01
      • 2019-03-31
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多