【问题标题】:AutoHotKeys script opens Access file as read-onlyAutoHotKeys 脚本以只读方式打开 Access 文件
【发布时间】:2018-11-29 18:23:44
【问题描述】:

使用 AutoHotkeys 在未知路径中启动 Microsoft Access 应用程序,该脚本仅在按字面给出路径和文件名时才有效。当脚本改为使用变量时,Access 会以只读方式打开文件。

为什么?有解决办法吗?

脚本是否缺少某些权限?

文件使用以下命令正常打开:

acc := ComObjCreate("Access.Application")
acc.OpenCurrentDatabase("d:\MyDatabases\MyDB.accdb")
acc.Visible := true
acc := Nothing

文件以只读方式打开:

MyDB := A_ScriptDir "/MyDB.accdb"
StringReplace,MyDB,MyDB,\,/,All
acc := ComObjCreate("Access.Application")
acc.OpencurrentDatabase(MyDB)
acc.Visible := true
acc := Nothing

编辑:

我找到了一个可行的替代品:

MyDB := A_ScriptDir "/MyDB.accdb"
StringReplace,MyDB,MyDB,\,/,All
acc := ComObjGet(MyDB)
acc := Nothing

【问题讨论】:

  • 只要MyDB 是有效路径,这似乎不太可能产生影响。首先验证它是。
  • 如果路径无效,Access 无法打开正确的文件。该文件以只读状态打开。

标签: ms-access vba autohotkey


【解决方案1】:

所以,您的问题很可能是您正在使用的StringReplace 功能。

首先StringReplace是一个贬值的函数,现在是StrReplace

其次,您似乎正在尝试将 / 的所有实例更改为 \,但是,这不是您使用该函数完成的任务。事实上,你正在做相反的事情。你可能打算做的是StringReplace, MyDb, MyDb, /, \, All

这会将/ 的所有实例更改为\,而不是将\ 更改为/,这在这种情况下会更有意义。

【讨论】:

  • 谢谢,成功了! Erik 也是对的。 Access 能够使用正斜杠而不是反斜杠打开文件,但可能会将路径解释为网络或 Internet 路径而不是本地路径。我不知道为什么我认为斜线被转过来了。脚本根本不需要替换函数——那行可以省略。
猜你喜欢
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多