从Access VBA运行Python脚本

问题描述 投票:0回答:2

我找不到很多资源,但我正试图让vba运行python脚本

Const pyScript = "C:\Test\Weekend_Exceptions\Weekend_Exception.py"
Dim dblRetVal As Double
dblRetVal = Shell("C:\Python34\python.exe " & pyScript)

我知道我的python脚本工作,应该输出一个文件,但事实并非如此。另外vba没有触发调试标志,所以我不确定我错在哪里。任何意见,将不胜感激。

python vba ms-access
2个回答
2
投票

你没有给出太多细节,所以我会做一些假设

可能你的python脚本读取了一些本地文件,这将导致你的脚本引发FileNotFoundError并退出

要使测试将整个arg字符串复制到Shell,在您的情况下为“C:\ Python34 \ python.exe C:\ Test \ Weekend_Exceptions \ Weekend_Exception.py”,打开一个带有Win + r的cmd,粘贴并运行,而不是在正确的目录中应该引发相同的错误。

如果这是问题,请使用代码制作makestuff.bat文件

@echo off
@cd C:\Test\Weekend_Exceptions\
@C:\Python34\python.exe Weekend_Exception.py
@echo on

然后从Shell调用bat(“C:\ Place \ of \ your \ bat \ makestuff.bat”)

返回更多详细信息,我们致力于解决方案


0
投票

我是这样做的:

  1. 我创建了一个File1.bat来打开File2.py。 File1.bat中的代码是:
@echo off
@h:
@cd H:\Path\Cronus\Rangers
@C:\Python3\python.exe File2.py
@echo on

请注意,File2.py位于H:\ Path \ Cronus \ Rangers文件夹中。这就是我们之前需要打开它的原因。

  1. 我在VBA中创建了一个函数来打开一个.bat文件:
Option Compare Database

Function MacroPythonSARH()
On Error GoTo MacroPythonSARH_Err

Call Shell("H:\Path\Cronus\Rangers\File1.bat", 1)

MacroPythonSARH_Exit:
    Exit Function

MacroPythonSARH_Err:
    MsgBox Error$
    Resume MacroPythonSARH_Exit

End Function
© www.soinside.com 2019 - 2024. All rights reserved.