2016-11-29 15 views
1

私が取り組んでいるデータベースについて助けてください。データベースは、側面に沿って異なるコマンドボタンをクリックすることによって、多くの機能を実行するかなり基本的なインターフェイスです。コマンドはかなりシンプルですが、VBS/VBAではそれほど素晴らしいものではありません。私がここで作業を始める前に、他の人がデータベースを構築しました!VBSスクリプトがAccessデータベースで機能していない

私はPowershellスクリプトを書いています。これは、データをフィルタリングし、より読みやすいリストに並べ替えます。私はVisual Basicよりも少し精通しているので、そのスクリプトをそのまま使用し、VBを使用してAccess経由で実行したかったのです。スクリプトは正常に動作しますが、別のクリック可能な「コマンドボタン」としてデータベースに追加しようとしています。私はPSスクリプトを実行する必要がVBSスクリプトは次のとおりです。繰り返しますが、このコードは正常に動作

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

、それはPowerShellコマンドラインを開き、情報をユーザに要求し、スクリプトを実行します。私はそれをAccessに 'イベントプロシージャ'として追加します(コマンドボタンのプロパティシートで、 "Click On"を "Event Procedure"に設定してVBSコードを追加することができます)。私はそのコマンドを押すと応答がありません。 VBSスクリプトを変更する必要がありますか?私は、VBSとVBAの間でRunコマンドの違いはあまりないと仮定します。長いメッセージのための

Private Sub Command58_Click() 

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

End Sub 

謝罪、私は試してみて、できるだけ多くの情報を与えたいと思った:Accessのコードは次のようになります!私はどんな助けにも感謝しています。このすべてには簡単な解決策があるかもしれませんが、私の経験不足は間違いなく私を抱きしめています!ありがとう。

-J

+0

[VBScriptとのCreateObject問題](http://stackoverflow.com/questions/8915052/vbscript-and-createobject-issue)の可能性のある重複したあなたの助けのための – Lankymart

答えて

0

のWScriptオブジェクトアクセスの下では使用できません(それはワットで提供されます|ます。cscript.exeスクリプトホスト)。したがって、使用

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

hereを参照してください。

+0

感謝:) – jam1989

+0

VBAが内蔵されたときに、なぜWindowsスクリプティングホストの参照を使用-in 'Shell()'関数は何をしますか?これにGustavを使用すると、VBAに余分なレイヤーを追加することは無意味で、VBAがそれなしでできることを行うことはできません。 – Lankymart

2

これは可能な限り複雑です。最初にPSスクリプトを作成し、PSスクリプトを実行するためにPowershellを呼び出すためのVBスクリプトを作成します。これでVBAを実行してVBスクリプトを実行してPSスクリプトを実行します。

あなたが欠けているのは、オートメーションを使用してAccessを開いてVBAを実行してネストされたスクリプトを呼び出すプログラムを実行するためにC#を使用することです。

シェル VBAのコマンドを使用してPSを呼び出し、PSスクリプトを実行するか、またはその少し時間をかけてPSスクリプトをVBAに変換できます。

+0

ええ、ありがとう。 VBSと同じVBSでPSスクリプトを実行できるかどうかを知りたかったのです。上の皮肉の上には非常に感謝しています。私は別の言語ではあまりよくないと私は明らかに言った。このフォーラムは、初心者からエキスパートまで、誰もが楽しめるようになっていますので、少し時間をかけて試してみてください。 – jam1989

+0

申し訳ありませんが、それは意図されていませんでしたが、VBAよりもPSに少しだけ親しみがあり、PSスクリプトはフィルタリングと並べ替えを行っていると書いてあります。しかし、VSはVBAではないため、VSを使用してPSスクリプトを実行すると、目的のためにさらに別のレイヤーが追加されます。だからあなたのPSスクリプトを投稿し、そのスクリプトが何をしてVBAに変換されたのか説明してみませんか? – Gustav

+0

@ jam1989 * "私はすべてのDA CODEZを使用します!"* VBScriptはVBAで同じ方法を使用する方法の1つで、ジョブに適切なツールを使用することを前提としていません。 – Lankymart

関連する問題