VBA通过另一个访问数据库在访问数据库中运行函数

VBA通过另一个访问数据库在访问数据库中运行函数,vba,Vba,我只需要运行一个函数,该函数将在不同的access数据库中运行多个报告。。。ad DB将对其进行全部规则:) 结构如下:在我的multi_report.accdb中,我有一个带有按钮的表单,该按钮运行以下代码: Private Sub Comando1_Click() Dim db_report As String Dim objAccess As Object Dim ctr As Date 'TICKETS db_report = "\\sdocenco01\OPC\11_SC

我只需要运行一个函数,该函数将在不同的access数据库中运行多个报告。。。ad DB将对其进行全部规则:) 结构如下:在我的multi_report.accdb中,我有一个带有按钮的表单,该按钮运行以下代码:

Private Sub Comando1_Click()

Dim db_report As String
Dim objAccess As Object
Dim ctr As Date

'TICKETS
db_report = "\\sdocenco01\OPC\11_SCL\TICKETS\ticket.accdb"
Set objAccess = GetObject(db_report) 'opens other db
objAccess.Visible = True
objAccess.Run "report_tickets" 'runs function in other db
objAccess.Quit 'quits other db
Set objAccess = Nothing

'PROCESSI
db_report = "\\sdocenco01\OPC\11_SCL\PROCESSI\utilita.accdb"
Set objAccess = GetObject(db_report)
objAccess.Visible = True
objAccess.Run "report_processi"
objAccess.Quit
Set objAccess = Nothing

...
Public Function report_tickets()
DoCmd.SetWarnings False
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
...
End Function
排队

objAccess.Run "report_tickets" 
我收到运行时错误“2517”例行报告\u未找到票证

我试过不同的密码,比如

objAccess.Run "ticket.report_tickets" 

但似乎什么都不管用

在\sdocenco01\OPC\11\u SCL\TICKETS\ticket.accdb中,我有以下代码:

Private Sub Comando1_Click()

Dim db_report As String
Dim objAccess As Object
Dim ctr As Date

'TICKETS
db_report = "\\sdocenco01\OPC\11_SCL\TICKETS\ticket.accdb"
Set objAccess = GetObject(db_report) 'opens other db
objAccess.Visible = True
objAccess.Run "report_tickets" 'runs function in other db
objAccess.Quit 'quits other db
Set objAccess = Nothing

'PROCESSI
db_report = "\\sdocenco01\OPC\11_SCL\PROCESSI\utilita.accdb"
Set objAccess = GetObject(db_report)
objAccess.Visible = True
objAccess.Run "report_processi"
objAccess.Quit
Set objAccess = Nothing

...
Public Function report_tickets()
DoCmd.SetWarnings False
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
...
End Function
首先,根据合同,项目名称必须包括:

要运行的函数或子过程的名称。如果你是 在另一个数据库中调用过程时,请使用项目名称和 程序名称以点分隔,格式如下: “projectname.procedurename”

接下来,我想“Report_u2;”前缀会混淆。尝试重命名函数并调用它们,如下所示:

objAccess.Run "YourProjectName.ReportTickets" 

不,这似乎不是解决方案请看扩展答案。不,我试过。。。仍然不工作。。。同样的错误,然后再次检查所有内容。它在这里经过测试并运行得很好,我确实按照您的建议命名了函数。。。我真的不知道该怎么办