VBA:使用SQL查询带有标头的数组

时间:2011-12-08 20:36:21

标签: sql vba odbc

我知道使用odbc存在查询csv文件的可能性(参见:here),但内存中的数组怎么样?

例如,假设一个具有以下结构的数组:

tbl = [[Dog,Cat,Bird];[1,7,10]]

sql = "select Dog from tbl;"

result = 1

这可能吗?我是否需要将我的数组写入csv,然后重新读取数据?

这会有点痛苦和迂回但很简单。

2 个答案:

答案 0 :(得分:0)

这可以用Linq to Objects完成,我认为用ODBC查询内存数据源是不可能的。

答案 1 :(得分:0)

如果您使用的是Excel,则可以使用HLOOKUP(或VLOOKUP)

Sub QueryArray()

    Dim arr(1 To 3, 1 To 3) As Variant

    arr(1, 1) = "Dog"
    arr(1, 2) = "Cat"
    arr(1, 3) = "Bird"
    arr(2, 1) = 1
    arr(2, 2) = 7
    arr(2, 3) = 10

    Debug.Print Application.WorksheetFunction.HLookup("Cat", arr, 2, False)

End Sub

如果您不在Excel中,则可以设置对Excel的引用。不要只是在数组中循环。我确定你有很多元素,但编写一个CSV然后ODBC'必须有一些开销,即使有一个大数组,循环也可能更快。