Я пытаюсь создать форму VBA, которая выполняет хранимую процедуру SQL Server для кэширования данных, прежде чем делать что-либо еще. В идеале я предпочел бы не использовать подключение для передачи данных Excel, потому что тогда я не смогу экспортировать его в новую рабочую книгу с минимальными усилиями - было бы неплохо содержать всю информацию в файле формы.
Основной способ, которым я знаю, чтобы подключить VBA к базе данных, это использовать следующий код:
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
cnn.Open ConnectionString
rst.Open QueryText, cnn, adOpenDynamic
/*Whatever you're doing to the data goes here*/
rst.Close
cnn.Close
Проблема, с которой я сталкиваюсь, заключается в том, что процесс кэширования не возвращает набор данных (даже пустой), и этот тип соединения вызывает головокружение, если данные не возвращаются. И я бы предпочел не изменять процедуру, если мне не нужно.
Есть ли возможное решение в рамках этих ограничений? Или я просто слишком плаксив и должен смириться с этим и использовать соединение для передачи данных Excel или что-то в этом роде?