我在创建ASP下的Recordset对象时,然后调用VB写的COM组件,发现从ASP传入的对象老是出现:类型不匹配现象:
我的ASP程序:
               Set Rs=server.CreateObject("adodb.recordset") 
               rs.open sql,conn,1,3
               set search = server.CreateObject("search.body")
               search.loadRs(Rs)
我的VB写的COM程序:
               Public Sub RsLoad(rs)
               Set Rsp = New ADODB.Recordset
               If IsObject(rs) Then
               Rsp = rs
               While Not Rsp.EOF
               Response.Write Rsp(0)
               Wend
               End If
               End Sub原来我定义RsLoad是这个写的:Public Sub RsLoad(Rs as ADODB.Recordset)发现是同样的问题:
各位兄弟帮忙解决一下啊

解决方案 »

  1.   

    search是工程名称吧是不是不能重复的?
      

  2.   

    Public Sub RsLoad(rs)
    Set Rsp = New ADODB.Recordset
    If IsObject(rs) Then
    Rsp = rs
    ^^^^^^^^^^^^^^^^^^^^^^^^^这里要用Set rsp=rs
    While Not Rsp.EOF
    Response.Write Rsp(0)
    Wend
    End If
    End Sub
    ===================================
      

  3.   

    search.loadRs(Rs)
    ------------
    Public Sub RsLoad(rs)看到这两个函数名有什么不同了吗?
      

  4.   

    写COM的时候一定要启用 Option Explicit否则~调试起来非常麻烦楼主的代码里面,rsp就没有定义
      

  5.   

    Public Sub RsLoad(rs as varivt)(要声明为变体拼写记不清了)
    Set Rsp = New ADODB.Recordset
    If IsObject(rs) Then
    set Rsp = rs (对象赋值要加set)
    While Not Rsp.EOF
    Response.Write Rsp(0)
    Wend
    End If
    End Sub