使用Access 2000中的集合中的密钥检索值

时间:2010-04-29 18:14:09

标签: ms-access access-vba

我知道这是一个简单的问题,但它让我更加恶心。如果我在集合中有一个键/值对,但我似乎无法使用键获取值。我可以使用值获取密钥,但反之亦然。是否有一些神奇的方法来实现这一目标?

例如:

Dim CycleList As Collection
Dim Value as String
Set CycleList = New Collection
CycleList.Add 1, "Some Value"


Value = CycleList(1)

我也试过CycleList.Item(1)并且结果相同,值= 1.

1 个答案:

答案 0 :(得分:1)

原因是您告诉VBA将一个带有Some Value备用键的整数1添加到集合中。当您致电CycleList(1)时,您要求索引为1的Item恰好是值1.第二个参数Some Value表示可用于查找值的备用键你想要的项目。这是一个例子来说明:

Public Sub Foo()
    Dim bar As Collection
    Set bar = New Collection
    bar.Add 1, "Blah"
    bar.Add "Foobar"
    bar.Add 99

    Debug.Print "bar(""Blah""): " & bar("Blah")
    Debug.Print "bar(1): " & bar(1)
    Debug.Print "bar(2): " & bar(2)
    Debug.Print "bar(3): " & bar(3)
End Sub

在调试窗口中调用Foo时的结果:

bar("Blah"): 1
bar(1): 1
bar(2): Foobar
bar(3): 99

请注意,在第一个Debug.Print中,我按键询问值,但在其他情况下,我要求索引值。