【问题标题】:How to call SQL-Server user-defined function using access vba如何使用 access vba 调用 SQL-Server 用户定义函数
【发布时间】:2020-08-09 12:09:05
【问题描述】:
可以使用access vba代码调用window sql数据库用户自定义函数吗?
我在sql数据库中发现了一个函数调用db.testFunction(id);我使用 SQLNCL11.1 作为提供程序,并使用 ADODB 进行连接。
如何在访问vba代码中使用该功能?
【问题讨论】:
标签:
sql-server
vba
ms-access
【解决方案1】:
假设这个应用程序有有效的链接表?
然后只需创建一个传递查询。输入你的函数,前面有一个 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 查询很好,因为代码中没有连接字符串。