Камрады!
Я создал макрос, который подлючается к базе данных SQL
Код |
---|
Sub Macro2()
'
' Macro2 Macro
'
'
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=SQLOLEDB.1;Password=xdr5%RDX;Persist Security Info=True;User ID=OptimalAdmin;Data Source=OTVSQL02;Use Procedure for Pre" _
, _
"pare=1;Auto Translate=True;Packet Size=4096;Workstation ID=VCHARNY-G2;Use Encryption for Data=False;Tag with column collation wh" _
, "en possible=False;Initial Catalog=PerformanceResults"), Destination:=Range( _
"$A$1")).QueryTable
.CommandType = xlCmdTable
.CommandText = Array( _
"""PerformanceResults"".""dbo"".""BenchmarkTestsSummary""")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceConnectionFile = _
"C:\Users\VCharny\Documents\My Data Sources\OTVSQL02 PerformanceResults BenchmarkTestsSummary1.odc"
.ListObject.DisplayName = _
"Table_OTVSQL02_PerformanceResults_BenchmarkTestsSummary1"
.Refresh BackgroundQuery:=False
End With
|
Таблица огромная и после того как данные отображаются,
- делаю сортировку по нужным мне парметрам
- scrolling
- cut
- открываю новые tab
- удаляю из таблицы несколько десятков колонок, так как они мне не нужны для статистики
...
типа вот таких блоковЖ
Код |
---|
ActiveSheet.ListObjects( _
"Table_OTVSQL02_PerformanceResults_BenchmarkTestsSummary1").Range.AutoFilter _
Field:=3, Criteria1:="QAPerformanceVertica"
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
ActiveSheet.ListObjects( _
"Table_OTVSQL02_PerformanceResults_BenchmarkTestsSummary1").Range.AutoFilter _
Field:=1, Criteria1:=Array("7.4.4247.0", "7.4.4280.0", "7.4.4340.0"), _
Operator:=xlFilterValues
ActiveWindow.SmallScroll ToRight:=3
Range("H:H,I:I,J:J,K:K,L:L,M:M,N:N,O:O,P:P,Q:Q,R:R,S:S").Select
Range( _
"Table_OTVSQL02_PerformanceResults_BenchmarkTestsSummary1[[#Headers],[Extract data: Analyze_Statistics]]" _
).Activate
|
Всё это отображается в макросе
3 основных вопроса:1. Как можно оспользовать QUERY, который делает всё эту фильтрацию, а не тащит в макросе, все действия, чтобы макрос просто запустил QUERY
или что-то похожее.
2, Как можно в синтаксисе макроса, прописат слеуюший фильтр для столбца Даты:
-> Текущая дата -30 дней
3, Чтобы такая фильтрация была применима для 10 tab одновременно (каждый по своему дополнительному стрингу)
Т.е. задача при каждом открытие .xmls файла, чтобы вытаскивались автоматически -30 дней данных от текущей из базы данных