Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba存储过程中的参数_Vba_Stored Procedures_Parameters - Fatal编程技术网

vba存储过程中的参数

vba存储过程中的参数,vba,stored-procedures,parameters,Vba,Stored Procedures,Parameters,我的代码有一些问题: Dim title, datee As String Dim ConnectionString As String Dim sPassword As String Dim sUser As String Dim sDatabase As String Dim sServer As String Dim req As String Dim Cmd1 As New ADODB.Command Dim AConn As New ADODB.Connection Dim Rst

我的代码有一些问题:

Dim title, datee As String
Dim ConnectionString As String
Dim sPassword As String
Dim sUser As String
Dim sDatabase As String
Dim sServer As String
Dim req As String
Dim Cmd1  As New ADODB.Command
Dim AConn As New ADODB.Connection
Dim Rst As ADODB.Recordset
Dim dateee As Date
dateee = "2013-10-10"
Dim prm As ADODB.Parameter

title = Cells(1, 6).Value
datee = Cells(2, 4).Value
Range("A6:Z65500").ClearContents

title = Left(title, Len(title) - 10) + datee
Cells(1, 6).Value = title
sServer = Worksheets("BaseDeDonnees").Cells(3, 3)
sDatabase = Worksheets("BaseDeDonnees").Cells(4, 3)
sUser = Worksheets("BaseDeDonnees").Cells(5, 3)
sPassword = Worksheets("BaseDeDonnees").Cells(6, 3)

AConn.ConnectionString = "UID=" & sUser & ";PWD=" & sPassword & ";" & "DRIVER={SQL Server};Server=" & sServer & ";Database=" & sDatabase & ";"
AConn.Open

Cmd1.ActiveConnection = AConn
Cmd1.CommandText = "test"
Cmd1.CommandType = adCmdStoredProc

Set prm = Cmd1.CreateParameter("@dateMax", adDBTimeStamp, adParamInput)
Cmd1.Parameters.Append prm
Cmd1.Parameters("@dateMax").Value = dateee

Set prm = Cmd1.CreateParameter("@usrID", adInteger, adParamInput)
Cmd1.Parameters.Append prm
Cmd1.Parameters("@usrID").Value = 100768

Cmd1.Execute
AConn.Close
我收到一条错误消息:过程或函数“test”需要未提供的参数“@usrID”。我真的不知道我为什么会有这个错误,@usrID,被定义为。。。
你能帮助我吗?谢谢:)

我传递给存储过程的任何参数(至少对于SQL Server而言),都是在创建参数时传入的。因此,在你的情况下,我将这样做:

Set prm = Cmd1.CreateParameter("@usrID", adInteger, adParamInput, 4, 100768)
Cmd1.Parameters.Append prm
或者如果你像我一样懒惰:

Cmd1.Parameters.Append Cmd1.CreateParameter("@usrID", adInteger, adParamInput, 4, 100768)
注意,最后一个参数是输入的大小(字节或字符串(varchars)长度),最后一个参数是传递的值

更多信息请点击此处: 您需要添加:

Cmd1.NamedParameters = True

在分配参数之前,否则它们实际上是按位置传递的。

CreateParameter(“dateMax”
..?然后
prm.Value=datee
?感谢您的回答,不幸的是,我以前尝试过这个,但它不起作用…我在这些行中有相同的错误消息:Cmd1.parameters.Append Cmd1.CreateParameter(“@dateMax”,adDBTimeStamp,adParamInput,0,dateee)Cmd1.Parameters.Append Cmd1.CreateParameter(“@usrID”,adInteger,adParamInput,10100768)我将看到您的链接。