Использование многомерных массивов в VBA Access в вызове API - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть база данных Access с некоторыми акциями.Я использую функцию для вызова API и получения цены для каждой акции.

Проблема в том, что я делаю это рекурсивно, зацикливаясь на запросе биржевых тикеров, и для каждого тикера вызываю этот API с помощью функции GetPrice (это кажется очень неэффективным и иногда может занять много времени).

Код выглядит следующим образом:

Dim Query
Query = "SELECT ...ID and Tickers from stocks table"

Dim Recordset
Set Recordset = CurrentDb.OpenRecordset(Query)

Do Until Recordset.EOF

    Dim ID, Ticker, PriceT, s(), f()
    ID = Recordset("ID")
    Ticker = Recordset("Ticker")

    ReDim s(0 To 0): s(0) = Ticker
    ReDim f(0 To 0): f(0) = "LAST_PRICE"

    PriceT = GetPrice(s, f, Date)

    CurrentDb.Execute "UPDATE [Prices] SET [Price] =" & Nz(PriceT, 0) & " WHERE StockID=" & ID

Loop
Recordset.Close

Exit Sub

Что я действительно хотел бы сделать, чтобы улучшить этот код, так это передать массив тикеров в функцию, и за каждый тикер получите цену с помощью всего лишьодин вызов API, по сути, получающий матрицу 2 xn, а затем потенциально зацикливающий ее для обновления таблицы с помощью оператора sql.

Мои вопросы: как мне попытаться достичь желаемого результата или я могу сделать что-нибудь с приведенным выше кодом, чтобы ускорить процесс?

Спасибо, пожалуйста, дайте мне знать, если я смогу уточнить или улучшить мои вопросы.

...