With Ado_Command
           .ActiveConnection = DBcnn
           .CommandType = adCmdStoredProc
           .CommandText = "spKL_XG"
           .Parameters("@rybm").Value = LoginUserName
'          Set xmm = .CreateParameter("@pswd", adChar, adParamInput, 10, Trim$(txtQRMM.Text))
'          .Parameters.Append xmm
           .Parameters.Append .CreateParameter("@pswd", adChar, adParamInput, 10, Trim$(txtQRMM.Text))
           .Execute
End With
怎么老是报错?
说什么参数太多?
"@pswd" 师不是要和存储过程中一样?

解决方案 »

  1.   

    你的存储过程有几个参数?看看下面的例子'给你一个调用存储过程返回值的例子'例子的意思是根据一个起始日期和日期间隔,算出结束日期并返回这个结束日期
    '存储过程中包含三个参数,两个输入类型,一个输出类型
    'sp_日期 为存储过程名Public Function DateWorkout(ByVal BeginDate As String, ByVal WorkoutDate As Integer) As String
    On Error GoTo ErrTrap
        Dim cmdWork As New ADODB.Command
        Dim param1 As Parameter, param2 As Parameter, param3 As Parameter
        Set cmdWork.ActiveConnection = gadoCN
        cmdWork.CommandText = "sp_日期"
        cmdWork.CommandType = adCmdStoredProc
        Set param1 = cmdWork.CreateParameter("@BeginDate", adDBTimeStamp, adParamInput)
        cmdWork.Parameters.Append param1
        Set param2 = cmdWork.CreateParameter("@DateNum", adInteger, adParamInput)
        cmdWork.Parameters.Append param2
        Set param3 = cmdWork.CreateParameter("@EndDate", adDBTimeStamp, adParamReturnValue)
        cmdWork.Parameters.Append param3
        param1.Value = BeginDate
        param2.Value = WorkoutDate
        param3.Value = 0
        Call cmdWork.Execute
        DateWorkout = param3.Value
        On Error GoTo 0
        Exit Function
    ErrTrap:
        DateWorkout = 0
        On Error GoTo 0
    End Function'示例存储过程代码
    'CREATE PROCEDURE sp_日期(@BeginDate datetime,@DateNum integer,@EndDate datetime output)
    'AS
    '    select @EndDate = @BeginDate+@DateNum
    'GO
      

  2.   

    .Parameters.Append .CreateParameter("@pswd", adChar, adParamInput, 10, Trim$(txtQRMM.Text))重复了吧?
      

  3.   

    With Ado_Command
               .ActiveConnection = DBcnn
               .CommandType = adCmdStoredProc
               .CommandText = "spKL_XG"
               .Parameters.Append .CreateParameter("@pswd", adChar, adParamInput, 10, Trim$(txtQRMM.Text))
               .Execute
    End With这样应该没有问题~
      

  4.   

    我那样混着写好像就是不让通过
    如果都按照 .Parameters("@rybm").Value = LoginUserName
    这种格式写就没问题,怎么会这样?这是不是vb的bug