使用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
答案 0 :(得分:1)
因此,您的问题很有可能正在使用的StringReplace
功能。
首先,StringReplace
是已贬值的函数,当前函数是StrReplace
。
第二,您似乎正在尝试将/
的所有实例更改为\
,但是,这并不是您使用该功能所要完成的。实际上,您正在做相反的事情。您可能想做的是StringReplace, MyDb, MyDb, /, \, All
。
这会将/
的所有实例更改为\
,而不是将\
更改为/
,在这种情况下更有意义。