我在 Access 2010 应用程序中有一个直通查询,我用它来调用 SQL Server 后端上的存储过程。存储过程采用一个我需要动态化的参数。问题是这样的:
执行 spMyProc 'userName'
按预期工作。
执行 spMyProc getUserName()
会生成“')' 处的语法错误”消息。
是否可以在传递查询中使用函数作为参数?
此外,我应该指出,我正在将复杂的 Access 应用程序迁移到 SQL Server,而且我确实不太熟悉我正在做的事情。任何关于我做错的事情的建议将不胜感激。这个特殊的问题是由于尝试将表单的记录源从记录源属性中的简单选择语句更改为可以在服务器上运行的内容而引起的。
最佳答案
您可以使用此代码:
With CurrentDb.QueryDefs("MyPass")
.SQL = "exec spMyProc '" & getUserName() & "'"
.Execute
End With
因为 getUserName() 是本地 VBA 函数,所以您需要预先评估发送到 SQL Server 的实际字符串。如上所示,使用保存的传递是“方便的”,因为您不必处理连接字符串等。
关于ms-access - 在直通查询中使用函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727560/