【问题标题】:issue with R script execution from Access 2016 command button从 Access 2016 命令按钮执行 R 脚本的问题
【发布时间】:2016-11-10 22:17:42
【问题描述】:

我正在尝试从 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)

非常感谢您提前提供的帮助。

【问题讨论】:

    标签: r shell ms-access vba


    【解决方案1】:

    只需在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)
    

    【讨论】:

      猜你喜欢
      • 2017-02-25
      • 1970-01-01
      • 2016-12-15
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多