改成这样试试
  Dim Sc As String
  
  Dim Cn As New ADODB.Connection
  Dim Rs As New ADODB.Recordset
  Dim cmd As New ADODB.Command
  Dim Par As Parameter
  Dim i As Integer
  
  Sc = "Driver={SQL Server}; Server=(local);Uid=sa;pwd=;database=pubs"
  Cn.Open Sc
  With cmd
    .ActiveConnection = Cn
    .CommandText = "ParamListAuthor"
    .CommandType = adCmdStoredProc
    .refresh
    .Parameters("@strFind")="值"
    .Parameters("@bz")=值
    .Execute
    
    
    Debug.Print .Parameters("@RETURN_VALUE")  '返回值
    Debug.Print .Parameters(("@strFind)       '参数1   String
    Debug.Print .Parameters("@bz")       '参数2   integer
    debug.print .Parameters("@zxzt")       '参数3
  End With

解决方案 »

  1.   

    to bamboo_leo(竹子) : 这段代码在执行中出错。
    错误代码大体是说在ADO不能找到对象集合中的对象名或请求的顺序不对。
      

  2.   

    用set rs=cn.openrecordset()试试
      

  3.   

    to ql_mf(ql_mf) :请说详细点行吗?我是新手,不知到这段set rs=cn.openrecordset()代码加在什么地方。
      

  4.   

    to bamboo_leo(竹子) :还是不行,代码在执行到.Parameters("@strFind")="值"处停止报错。错误还是和前面说的一样。改正的代码如下:
    Dim Sc As String
      
      Dim Cn As New ADODB.Connection
      Dim Rs As New ADODB.Recordset
      Dim cmd As New ADODB.Command
      Dim Par As Parameter
      Dim i As Integer
      
      Sc = "Driver={SQL Server}; Server=(local);Uid=sa;pwd=;database=pubs"
      Cn.Open Sc
      With cmd
        .ActiveConnection = Cn
        .CommandText = "ParamListAuthor"
        .CommandType = adCmdStoredProc
        .Parameters.Refresh
        
        .Parameters("@strFind") = "Oakland"      ’此处出错并停止
        .Parameters("@bz") = 1
        .Execute
        
        
        Debug.Print .Parameters("@RETURN_VALUE")  '返回值
        Debug.Print .Parameters("@strFind")       '参数1   String
        Debug.Print .Parameters("@bz")       '参数2   integer
        Debug.Print .Parameters("@zxzt")       '参数3
      End With
      

  5.   

    代码已经没问题,我已经测试过。看你的存储过程名称应该是ReturnListAuthor,你在程序中调用的存储过程是ParamListAuthor,请确认一下存储过程名称是否写对了。另外这个存储过程是否在Pubs数据库中是否创建?代码如下:
    Dim Sc As String
      
      Dim Cn As New Connection
      Dim Rs As New ADODB.Recordset
      Dim cmd As New Command
      Dim Par As Parameter
      Dim i As Integer
      
      Sc = "Driver={SQL Server}; Server=(local);Uid=sa;pwd=1234;database=pubs"
      Cn.Open Sc
      With cmd
        Set .ActiveConnection = Cn
        .CommandType = adCmdStoredProc
        .CommandText = "ReturnListAuthor"
        .Parameters.Refresh
        
        .Parameters("@strFind") = "Oakland"      '此处出错并停止
        .Parameters("@bz") = 1
        .Execute
        
        
        Debug.Print .Parameters("@RETURN_VALUE")  '返回值
        Debug.Print .Parameters("@strFind")       '参数1   String
        Debug.Print .Parameters("@bz")       '参数2   integer
        Debug.Print .Parameters("@zxzt")       '参数3
      End With存储过程用的是第一贴的内容生成的
      

  6.   

    To bamboo_leo(竹子) : 谢谢你的帮助,马上给分。