簡體   English   中英

使用 VBA 運行 Node.js

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM