2016-11-10 1 views
-1

Access 2016 명령 단추에서 R 스크립트를 실행하려고합니다. 스크립트는 파일을 읽고 파일 내부의 값으로부터 플롯을 생성합니다. 나는 윈도우 10 명령 줄에서 실행할 때 잘 작동 다음과 같이Access 2016 명령 단추에서 R 스크립트 실행 문제가 발생했습니다.

C:\Program Files\R\R-3.3.2\bin>Rscript --vanilla H:\R\analyze.R H:\R\LCH_22.vcf 
내가 여기에 2016 년

액세스의 버튼에서 R 스크립트를 실행하고자하는

내가 'A VBA 스크립트입니다 m 사용 :

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 

스크립트는 실행되지만 빈 줄거리를 생성합니다. 축과 라벨은 모두 있지만 모든 데이터가 누락되었습니다. 왜 이런 일이 일어나고 있는지 모르겠습니다.

후속 나는 vbNormalFocusvbHide를 교체 그래 ... 데이터 플롯을 생성 할 수 있었다했습니다! 그러나 쉘 명령에 변수를 대체하는 것이 왜 효과가 없는지 이해할 수 없습니다. 누군가 올바르게 이것을 수행하는 방법을 설명해 주시겠습니까? 나는 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) 

미리 도움을 주셔서 감사합니다.

답변

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) 
관련 문제