【发布时间】:2016-09-30 10:26:11
【问题描述】:
我正在申请一个学校项目。 当我尝试执行存储过程时,我经常收到一条错误消息,提示语法无效。
这是我的 Vba 代码和存储过程
CREATE PROCEDURE spVeranderPrijs
(
@ArtikelNr integer,
@WijzigingsDatum Date,
@NieuwePrijs integer
)
AS
BEGIN Transaction
Select * from artikelprijs
where artikelnr = @ArtikelNr
and einddatum = '2099-01-01'
if @@ERROR <> 0
update ArtikelPrijs set einddatum = @Wijzigingsdatum
INSERT INTO Artikelprijs
VALUES (@ArtikelNr, @NieuwePrijs, @WijzigingsDatum, '2099-01-01');
BEGIN
ROLLBACK
RAISERROR ('Error tijdens het uitvoeren', 16 , 1)
RETURN
END
Commit
GO
还有我在 Vba 中的代码
Private Sub Command6_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
sConnString = "Provider=SQLOLEDB;Data Source=.\SQLEXPRESS;" & _
"Initial Catalog=KlantArtikelApp;" & _
"Integrated Security=SSPI;"
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.Open sConnString
Set rs = conn.Execute("EXEC spVeranderprijs '" & TxTArtikelNr & "', '" & TxTWijzigingsDatum & "' '" & TxTPrijs & "'")
End Sub
我似乎无法让它工作,有人可以帮忙吗?
【问题讨论】:
-
显示完整的错误信息
-
'35' 附近的语法不正确(这是我输入 TxTPrijs 的输入)
-
How to debug dynamic SQL in VBA 。一个简单的
Debug.Print <the EXEC string you want to run>会显示错误。
标签: sql vba ms-access stored-procedures