Добрый день!
подскажите плз. в VBA не силен, а задачу необх. решить
Суть вопроса- необходимо сделать форму, которая подставлят в шаблоны таблиц данные из БД и приводит все это это в читаемый вид, в файле несолько листов, для заполнения каждого свой sql запрос.
Сейчас для каждого запроса я использую код :
Set cnnConnect = New ADODB.Connection
Set rstRecordset = New ADODB.Recordset
cnnConnect.Open "Provider=XXX.1;Password=XXX;Persist Security Info=True;User ID=XXX;Data Source=XXX"
rstRecordset.Open Source:=SQLStrALL, ActiveConnection:=cnnConnect, CursorType:=adOpenDynamic, LockType:=adLockReadOnly, Options:=adCmdText
With Sheets("Лист1").QueryTables.Add( _
Connection:=rstRecordset, _
Destination:=Sheets("Лист1").Range("A3"))
.Name = "Запрос из базы данных"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Все работет корректно, но мне не совсем нравится то что для каждого обращения к БД приходится использовать такой громоздкий код.
Прошу подсказать как это оптимизировать
подскажите плз. в VBA не силен, а задачу необх. решить
Суть вопроса- необходимо сделать форму, которая подставлят в шаблоны таблиц данные из БД и приводит все это это в читаемый вид, в файле несолько листов, для заполнения каждого свой sql запрос.
Сейчас для каждого запроса я использую код :
Set cnnConnect = New ADODB.Connection
Set rstRecordset = New ADODB.Recordset
cnnConnect.Open "Provider=XXX.1;Password=XXX;Persist Security Info=True;User ID=XXX;Data Source=XXX"
rstRecordset.Open Source:=SQLStrALL, ActiveConnection:=cnnConnect, CursorType:=adOpenDynamic, LockType:=adLockReadOnly, Options:=adCmdText
With Sheets("Лист1").QueryTables.Add( _
Connection:=rstRecordset, _
Destination:=Sheets("Лист1").Range("A3"))
.Name = "Запрос из базы данных"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Все работет корректно, но мне не совсем нравится то что для каждого обращения к БД приходится использовать такой громоздкий код.
Прошу подсказать как это оптимизировать