VBS脚本无法在Access数据库中使用

时间:2016-11-29 14:33:31

标签: vba powershell ms-access vbscript

我想对我正在处理的数据库提供一些帮助。该数据库是一个非常基本的界面,通过单击侧面的不同命令按钮来运行许多功能。命令相当简单,但我对VBS / VBA不太好。在我开始在这里工作之前,其他人建立了数据库!

我编写了一个Powershell脚本,可以将数据过滤并排序到更易读的列表中。因为我比Visual Basic稍微熟悉它,所以我想保留该脚本并使用VB通过Access运行它。该脚本运行正常,但我尝试将其作为另一个可点击的“命令按钮”添加到数据库中。我必须运行PS脚本的VBS脚本是:

Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.Run("powershell.exe -noexit P:\TestScripts\runtest.ps1")

同样,此代码运行正常,它打开Powershell命令行,提示用户输入信息并运行脚本。当我将其作为'事件过程添加到Access时#39; (在命令按钮的属性表中,我有" On Click"设置为"事件过程"所以我可以添加VBS代码)然后通过数据库工作,那里&#39 ;当我按下那个命令时没有反应。我需要更改我的VBS脚本吗?我假设VBS和VBA之间的运行命令没有太大区别。 Access中的代码如下所示:

Private Sub Command58_Click()

Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.Run ("powershell.exe -noexit P:\TestScripts\runtest.ps1")

End Sub

对于长消息道歉,我只是想尝试尽可能多地提供信息!我很感激任何帮助。这可能是一个简单的解决方案,但我缺乏经验肯定会阻碍我!感谢。

-J

2 个答案:

答案 0 :(得分:2)

尽管它可能是错综复杂的。首先创建一个PS脚本,然后创建一个VB脚本来调用Powershell来运行PS脚本 - 现在你想运行VBA来运行VB脚本来运行你的PS脚本。

您错过的是使用C#运行程序,该程序使用自动化打开Access以运行VBA来调用嵌套脚本。

使用VBA的 Shell 命令来调用PS并运行PS脚本,或者 - 更好 - 花一点时间将PS脚本转换为VBA。

答案 1 :(得分:0)

WScript对象在Access下不可用(由w | cscript.exe脚本宿主提供)。所以使用

Private Sub Command58_Click()
  Set objShell = CreateObject("Wscript.Shell")
  objShell.Run ("powershell.exe -noexit P:\TestScripts\runtest.ps1")
End Sub

请参阅demo docx file