Vb6 返回错误类型的类型。。。recorset与fields类似

Vb6 返回错误类型的类型。。。recorset与fields类似,vb6,recordset,typeof,Vb6,Recordset,Typeof,我在这里遇到了一个无聊的问题 我试图将记录集强制转换为数组,但对象类型没有正确返回 我有一个记录集类型的函数,我试图通过记录集对象接收该函数的结果。但是当我尝试测试对象类型时,typeof函数返回“Fields”类型 搜索方法: Public Function Buscar(ByVal query As String) As Recordset Dim rs As New Recordset If con.State <> 1 Then Conectar End If r

我在这里遇到了一个无聊的问题

我试图将记录集强制转换为数组,但对象类型没有正确返回

我有一个记录集类型的函数,我试图通过记录集对象接收该函数的结果。但是当我尝试测试对象类型时,typeof函数返回“Fields”类型

搜索方法:

Public Function Buscar(ByVal query As String) As Recordset
Dim rs As New Recordset

If con.State <> 1 Then
    Conectar
End If

rs.Open query, con, adOpenStatic, adLockReadOnly
Set Buscar = rs

End Function


dim r as recordset
dim c as new clsConnection

r = c.buscar("select * from costumers")
c.casttoarray(r)

Private Sub castToArray(obj As Object)

Dim rs          As New Recordset
Dim linhas()    As String
Dim colsize()   As Integer
Dim aux         As Integer

If TypeOf obj Is adodb.Recordset Then

    Dim nLin As Long
    Dim nCol As Integer
    Dim l As Long
    Dim c As Integer

    Set rs = obj
    colsize = capturarLimites(rs)
    nLin = rs.RecordCount
    nCol = rs.Fields.Count
    ReDim linhas(nLin)


    rs.MoveFirst
    For l = 0 To nLin - 1
        For c = 0 To nCol - 1
            aux = colsize(c) - Len(rs.Fields(c).Value)
            linhas(l) = linhas(l) & "" & rs.Fields(c).Value & rptString(" ", aux + 1)
        Next c
    Next l

End If



End Sub
公共函数Buscar(ByVal查询为字符串)作为记录集
Dim rs作为新记录集
如果符合第1条,则
连接器
如果结束
rs.开放查询、con、adOpenStatic、adLockReadOnly
设置客车=rs
端函数
dimras记录集
dim c作为新的CLS连接
r=c.buscar(“从客户中选择*)
c、 卡斯托雷(右)
专用子目录阵列(对象为obj)
Dim rs作为新记录集
Dim linhas()作为字符串
Dim colsize()为整数
作为整数的Dim aux
如果obj的类型为adodb.Recordset,则
长得一样
作为整数的Dim-nCol
我和你一样长
作为整数的Dim c
设置rs=obj
colsize=capturarLimites(rs)
nLin=rs.RecordCount
nCol=rs.Fields.Count
雷迪姆·林哈斯(nLin)
先走一步
对于l=0到nLin-1
对于c=0到nCol-1
aux=colsize(c)-Len(rs.字段(c).值)
linhas(l)=linhas(l)&“&rs.Fields(c).Value&rptString(“,aux+1)
下一个c
下一个l
如果结束
端接头

问题在于调用Sub时使用的括号:

它们计算
r
,并将记录集类(字段集合)的默认成员传递给过程

移除它们或使用呼叫

c.casttoarray r
call c.casttoarray(r)

或者强键入
casttoarray
参数。

不确定它是否相关,但我认为
r=c.buscar(“从客户选择”)
应该是
set r=c.buscar(“从客户选择”)
c.casttoarray r
call c.casttoarray(r)