python win+r时不成功_Python com错误(2147352562:'参数数目无效。\r\n')

我在通过许多网站挖掘帮助。我觉得这个问题没有解决办法。所以我再问一次。在

我试图调用一个需要三个参数的(public)函数。我看到我在access中成功地连接到数据库import win32com.client

acApp = win32com.client.Dispatch('Access.Application')

acApp.OpenCurrentDatabase('C:/Access_Databases/MyDatabase.accdb')

acApp.Run("MyProject.ImportingRoutine", Date, LocalPath, Adtnl)

在最后一行之后,我得到:

“result=self.oleobj.InvokeTypes(*(dispid,LCID,wFlags,retType,argTypes)+参数)

com错误:(-2147352567,“发生异常。”,(0,无,无,无,0,-2147352562),无)”

注意:参数是格式为YYYYMMDD(int64)的日期,路径是指向本地存储库的字符串,“C:/…”,yes using“/”,如果需要,VBA宏将转换为“\”,最后一个是布尔参数(但我为False和True提供0或-1)。如果我从vba excel调用它,同样的代码也能很好地工作。在

com错误-2147352562是关于参数数目不正确(为什么?)。

Python似乎无法用参数运行microsoftaccessvba宏(函数)。在

我将用Python编写VBA中宏执行的更新,但我想知道我是否做错了什么。在

^{pr2}$

这就是我正在调用的函数。在

其他函数的标题是:Public Function ImportDailyAnalyticVector(ByVal DateDbl As Long, _

Path As String, _

Optional VectName As String = "VectorAnaliticoYYYYMMDD", _

Optional ByVal Zipped As Boolean = False, _

Optional ByVal Silent As Boolean = True, _

Optional ByVal AddDate As Boolean = False) As Variant

Public Function ReadingFieldNames(ByVal tblTarget As String, _

ByVal tblFieldNames As String)

Public Function ChangeAllFieldsType(tblTarget As String, _

tblAuxiliar As String, _

fldName As String, _

fldType As String, _

fldOrder As String, _

fldSize As String, _

Optional ExVT As Variant = "''", _

Optional NM_Bussiness_Dt As String = "Vect_Date", _

Optional New_Date As Long = 0)

最后两个函数是无参数的。最初,我设计数据库的想法是最终将其迁移到SAS系统。但是考虑到我所在部门的预算很小,我决定在2月初学习Python。考虑到Python中发现的(意想不到的)优势,我放弃了SAS选项。数据库中的变量非常标准,只是在使用特殊字符时加下划线“u”。在

顺便说一下,我做了以下功能:Sub ss()

Call ImportingRoutine(20160908, _

"C:/Asset_Controlling/Repository/PIP/Vectores_Analiticos/2016/", 0)

End Sub

然后我试着打电话:acApp.Run("MyProject.ss")

但是这个也会产生同样的com错误。很容易知道Python达到了VBA代码。如果我想跑:acApp.Run("MyProject.ss()")

新错误为:

com错误:(-2147352567,“发生异常。”,(0,无,“Microsoft Access找不到过程”我的项目.ss()。“,无,-1,-2146825771),无)


版权声明:本文为weixin_28877505原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。