ms-access - 在直通查询中使用函数调用?

标签 ms-access pass-through passthru

我在 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/

相关文章:

sql - 将数据从 Excel 用户窗体复制到 Access 表时出现语法错误

ms-access - 将 .MDB 文件拆分成段是否有助于提高稳定性?

database - 存储长文本

html - JSF 传递元素导致偏离结束标记

php - 执行带有 "Program execution Functions"的二进制字符串(exec、system 等...)

mysql - MS-Access:表太多,文件太大 - 多个链接表查询?

sql-server - 在对 SQL Server 的直通查询中 Access VBA 参数

sql-server - 如何使直通/直通查询可编辑?

php passthru 不返回任何输出

java - 通过()centos LD_LIBRARY_PATH