從字符串轉換日期和/或時間時,我不斷收到運行存儲過程從訪問VBA
轉換的錯誤而失敗。
這是我的vba我正在使用以及我的sql服務器存儲過程的語法。爲了讓這個運行成功,我應該改變什麼?
Private Sub btnRunStoredProc_Click()
Dim cmd As ADODB.Command, startdate As String, enddate As String
Set cmd = New ADODB.Command
startdate = "'" & Me.txtStartDate & "'"
enddate = "'" & Me.txtEndDate & "'"
cmd.ActiveConnection = "Provider=sqloledb;Server=Server;Database=DB;Trusted_Connection=yes;"
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "runstoredproc"
cmd.Parameters.Append cmd.CreateParameter("@startdate", adVarChar, adParamInput, 255, startdate)
cmd.Parameters.Append cmd.CreateParameter("@enddate", adVarChar, adParamInput, 255, enddate)
cmd.Execute
End Sub
ALTER Procedure [dbo].[runstoredproc]
(
@startdate varchar(100)
,@enddate varchar(100)
)
As
Select * from helper where hiredate between @startdate And @enddate
這讓我查詢超時的VBA錯誤。我試圖添加'.ActiveConnection.CommandTimeout = 0',但仍然顯示錯誤。 – BellHopByDayAmetuerCoderByNigh
爲什麼把它設置爲零秒?您的查詢可能運行時間超過默認的30秒。嘗試在「With」塊中添加'.commandTimeout = 60' 60秒。 – Parfait
@Parfait - 將超時設置爲零意味着「無限超時」,而不是「默認超時」。 – Skippy