感谢您使用微软产品。 您可以利用rdoConnection对象的CreateQuery方法创建一个rdoQuery对象,并在参数中指定要执行的操作为存储过程名,在rdoQuery对象的rdoParameters属性中设定存储过程的参数值,在调用rdoQuery对象的Execute方法执行存储过程。如下例:       Dim en As rdoEnvironment      Dim cn As rdoConnection      Dim rs As rdoResultset      Dim rq1 As rdoQuery      Dim rq2 As rdoQuery      Dim val1 As Double      Dim val2 As Double       val1 = 8.2      val2 = 9.2       Set en = rdoEngine.rdoEnvironments(0)      en.CursorDriver = rdUseOdbc       Set cn = en.OpenConnection("",rdDriverNoPrompt,," & _                                 "DRIVER={SQL Server};" & _                                 "Server=matthofa;" & _                                 "UID=sa;PWD=;" & _                                 "DATABASE=pubs")       Set rq1 = cn.CreateQuery("", "{Call simplesql1(?,?) }")      rq1.rdoParameters(0).Direction = rdParamInput      rq1.rdoParameters(0).Value = val1      rq1.rdoParameters(1).Direction = rdParamInput      rq1.rdoParameters(1).Value = val2       Set rq2 = cn.CreateQuery("", "{Call simplesql2(?,?) }")      rq2.rdoParameters(0).Direction = rdParamInput      rq2.rdoParameters(0).Value = val1      rq2.rdoParameters(1).Direction = rdParamInput      rq2.rdoParameters(1).Value = val2       rq1.Execute      rq2.Execute      rq1.Close      rq2.Close       Set rs = cn.OpenResultset("select * from numericscale")      While Not rs.EOF         Debug.Print rs(0).Name & ": " & rs(0)         Debug.Print rs(1).Name & ": " & rs(1)         rs.MoveNext      Wend       cn.Close      en.Close Unload Me 请参考下面的文章中的相关代码:Q188574 PRB: Decimal Values Passed to a Stored Procedure Get Truncatedhttp://support.microsoft.com/default.aspx?scid=kb;EN-US;Q188574 Q177187 BUG: Stored Procedures Cannot Process NULL Parameters from VBhttp://support.microsoft.com/default.aspx?scid=kb;EN-US;Q177187 -         微软全球技术中心 VB技术支持 本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。

解决方案 »

  1.   

    '存储过程,返回用户号是否存在
    Public Function FindId(ID1 As Single) As Boolean
        Dim pra_user_id As New ADODB.Parameter
        Dim pra_user_exist As New ADODB.Parameter
        Dim cmd_IsIdExist As New ADODB.Command
        
        pra_user_id.Direction = adParamInput
        pra_user_id.Type = adSingle
        pra_user_id.Size = 9
        pra_user_id.Value = ID1
      
        pra_user_exist.Direction = adParamOutput
        pra_user_exist.Type = adBoolean
        pra_user_exist.Size = 1
        
        cmd_IsIdExist.ActiveConnection = adoCnConnect
        cmd_IsIdExist.CommandType = adCmdStoredProc
        cmd_IsIdExist.CommandText = "prc_Find_ID"
        cmd_IsIdExist.Parameters.Append pra_user_id
        cmd_IsIdExist.Parameters.Append pra_user_exist
        cmd_IsIdExist.Execute
        FindId = pra_user_exist.Value
    End Function
    private sub command1_click()
    dim a as single
    dim b as boolean
    a=val(text1.text)
    b=FindId(a) 
    msgbox b
    'a是id号作为传入参数b是该id是否存在,是返回参数
    end sub