我正在嘗試自學創建和回憶存盤程序。搜索了 2 天后,我沒有進一步解決以下問題。
我在 SQL Express 中有一個基本的存盤程序,如下所示:
GO
/****** Object: StoredProcedure [dbo].[spTestCustomers] Script Date: 26/01/2022 15:17:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[dbo].[spTestCustomers]
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM [tblCustomers]
END
我可以在 MS Access 中使用以下 VB 正確呼叫它:
Private Sub cmdTest_Click()
'define query for ptSHCustomers
Dim SQL As String, qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("ptSHCustomers")
qdf.SQL = "EXEC spTestCustomers"
Me.lstTest.Requery
End Sub
但是,當我添加引數失敗時,SQL Server 代碼:
USE [WPSDb]
GO
/****** Object: StoredProcedure [dbo].[spTestCustomers] Script Date: 26/01/2022 15:25:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[dbo].[spTestCustomers]
@Surname nvarchar(25)
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM [tblCustomers]
WHERE Surname like @Surname
END
我試圖從 MS Access 呼叫的代碼:
Private Sub cmdTest_Click()
'define query for ptSHCustomers
Dim SQL As String, qdf As DAO.QueryDef
Dim VarCustSurname As String
VarCustSurname = "%"
Set qdf = CurrentDb.QueryDefs("ptSHCustomers")
qdf.SQL = "EXEC spTestCustomers ('" & VarCustName & "');"
Me.lstTest.Requery
End Sub
我已經嘗試了許多在線指南中的代碼更改,但都無濟于事。誰能指出我正確的方向?
uj5u.com熱心網友回復:
EXECUTE 不使用括號。
EXEC myProc @varParam, 'literal param';
在 VBA 中
qdf.SQL = "EXEC spTestCustomers '" & VarCustName & "';"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/422682.html
標籤:
上一篇:微軟網站上的VBA代碼示例破壞了計算機其余部分的剪貼板。為什么會發生這種情況,我該如何預防?
下一篇:MSAccessIIf函式
