gpt4 book ai didi

sql - 在 Access vba 中执行参数化的 T-SQL 存储过程

转载 作者:行者123 更新时间:2023-12-03 21:35:18 25 4
gpt4 key购买 nike

当我尝试从 Access 中的更新后事件执行以下 sproc 时,出现“运行时错误 (13):类型不匹配”错误。我的 sproc 在 SQL (MSSQL2014) 中有 @Season 作为 nvarchar(max) 和 @Year 作为 int。关于原因的任何想法?我已经搜索了一整天,但还没有快乐。这是代码:

Private Sub Event_Click()

Dim cnn1 As New ADODB.Connection
Dim cmd As New ADODB.Command


Set cnn1 = New ADODB.Connection
cnn1.ConnectionString = "<connection string snipped but works OK>"
cnn1.ConnectionTimeout = 30
cnn1.Open

vSeason = Me.ComboBox1.Value
vYear = Me.ComboBox2.Value

With cmd
.ActiveConnection = cnn1
.CommandText = "dbo.StoredProcedure"
.CommandType = 4
.CommandTimeout = 0
.Parameters.Append .CreateParameter("@Season", adVarChar, adParamInput, vSeason)
.Parameters.Append .CreateParameter("@Year", adInteger, adParamInput, vYear)

End With

cnn1.Close
Set cnn1 = Nothing

将不胜感激这里的任何指示。需要任何进一步的信息让我知道。

最佳答案

我认为问题在于 CreateParameter 在其值之前需要 adVarChar 数据类型的大小。

尝试类似:

.Parameters.Append .CreateParameter("@Season", adVarChar, adParamInput, 200, vSeason)

在您的代码中,值 vSeason 作为大小参数传递,
您将一个字符串作为整数传递给 CreateParameter, 这是类型不匹配错误

我希望这有帮助

关于sql - 在 Access vba 中执行参数化的 T-SQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36288442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com