У меня есть база данных 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.
Мои вопросы: как мне попытаться достичь желаемого результата или я могу сделать что-нибудь с приведенным выше кодом, чтобы ускорить процесс?
Спасибо, пожалуйста, дайте мне знать, если я смогу уточнить или улучшить мои вопросы.