VB6:向对象添加数据时出现错误 91

VB6: Error 91 when adding data to object

在代码 [VB6] 中,我在集合中搜索特定数据。 Fam87 来自一个文本文件。

Function cumplefam(Fam87FO As String, rFamn1 As String, rFamn2 As String, rFam87 As String) As Boolean
    Dim objfam As Tfamilias
    Dim c1, c2, c3 As String

    **objfam = getfamilia(Fam87FO)**

    If rFamn1 = "" Then
        c1 = "OK"
    Else
        If InStr(objfam.cFamn1, rFamn1) > 0 Then
            c1 = "OK"
        Else
            c1 = "NO OK"
        End If
    End If

    If rFamn2 = "" Then
        c2 = "OK"
    Else
        If InStr(objfam.cFamn2, rFamn2) > 0 Then
            c2 = "OK"
        Else
            c2 = "NO OK"
        End If
    End If

    If rFam87 = "" Then
        c3 = "OK"
    Else
        If InStr(objfam.cFam87, rFam87) > 0 Then
            c3 = "OK"
        Else
            c3 = "NO OK"
        End If
    End If

    If c1 = "OK" And c2 = "OK" And c3 = "OK" Then
        cumplefam = True
    Else
        cumplefam = False
    End If

End Function

getfamilia运行时出现问题:

Function getfamilia(cFam As String) As Tfamilias
    On Error Resume Next
    Set getfamilia = Nothing
    getfamilia = colfamilias(cFam)
End Function

运行它一步一步地给了我我想要的数据,但是当它到达结束函数时它显示:

运行-time error '91': Object variable or With block variable not set

我在 VB 方面没有经验,所以我不太明白我的错误是什么。

假设colfamilias实际上已经被初始化,对于一个return值是一个对象,你必须使用Set:

Function getfamilia(cFam As String) As Tfamilias
    On Error Resume Next
    Set getfamilia = Nothing
    Set getfamilia = colfamilias(cFam) '// change this line
End Function

并且在您对函数的调用中:

Set objfam = getfamilia(Fam87FO)