我正在尝试将Access 2016用作数据库的前端,当用户单击按钮时,它会生成Powershell脚本并运行它。
我目前正在使用这个:
Dim Script As String
Script = ("test" & vbCrLf & "2nd line?")
Set f = fileSysObject.OpenTextFile("C:\Users\%Username%\Documents\Access.ps1", True, True)
f.Write Script
f.Close
然后运行我正在使用的脚本:
Dim run
run = Shell("powershell ""C:\Users\%Username%\Documents\Powershell\Access.ps1""", 1)
我意识到这可能是一个非常糟糕的做法!所以非常感谢任何帮助!
谢谢!
编辑: 对不起,毫无疑问!
问题在于它突出了'f.write Script'
的错误编译错误:找不到方法或数据成员。
答案 0 :(得分:0)
格式%VAR%
在VBA中不起作用,您需要Environ("VAR")
上述用户名不会使用该方法返回值,但在这种情况下您可以使用VBA.Environ("Username")
:
Dim strScript, strUserName, strFile As String
Dim objFSO, objFile as Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
strScript = ("test" & vbCrLf & "2nd line?")
strUserName = VBA.Environ("Username")
strFile = "C:\Users\" & strUserName & "\Documents\Access.ps1"
Set objFile = objFSO.CreateTextFile(strFile)
objFile.WriteLine strScript
objFile.Close
Set objFSO = Nothing
Set objFile = Nothing