VBA: запрос массива с заголовками с использованием SQL - PullRequest
0 голосов
/ 09 декабря 2011

Я знаю, что возможность запроса файла CSV существует с использованием odbc (см .: здесь ), но как насчет массива в памяти?

Например, представьте массив со следующей структурой:

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

sql = "select Dog from tbl;"

result = 1

Возможно ли это? Мне нужно записать мой массив в CSV, а затем перечитать данные?

Это было бы немного болезненно и обходительно, но достаточно просто.

Ответы [ 2 ]

0 голосов
/ 09 декабря 2011

Если вы находитесь в 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'а должно быть связано с некоторыми накладными расходами, и вполне возможно, что цикл будет быстрее даже при большом массиве.

0 голосов
/ 09 декабря 2011

Это просто можно сделать с Linq to Objects, я думаю, что невозможно выполнить запрос к источнику данных памяти с ODBC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...