Привет всем. Помогите, пожалуйста, в следующей ситуации. Я сделал надстройку, которая строит сводные в екселе, базируясь на запросах базы Access. Вот код подключения этой надстройки:
Public Sub Auto_open()
Dim MyBar As CommandBar
Dim GetIMS As CommandBarButton
Dim GetPivot As CommandBarButton
Dim GetPivotFcst As CommandBarButton
Dim cbc As CommandBarControl
On Error Resume Next
Set MyBar = Application.CommandBars("Data Base")
If Err Then Set MyBar = Application.CommandBars.Add("Data Base", msoBarTop, False, False)
For Each cbc In MyBar.Controls
cbc.Delete
Next
On Error GoTo 0
With MyBar.Controls
Set GetIMS = .Add(msoControlButton, 1, , , False)
Set GetPivot = .Add(msoControlButton, 2, , , False)
Set GetPivotFcst = .Add(msoControlButton, 3, , , False)
End With
With GetIMS
.FaceId = 3987
.Caption = "Get IMS"
.Style = msoButtonCaption
.OnAction = "ShowForm"
End With
With GetPivot
.FaceId = 3987
.BeginGroup = True
.Caption = "Get Pivot Table"
.Style = msoButtonCaption
.OnAction = "ShowFormPivot"
End With
With GetPivotFcst
.FaceId = 3987
.BeginGroup = True
.Caption = "Forecast Analysis"
.Style = msoButtonCaption
.OnAction = "ShowFormPivotFcst"
End With
MyBar.Visible = True
End Sub
Хочется сделать, чтобы при подключении надстройки создавались глобальные переменные с полными адресами баз данных (типа после подключения надстройки полюзователю предлагается выбрать те базы Access, с которыми он будет работать).
На кнопке Get Pivot Table панели, которая создается после подключения надстройки, повешен код создания сводной. Вот часть кода:
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = "ODBC;DSN=MS Access Database;DBQ=С:\Program Files\1.mdb;DefaultDir=С:\Program Files;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
.CommandType = xlCmdSql
.CommandText = Array("бла-бла-бла")
.CreatePivotTable TableDestination:=Range(Pivot_cell.Value), TableName:="aaa" DefaultVersion:=xlPivotTableVersion10
End With
Здесь вместо DBQ=С:\Program Files\1.mdb и DefaultDir=С:\Program Files должны быть те адреса, которые пользователь выберет после подключения надстройки.
Надеюсь, выразился понятливо. Буду очень благодарен за любую помощь.