içinde parametreli T-SQL saklı yordamını yürütme "Access time error (13): tür uyuşmazlığı" hatası alıyorum, Access'te bir sonraki güncelleme olayından aşağıdaki sproc'i çalıştırmayı denediğimde. Benim sproc nvarchar (max) olarak @Season ve SQL (MSSQL2014) int olarak @Year vardır. Sebep ile ilgili herhangi bir fikir var mı? Bütün gün aradım ama henüz hiç sevinç yok. İşte kod:Access vba
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
Burada herhangi bir işaretçi için minnettar olur. Gerekli herhangi bir bilgi bana bildirin.
"adVarChar" ile değiştirilmesi gerekir "adVarWChar". –
^^ 'n - 'n' parametreyi unicode yapıyor, bu nedenle bir unicode parametresi gerekiyor. Ayrıca, 'Sezon' nvarchar (max) 'ın bir nedeni var mı? Yapabiliyorsanız, prosedürü bir '@SeasonId int' yapın. Bir tasarım kokusu olarak 4000 karakterlik bir girdi (gerçek ihtiyaç muhtemelen <50 olduğunda) alırdım. –
"Execute" yerine "ADODB.Commands" kullanmayı deneyin. cnn1.Execute ("EXEC dbo.StoredProcedure" "& vSeason &" ', "& vYear & ";") ' – gofr1