问题描述
我正在尝试创建一个宏,该宏将为每年的设备审计复制一个表及其相关查询。我复制了在另一个论坛上找到的一些代码,但我在一行的标题中收到错误消息。我对 VBA 不够熟悉,无法理解问题所在,所以我希望能得到一些帮助。
此代码应该替换复制查询中的源表,以便不必每年重新进行查询。代码如下:
Sub UpdateQuery(QueryName,CurrentSourceTable,NewSourceTable)
Dim strQryName,strCTbl,strNTbl,strCsql,strNsql As String
Dim defqry As DAO.QueryDef
strQryName = QueryName
strCTbl = CurrentSourceTable
strNTbl = NewSourceTable
Set defqry = CurrentDb.QueryDefs(strQryName)
strCsql = defqry.sql
strNsql = Replace(strCsql,strNTbl)
defqry.sql = strNsql
defqry.Close
End Sub
错误发生在“设置 defqry”行上。谁能告诉我是什么导致了错误?
预计到达时间:
当我尝试运行上面的代码时,我也在使用下面的代码来填充QueryName/CurrentSourceTable/NewSourceTable:
Sub Proc1()
Call UpdateQuery(YYYY_Count_of_items_by_floor,Building_Audit_2021,Building_Audit_YYYY)
End Sub
同样,这段代码不是我写的,我复制了别人写的代码,并试图将其用于我需要的地方。
解决方法
谢谢,HansUp! YYYY_Count_of_items_by_floor 确实是查询的名称,因此我只需要将其括在引号中即可。