![](/img/trans.png)
[英]Executing R script from command button in Microsoft Access and passing data from Microsoft Access to R
[英]issue with R script execution from Access 2016 command button
我正在嘗試從 Access 2016 命令按鈕執行 R 腳本。 該腳本讀入一個文件並從文件中的值生成一個繪圖。 當我從 Windows 10 命令行運行它時,它運行良好,如下所示:
C:\Program Files\R\R-3.3.2\bin>Rscript --vanilla H:\R\analyze.R H:\R\LCH_22.vcf
我想從 Access 2016 中的按鈕執行 R 腳本。
這是我正在使用的 vba 腳本:
Dim file_path As String
file_path = "H:\R\LCH_22.vcf"
Dim RetVal
RetVal = shell("""C:\Program Files\R\R-3.3.2\bin\Rscript.exe"" --vanilla ""H:\R\analyze.R"" ""H:\R\LCH_22.vcf""", vbHide)
MsgBox RetVal
腳本執行但生成空白圖。 它具有所有軸和標簽,但缺少所有數據。 我不確定為什么會這樣。
跟進我已經用vbHide
替換了vbNormalFocus
並且能夠生成一個帶有數據的圖......是的! 但是,我不明白為什么將變量替換為 Shell 命令不起作用。 有人可以解釋如何正確完成此操作嗎? 我將從 Access 中的表單中讀取文件名,這部分代碼必須是動態的(請參閱下面我的嘗試示例)。
Dim file_path
file_path = "C:\R\DNA.vcf"
Dim RetVal
RetVal = shell("""C:\Program Files\R\R-3.3.2\bin\Rscript.exe"" --vanilla ""C:\R\analyze.R"" "" & file_path & """, vbNormalFocus)
非常感謝您提前提供幫助。
只需在file_path
周圍再添加一對引號:
Dim file_path As String
Dim RetVal As Integer
file_path = "C:\R\DNA.vcf"
RetVal = shell("""C:\Program Files\R\R-3.3.2\bin\Rscript.exe"" --vanilla "_
& """C:\R\analyze.R"" """ & file_path & """", vbNormalFocus)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.