sql-server - 如何使用 access vba 调用 SQL-Server 用户定义函数
问题描述
可以使用access vba代码调用window sql数据库用户自定义函数吗?
我在sql数据库中找到了一个函数调用db.testFunction(id);我使用 SQLNCL11.1 作为提供程序,并使用 ADODB 进行连接。
如何在访问 vba 代码中使用此功能?
解决方案
假设这个应用程序有工作的链接表?
然后只需创建一个传递查询。输入你的函数,前面有一个 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 查询很好,因为代码中没有连接字符串。
推荐阅读
- python - 当类错误具有不同权重时用于多类分类的自定义指标
- gstreamer - GStreamer 中的 0(零)帧率是什么意思?
- javascript - 如何通过数组Javascript拆分对象数组
- c++ - 为什么当我尝试在游戏中模拟鼠标移动时使用 c++ Input 类会导致 filck-move 进入地面(在游戏 ofc 中)?
- methods - 类中的方法识别问题,我做错了什么?
- javascript - 尝试显示存储在本地存储中的数组的值时,对象可能为空错误(打字稿)
- html - 如何在元素css中透明元素
- python - 比较数组时循环的另一种方法是什么?
- api - 如何在 Rust 中解决这个 reqwest 标头错误或 API 错误
- android - 如果应用程序未启动,WorkManager 不会启动作业