如何在MS Access VBA中通过直通查询获取存储过程输出参数?
能否通过直通查询运行带输入输出参数的存储过程?如何在MS Access VBA中获取输出参数值?
我需要通过直通查询运行一个带输入、输出参数的存储过程,该过程用于插入新记录,我要获取新插入记录的ID。
我的存储过程代码如下:
ALTER PROCEDURE [dbo].[sp_two_Insert] @woTitle nvarchar(255), @woWriter int, @woDate date, @woid int = 0 OUTPUT AS BEGIN SET NOCOUNT ON; INSERT INTO dbo.two (woTitle, writtenby, wodate) VALUES (@woTitle, @woWriter, @woDate); SELECT @woid = SCOPE_IDENTITY(); END
我尝试了两种方案,均遇到崩溃问题:
- 尝试1:参考相关方案后,运行VBA时会在
Set rs = ptq.OpenRecordset行崩溃,程序会无限创建新记录,只能通过任务管理器强制退出。 - 尝试2:参考另一方案后,同样在
Set rs = rs.NextRecordset行崩溃,现象和尝试1完全一致。
另外有方案建议插入后单独运行第二个存储过程获取ID,但我认为该方案不可行——这样获取到的ID无法保证是本次插入操作生成的记录ID。
导致崩溃的VBA代码如下:
Option Compare Database Option Explicit Sub ptqTest() Dim cdb As DAO.Database Dim rs As DAO.Recordset Set cdb = CurrentDb Set rs=cdb.OpenRecordset("qPtMyPassThroughQ") '此处MS Access崩溃 rs.Close Set rs = Nothing Set cdb = Nothing End Sub
提前感谢各位解答!
内容的提问来源于stack exchange,提问作者mechanicalMuse
相关产品推荐
相关产品推荐

