加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

检查VB6集合中是否存在记录?

发布时间:2020-12-17 00:00:46 所属栏目:大数据 来源:网络整理
导读:我在现在的工作场所继承了一个大型的VB6应用程序。我有点在工作中学习VB6,并有一些我遇到的问题。目前的主要问题是无法确定如何检查Collection对象中是否存在密钥。谁能帮忙? @Mark Biek你的keyExists与我的标准Exists()函数密切相关。为了使该类对于COM暴
我在现在的工作场所继承了一个大型的VB6应用程序。我有点在工作中学习VB6,并有一些我遇到的问题。目前的主要问题是无法确定如何检查Collection对象中是否存在密钥。谁能帮忙?
@Mark Biek你的keyExists与我的标准Exists()函数密切相关。为了使该类对于COM暴露的集合和检查数字索引更有用,我建议将sKey和myCollection更改为不输入。如果该函数将与对象集合一起使用,则需要“set”(在设置val的行上)。

编辑:这是在告诉我,我从来没有注意到基于对象和基于值的Exists()函数的不同要求。我很少使用非对象的集合,但这似乎是一个错误的完美瓶颈,当我需要检查存在时,这个错误很难跟踪。因为如果错误处理程序已经处于活动状态,错误处理将失败,因此需要两个函数来获取新的错误范围。只有Exists()函数需要被调用:

Public Function Exists(col,index) As Boolean
On Error GoTo ExistsTryNonObject
    Dim o As Object

    Set o = col(index)
    Exists = True
    Exit Function

ExistsTryNonObject:
    Exists = ExistsNonObject(col,index)
End Function

Private Function ExistsNonObject(col,index) As Boolean
On Error GoTo ExistsNonObjectErrorHandler
    Dim v As Variant

    v = col(index)
    ExistsNonObject = True
    Exit Function

ExistsNonObjectErrorHandler:
    ExistsNonObject = False
End Function

并验证功能:

Public Sub TestExists()
    Dim c As New Collection

    Dim b As New Class1

    c.Add "a string","a"
    c.Add b,"b"

    Debug.Print "a",Exists(c,"a") ' True '
    Debug.Print "b","b") ' True '
    Debug.Print "c","c") ' False '
    Debug.Print 1,1) ' True '
    Debug.Print 2,2) ' True '
    Debug.Print 3,3) ' False '
End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读