从字符串转换日期和/或时间时,我不断收到运行存储过程从访问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