Rufen Sie einfach einen Shell
Befehl mit dem automatisierten Rscript.exe. Zuvor müssen Sie jedoch möglicherweise Ihre Abfragedaten in ein Format exportieren, das R lesen kann, z. B. csv oder txt. Alternativ können Sie R über RODBC mit der Datenbank verbinden.
Im Befehlszeilenaufruf können Sie Parameter wie den Namen der Abfrage (für die RODBC-SQL-Anweisung) oder den csv/txt-Pfad für R senden, indem Sie die Shell-Zeichenfolge mit durch Leerzeichen getrennten Werten verketten. Dann verwenden Sie commandArgs() Liste in R, um Werte zu erhalten.
Auch doppelte Anführungszeichen sind erforderlich, wenn Pfadnamen Leerzeichen enthalten. Und wenn Sie Rscript in Ihrer Umgebungsvariablen PATH haben, können Sie den Befehl Rscript
direkt verwenden. Andernfalls geben Sie den vollständigen Pfad ein, in dem sich Rscript.exe befindet (normalerweise im Installationsordnerordner). Beispiele auf Kommentar:
Sub RunRscript()
Dim shell As Object
Dim path As String
Dim waitTillComplete As Boolean: waitTillComplete = True
Dim style As Integer: style = 1
Dim errorCode As Integer
DoCmd.TransferText acExportDelim, , "qryToExport", "C:\Path\To\CSV.csv"
Set shell = VBA.CreateObject("WScript.Shell")
path = "RScript ""C:\Path\To\R\script.R"""
errorCode = shell.Run(path, style, waitTillComplete)
Set shell = Nothing
End Sub
Sorry für vorherige ärgerliche Kommentare:
oder ein anspruchsvolleres
Shell
Anruf einen Return-Code für die Fehlerbehandlung zu erhalten. Ich konnte keine gute Dokumentation über diese Methode finden, aber Sie scheinen das herauszufinden. Ich war in der Lage, die "einfache" Version Ihres Codes zu erhalten, mit Ausnahme für ein Detail zu arbeiten. http://stackoverflow.com/questions/40538004/prombelm-with-r-script-execution-from-access-2016-command-button Auch habe ich versucht, den Pfad in die "fancy" Version Ihres Codes aber zu ersetzen Ich bekomme jedes Mal eine Fehlermeldung, nicht sicher warum? Danke für Ihre Hilfe – user3781528