VBA Access写入PS1文件

时间:2017-02-24 10:37:34

标签: vba powershell ms-access-2016

我正在尝试将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'

的错误

编译错误:找不到方法或数据成员。

1 个答案:

答案 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