首页 > 解决方案 > 如何使用 access vba 调用 SQL-Server 用户定义函数

问题描述

可以使用access vba代码调用window sql数据库用户自定义函数吗?

我在sql数据库中找到了一个函数调用db.testFunction(id);我使用 SQLNCL11.1 作为提供程序,并使用 ADODB 进行连接。

如何在访问 vba 代码中使用此功能?

标签: sql-servervbams-access

解决方案


假设这个应用程序有工作的链接表?

然后只需创建一个传递查询。输入你的函数,前面有一个 select 语句。运行 pt 查询。它应该返回您的值。因此,在查询生成器中,创建该 PT 查询。对于 PT 查询的源,您可以输入任何有效的 t-sql,但在这种情况下,输入函数的测试是有意义的。

说这个:

SELECT dbo.textFunction(12)

如果这行得通(并确保你得到它的工作 - 你没有写一行代码)。一旦你有那个 PT 查询工作?

然后你可以使用这个 VBA 代码:

Sub Test33434()

   Dim lngID           As Long
   Dim lngReturnValue  As Long
   
   lngID = 1234
   
   With CurrentDb.QueryDefs("qryPass")
      .SQL = "select dbo.testFunction(" & lngID & ")"
      lngReturnValue = .OpenRecordset()(0)
   End With

End Sub

所以,在上面我们有我们传递的值和返回值。并注意我们如何不必在代码中弄乱任何连接对象 - 所以使用保存的 PT 查询很好,因为代码中没有连接字符串。


推荐阅读