当我尝试从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
非常感谢这里的任何指示。需要进一步的信息让我知道。
答案 0 :(得分:0)
我认为问题在于CreateParameter在其值之前需要adVarChar数据类型的大小。
尝试类似:
.Parameters.Append .CreateParameter("@Season", adVarChar, adParamInput, 200, vSeason)
在代码中,值vSeason作为size参数传递,
您将字符串作为整数传递给CreateParameter,这是类型不匹配错误
我希望这会有所帮助