[英]Run Node.js using VBA
總體目標是在 JavaScript 文件上運行 Node.js 並使用 MS Access VBA 抓取輸出。 這是我用來測試的 JavaScript 文件:
// C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js
var fs = require("fs");
var outputFile = "testLog.txt";
fs.writeFile(outputFile, new Date());
當我按如下方式從命令提示符運行它時,它會在Interview Prep 文件夾中生成一個帶有時間戳的testLog.txt 文件。
C:\Users\micha\OneDrive\AppAcademy\Interview Prep>node tst.js
現在我想在 Access 應用程序中使用 VBA 觸發同樣的事情。 我試過兩種方法。 第一個是快速而骯臟的,但我的理解是我可以用 StdOut 來充實它作為抓取位。 它使用 WScript.Shell:
Private Sub runShellTest_Click()
Dim objShell As Object, objExec As Object
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("C:\Program Files\nodejs\node.exe C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js")
End Sub
當我運行它時,命令提示符會在屏幕上短暫閃爍,但我沒有得到新的 testLog.txt。
我嘗試的另一種方式更快更臟:
Private Sub runShellTest_Click()
MsgBox (Shell("C:\Program Files\nodejs\node.exe C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js", vbNormalFocus))
End Sub
再次,命令提示符短暫閃爍,並且沒有新的 testLog.txt。 但是,消息框按預期顯示了任務 ID,所以我猜...發生了什么事?
任何幫助表示贊賞!
當您像這樣運行它時,文件將在 Access 可執行文件的位置生成。 請檢查您的 Access 安裝位置,您應該在那里找到該文件。 在節點代碼中,您還必須傳遞需要生成文件的路徑。
我一直在嘗試成功發送 xmlhttp 請求。 您需要將 json 轉換為 vba 字典。 您可以使用一個 vba 類進行轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.