Использование плагина SaveToDB 7 с VBA

Использование плагина SaveToDB 7 с VBA

Интеграция с макросами VBA

Вы можете использовать плагин SaveToDB в макросах VBA.

Вы можете легко загружать данные из таблиц, представлений и хранимых процедур баз данных, данные из Интернет и текстовых файлов.

Вы можете легко сохранять данные в базы данных Microsoft SQL Server, Microsoft SQL Server Compact, Oracle Database, IBM DB2, MySQL, MariaDB, PostgreSQL, NuoDB и SQLite.

Эти возможности позволяют быстро создавать приложения на VBA и полностью закрыть вопросы с доступом к базам данных.

Модель программирования очень проста:

  • Настройте поведение плагина SaveToDB в визуальном режиме, используя любые возможности.
  • Вызывайте методы плагина SaveToDB из макросов VBA как обычные нажатия кнопок на ленте.

К примеру, используйте следующий код для получения ссылки на плагин SaveToDB:

Dim addIn As COMAddIn
Dim addInObj As Object
Set addIn = Application.COMAddIns("SaveToDB")
Set addInObj = addIn.Object

и используйте этот код для сохранения изменений в базу данных:

addInObj.Save

Или используйте этот код для обновления данных из базы данных для заданных параметров:

Application.EnableEvents = False

Range("Account").Value = 123
Range("Company").Value = "ABC"

Application.EnableEvents = True

addInObj.RebuildCommandTextFromNamedCells

См. список доступных методов в статье

Методы SaveToDB для приложений VBA

Методы плагина SaveToDB могут быть вызваны из макросов VBA.

Действие методов аналогично действиям пунктов меню на ленте, таких как Сохранить, Обновить, и т.д.

Методы работают с таблицами на рабочих листах и выполняются как стандартные действия плагина SaveToDB.

Таблицы Excel с функциональностью плагина можно разместить на скрытых листах и проводить все операции из макросов.
Это позволяет использовать плагин как слой работы с базами данных и веб-запросами.

Данный код используется для получения ссылки на плагин SaveToDB:

Dim addIn As COMAddIn
Dim addInObj As Object
Set addIn = Application.COMAddIns("SaveToDB")
Set addInObj = addIn.Object

Варианты кода ниже используются для сохранения изменений в базу данных и обновления данных после сохранения:

addInObj.Save

addInObj.Save ListObject

Call addInObj.Save(ListObject)

If Not addInObj.Save(ListObject) Then
    MsgBox addInObj.LastResultMessage
End If

Варианты кода для загрузки данных и конфигурации из баз данных, Интернет и текстовых файлов:

addInObj.Load

addInObj.Load ListObject

Call addInObj.Load(ListObject)

If Not addInObj.Load(ListObject) Then
    MsgBox addInObj.LastResultMessage
End If

Код ниже используется для обновления параметров запроса в именованных ячейках за один раз и последующей загрузки данных из баз данных, веб и текстовых файлов с новыми параметрами:

Application.EnableEvents = False

Range("Account").Value = 123
Range("Company").Value = "ABC"

Application.EnableEvents = True

addInObj.RebuildCommandTextFromNamedCells

Начиная с версии SaveToDB 6.8, можно использовать прямые вызовы для установки значений параметров:

addInObj.ParameterValue(ListObject, "Account") = 123
addInObj.ParameterValue(ListObject, "Company") = "ABC"

Call addInObj.Load(ListObject)

Такой подход не требует создания именованных ячеек и более универсален. Однако, он не будет работать в предыдущих версиях.

Вы можете найти примеры использования плагина с макросами в Руководстве разработчика 6.8 в меню Мастера, Примеры и шаблоны.

Методы SaveToDB для приложений VBA

ReadOnly Property LastResultMessage As String
Свойство возвращает результат последней операции.
ReadOnly Property Options As ISaveToDBOptions
Свойство возвращает объект, который позволяет считать или изменить настройки плагина SaveToDB.
См. объявление интерфейса ISaveToDBOptions ниже.
Почти все настройки доступны в диалоговом окне Настройки.
Function InsertConnectedListObject(TargetRange, ConnectionString, QueryObject, ObjectType) As Boolean
Функция вставляет подключенный объект ListObject в заданный диапазон, аналогично Мастеру подключения.
Если TargetRange содержит таблицу ListObject, то она заменяется на новую.
Возможные типы ObjectType: TABLE, VIEW, PROCEDURE, FUNCTION, CODE, TEXT, HTTP.
Для подключения к объектам базы данных необходимо передать строку подключения и имя существующего объекта базы данных, включая схему, а также тип объекта (TABLE, VIEW, или PROCEDURE).
Можно использовать OLEDB, ODBC и .NET провайдеры. OLEDB и ODBC поддерживаются непосредственно Microsoft Excel, работа через .NET провайдеры поддерживается только при работе с плагином SaveToDB.
Для подключения к текстовому файлу необходимо передать имя файла или шаблон имени файла со значениями по умолчанию в QueryObject и тип TEXT.
Для подключения к веб-источнику необходимо передать веб-адрес источника или шаблон веб-адреса со значениями по умолчанию в QueryObject и тип HTTP.
В Руководстве разработчика 6.8 в меню Мастера, Примеры и шаблоны можно найти примеры использования функции.
Function Save(Optional ListObject) As Boolean
Функция сохраняет изменения в таблице Excel в базу данных и обновляет данные после сохранения.
Если параметр ListObject не задан, то используется активная таблица листа.
Function SavePivotTable(PivotTable) As Boolean
Функция сохраняет изменения в исходной таблице Excel в базу данных и обновляет данные после сохранения.
Если параметр PivotTable не задан, используется активная сводная таблица листа.
Function SaveByMerge(Optional ListObject) As Boolean
Функция сохраняет слиянием данные таблицы Excel в базу данных и обновляет данные после сохранения.
При слиянии выполняется вставка новых строк и обновление существующих, без удаления каких-либо данных.
Если параметр ListObject не задан, то используется активная таблица листа.
Function GetSaveSQL(Optional ListObject) As String
Функция возвращает команды SQL, которые используются для сохранения изменений в базу данных.
Function GetSaveByMergeSQL(Optional ListObject) As String
Функция возвращает команды SQL, которые используются для слияния данных базу данных.
Function SaveByMergeDirect(ListObject, ConnectionString, QueryObject, ObjectType) As Boolean
Функция сохранят слиянием данные таблиц в базу данных.
Данные можно сохранить в одну таблицу, а также несколько таблиц с использованием хранимых процедур или SQL-кода.
Типы ObjectType: TABLE, PROCEDURE, CODE.
В функцию необходимо передать строку подключения и целевого имя объекта базы данных, включая схему.
Можно использовать OLEDB, ODBC, и .NET провайдеры.
В Руководстве разработчика 6.8 в меню Мастера, Примеры и шаблоны можно найти примеры использования функции.
Function GetSaveByMergeDirectSQL(ListObject, ConnectionString, QueryObject, ObjectType) As String
Функция возвращает SQL-код, генерируемый функций SaveByMergeDirect, и имеет те же параметры.
Function SaveAllSheetTables(Optional Worksheet) As Boolean
Функция сохраняет изменения всех таблиц листа в базу данных и обновляет данные после сохранения.
Если параметр Worksheet не задан, то используется активный лист.
Function SaveAllWorkbookTables(Optional Workbook, Optional UseWizard = True) As Boolean
Функция вызывает диалог "Сохранение изменений".
Если задан параметр UseWizard = False, то функция выполняет сохранение без вызова диалога.
Если параметр Workbook не задан, то используется активная книга.
Function Load(Optional ListObject, Optional ReloadMetadata = False, Optional IgnoreChanges = False) As Boolean
Функция обновляет данные таблицы Excel из базы данных и серверную конфигурацию таблицы.
Если в текущей таблице есть изменения, то показывается диалог подтверждения сохранения данных.
Если задан параметр IgnoreChanges = True, то диалог сохранения не показывается и данные не сохраняются.
Если задан параметр ReloadMetadata = False, то данные конфигурации не обновляются.
Если параметр ListObject не задан, то используется активная таблица листа.
Function LoadPivotTable(PivotTable, Optional ReloadMetadata = False, Optional IgnoreChanges = False) As Boolean
Функция обновляет данные сводной таблицы и исходной таблицы Excel из базы данных и серверную конфигурацию таблицы.
Если в исходной таблице Excel есть изменения, то показывается диалог подтверждения сохранения данных.
Если задан параметр IgnoreChanges = True, то диалог сохранения не показывается и данные не сохраняются.
Если задан параметр ReloadMetadata = False, то данные конфигурации не обновляются.
Если параметр ListObject не задан, то используется активная таблица листа.
Function LoadAllSheetTables(Optional Worksheet, Optional ReloadMetadata = False, Optional IgnoreChanges = False) As Boolean
Функция обновляет данные всех таблиц листа из базы данных и серверную конфигурацию таблиц.
Если в таблице Excel есть изменения, то показывается диалог подтверждения сохранения данных.
Если задан параметр IgnoreChanges = True, то диалог сохранения не показывается и данные не сохраняются.
Если задан параметр ReloadMetadata = False, то данные конфигурации не обновляются.
Если параметр Worksheet не задан, то используется активный лист.
Function LoadAllWorkbookTables(Optional Workbook, Optional ReloadMetadata = False, Optional IgnoreChanges = False, Optional UseWizard = True) As Boolean
По умолчанию, функция вызывает диалог "Обновление данных".
Если задан параметр UseWizard = False, то функция выполняет обновление без вызова диалога.
Если в таблице Excel есть изменения, то показывается диалог подтверждения сохранения данных.
Если задан параметр IgnoreChanges = True, то диалог сохранения не показывается и данные не сохраняются.
Если задан параметр ReloadMetadata = False, то данные конфигурации не обновляются.
Если параметр Workbook не задан, то используется активная рабочая книга.
Function RebuildCommandTextFromNamedCells(Optional Worksheet) As Boolean
Функция обновляет параметры запроса из одноименных именованных ячеек и загружает данные.
Этот функция следует использовать после обновления нескольких именованных ячеек при Application.EnableEvents = False.
Если параметр Worksheet не задан, то используется активный лист.
Function ReloadQueryList(Optional ListObject) As Boolean
Функция обновляет список объектов списка запросов.
Property ExcelConnectionString(ListObject) As String
Свойство возвращает или устанавливает значение строки подключения объекта ListObject в формате Excel типа "OLEDB;<ConnectionString>" или "ODBC;<ConnectionString>".
Плагин SaveToDB также позволяет использовать .NET-провайдеры в формате "<ProviderName>;<ConnectionString>".
После изменения следует обновить данные и конфигурацию.
Property ProviderName(ListObject) As String
Свойство возвращает или устанавливает значение ProviderName строки подключения объекта ListObject.
После изменения следует обновить данные и конфигурацию.
Property ConnectionString(ListObject) As String
Свойство возвращает или устанавливает значение строки подключения объекта ListObject.
После изменения следует обновить данные и конфигурацию.
Property CommandText(ListObject) As String
Свойство возвращает или устанавливает значение CommandText объекта ListObject.
После изменения следует обновить данные и конфигурацию.
Property QueryObject(ListObject) As String
Свойство возвращает или устанавливает объект базы данных для запроса объекта ListObject.
Можно использовать имена из списка объектов функции GetQueryListItems, который содержит сведения о типах объектов.
Функция работает аналогично Списку запросов на ленте.
После изменения следует обновить данные и конфигурацию.
Property QueryList(ListObject) As String
Свойство возвращает или устанавливает объект списка запросов, связанный с объектом ListObject, который используется в Списке запросов на ленте.
Property QueryLocked(ListObject) As Boolean
Свойство возвращает или устанавливает признак блокировки изменения запроса с помощью Списке запросов на ленте.
Function GetQueryListItems(ListObject) As Array
Функция возвращает список объектов базы данных списка запросов.
Function GetFields(ListObject) As Array
Функция возвращает список полей в источнике данных объекта ListObject.
Function GetParameters(ListObject) As Array
Функция возвращает список параметров запроса объекта ListObject.
Плагин определяет параметры хранимых процедур, функций и веб-запросов автоматически.
Для таблиц и представлений параметры задаются в свойстве IsRibbonField.
Property IsRibbonField(ListObject, FieldName) As Boolean
Свойство возвращает или устанавливает признак отображения как параметра на ленте для полей таблиц и представлений.
Function HasParameter(ListObject, ParameterName) As Boolean
Функция возвращает признак наличия параметра у запроса.
Для таблиц и представлений результат аналогичен функции IsRibbonField.
Property ParameterValue(ListObject, ParameterName) As Variant
Свойство возвращает или устанавливает значение параметра.
Если список значений параметра содержит пары id и наименование, то свойство возвращает или устанавливает значение id.
Property ParameterRibbonValue(ListObject, ParameterName) As String
Свойство возвращает или устанавливает значение параметра для ленты.
Если список значений параметра содержит пары id и наименование, то свойство возвращает или устанавливает значение наименования.
Function AddTableCursor(Optional ListObject) As Boolean
Функция добавляет курсор в таблицу.
Function RemoveTableCursor(Optional ListObject) As Boolean
Функция удаляет курсор в таблицы.
Function MoveNext(ListObject) As Boolean
Функция перемещает курсор на одну строку вперед.
Функция возвращает false, если курсор находится в последней строке таблицы.
Перемещение курсора вызывает обновление полей таблицы на листе и зависимых таблиц.
Function MovePrevious (ListObject) As Boolean
Функция перемещает курсор на одну строку назад.
Функция возвращает false, если курсор находится в первой строке таблицы.
Перемещение курсора вызывает обновление полей таблицы на листе и зависимых таблиц.
Function MoveFirst (ListObject) As Boolean
Функция перемещает курсор в начало таблицы.
Перемещение курсора вызывает обновление полей таблицы на листе и зависимых таблиц.
MoveLast (ListObject) As Boolean
Функция перемещает курсор в конец таблицы.
Перемещение курсора вызывает обновление полей таблицы на листе и зависимых таблиц.
Function InsertAddInSheets(Optional Workbook) As Boolean
Функция вставляет листы, необходимые для работы плагина.
Function RemoveAddInSheets(Optional Workbook) As Boolean
Функция удаляет листы, необходимые для работы плагина.
Function ShowAddInSheets(Optional Workbook) As Boolean
Функция отображает листы, необходимые для работы плагина.
Function HideAddInSheets(Optional Workbook) As Boolean
Функция скрывает листы, необходимые для работы плагина.
Function CleanAddInSheets(Optional Workbook) As Boolean
Функция очищает данных на листах, необходимых для работы плагина.
Это используется, чтобы удалить информацию обо всех предыдущих объектах, оставив необходимый минимум сведений о подключениях.
После очистки следует перезагрузить данные и конфигурацию для всех объектов книги.
Function RunCmd(Command) As Boolean
Функция выполняет команду процессора командной строки Windows.
Рабочий каталог устанавливается по каталогу активной книги.
CopyAndInsertRows (Range)
Функция копирует и вставляет строки для заданного диапазона или текущего выделения.
Результат функции аналогичен нажатию кнопки "Скопировать и вставить строки" в группе "Вид таблицы".
ActivateTab
Функция активирует вкладку SaveToDB.

Интерфейсы плагина SaveToDB

<ComVisible(True), Guid("CF0170F1-310E-421F-87DF-C177753EEDD5")>
Public Interface IAddInUtilities

    ReadOnly Property LastResultMessage As String

    ReadOnly Property Options As ISaveToDBOptions

    Function InsertConnectedListObject(TargetRange As Range, ConnectionString As String, QueryObject As String, ObjectType As String) As Boolean

    Function Save(Optional ListObject As ListObject = Nothing) As Boolean

    Function SavePivotTable(PivotTable As PivotTable) As Boolean

    Function SaveByMerge(Optional ListObject As ListObject = Nothing) As Boolean

    Function GetSaveSQL(Optional ListObject As ListObject = Nothing) As String

    Function GetSaveByMergeSQL(Optional ListObject As ListObject = Nothing) As String

    Function SaveByMergeDirect(ListObject As ListObject, ConnectionString As String, QueryObject As String, ObjectType As String) As Boolean

    Function GetSaveByMergeDirectSQL(ListObject As ListObject, ConnectionString As String, QueryObject As String, ObjectType As String) As String

    Function SaveAllSheetTables(Optional Worksheet As Worksheet = Nothing) As Boolean

    Function SaveAllWorkbookTables(Optional Workbook As Workbook = Nothing, Optional UseWizard As Boolean = True) As Boolean

    Function Load(Optional ListObject As ListObject = Nothing,
            Optional ReloadMetadata As Boolean = False, Optional IgnoreChanges As Boolean = False) As Boolean

    Function LoadPivotTable(PivotTable As PivotTable,
            Optional ReloadMetadata As Boolean = False, Optional IgnoreChanges As Boolean = False) As Boolean

    Function LoadAllSheetTables(Optional Worksheet As Worksheet = Nothing,
            Optional ReloadMetadata As Boolean = False, Optional IgnoreChanges As Boolean = False) As Boolean

    Function LoadAllWorkbookTables(Optional Workbook As Workbook = Nothing,
            Optional ReloadMetadata As Boolean = False, Optional IgnoreChanges As Boolean = False, Optional UseWizard As Boolean = True) As Boolean

    Function RebuildCommandTextFromNamedCells(Optional Worksheet As Worksheet = Nothing) As Boolean

    Function ReloadQueryList(Optional ListObject As ListObject = Nothing) As Boolean

    Property ExcelConnectionString(ListObject As ListObject) As String

    Property ProviderName(ListObject As ListObject) As String

    Property ConnectionString(ListObject As ListObject) As String

    Property CommandText(ListObject As ListObject) As String

    Property QueryObject(ListObject As ListObject) As String

    Property QueryList(ListObject As ListObject) As String

    Property QueryLocked(ListObject As ListObject) As Boolean

    Function GetQueryListItems(ListObject As ListObject) As Array

    Function GetFields(ListObject As ListObject) As Array

    Function GetParameters(ListObject As ListObject) As Array

    Property IsRibbonField(ListObject As ListObject, FieldName As String) As Boolean

    Function HasParameter(ListObject As ListObject, ParameterName As String) As Boolean

    Property ParameterValue(ListObject As ListObject, ParameterName As String) As Object

    Property ParameterRibbonValue(ListObject As ListObject, ParameterName As String) As String

    Function AddTableCursor(Optional ListObject As ListObject = Nothing) As Boolean

    Function RemoveTableCursor(Optional ListObject As ListObject = Nothing) As Boolean

    Function MoveNext(Optional ListObject As ListObject = Nothing) As Boolean

    Function MovePrevious(Optional ListObject As ListObject = Nothing) As Boolean

    Function MoveFirst(Optional ListObject As ListObject = Nothing) As Boolean

    Function MoveLast(Optional ListObject As ListObject = Nothing) As Boolean

    Function InsertAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function RemoveAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function ShowAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function HideAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function CleanAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function RunCmd(Command As String) As Boolean

    Function CopyAndInsertRows(Optional Range As Range = Nothing) As Boolean

    Function ActivateTab() As Boolean

End Interface

<ComVisible(True), Guid("CF0170F1-310E-421F-87DF-C177753EEDD9")>
Public Interface ISaveToDBOptions

    Property DisplayLanguage As String

    Property DefaultDataLanguage As String

    Property WorkbookDataLanguage(Optional ByVal Workbook As Workbook = Nothing) As String

    Property ParameterHistoryLimit As Int32

    Property ConnectionTimeout As Int32

    Property CommandTimeout As Int32

    Property GenerateSingleLineSQL As Boolean

    Property EncryptPasswordsByDefault As Boolean

    Property EncryptWorkbookPasswords(Optional ByVal Workbook As Workbook = Nothing) As Boolean?

    Property TemplatePath As String

    Property HideAdvancedMenuItems As Boolean

    Property ShowGroupAtDataTab As Boolean

    Property ShowGroupAtViewTab As Boolean

    Property ShowGroupAtDesignTab As Boolean

    Property ShowContextMenu As Boolean

    Property ShowUrlMenu As Boolean

    Property ShowDoubleClickCalendar As Boolean

    Property ShowDoubleClickPivot As Boolean

    Property ShowCellEditor As Boolean

    Property ShowListEditor As Boolean

    Property AutoFilterRow As Boolean

    Property AutoOpenLastFile As Boolean

    Property AutoActivateTableRelatedWindows As Boolean

    Property AutoArrangeWindows As Boolean

    Property AutoHideTaskbarMdiWindows As Boolean

    Property TaskPaneDockPosition As Int32

    Property CellEditorTop As Int32

    Property CellEditorLeft As Int32

    Property CellEditorHeight As Int32

    Property CellEditorWidth As Int32

    Property CellEditorFontSize As Single

    Property CellEditorFontName As String

    Property ListEditorTop As Int32

    Property ListEditorLeft As Int32

    Property ListEditorHeight As Int32

    Property ListEditorWidth As Int32

    Property ListEditorFontSize As Single

    Property ListEditorFontName As String

End Interface

Интерфейс IAddInUtilities

Интерфейс IAddInUtilities определяет методы, реализуемые плагином SaveToDB.

Вы можете использовать эти свойства из макросов VBA и плагинов VSTO.

<ComVisible(True), Guid("CF0170F1-310E-421F-87DF-C177753EEDD5")>
Public Interface IAddInUtilities

    ' Last Error Message

    ReadOnly Property LastResultMessage As String

    ' Options

    ReadOnly Property Options As IAddInOptions

    ' Ribbon

    Property FullRibbon() As Boolean

    Property RibbonTabVisible(Optional Workbook As Workbook = Nothing) As Boolean

    Function ActivateTab() As Boolean

    ' Execute

    Function ExecuteNonQuery(ConnectionString As String, CommandText As String) As Boolean

    Function ExecuteReader(ConnectionString As String, CommandText As String) As <MarshalAs(UnmanagedType.BStr)> System.Array

    Function RunCmd(Command As String) As Boolean

    ' Insert ListObject

    Function InsertConnectedListObject(TargetRange As Range, ConnectionString As String, QueryObject As String, ObjectType As String) As Boolean

    ' Save

    Function Save(Optional ListObject As ListObject = Nothing) As Boolean

    Function SavePivotTable(PivotTable As PivotTable) As Boolean

    Function SaveByMerge(Optional ListObject As ListObject = Nothing) As Boolean

    Function GetSaveSQL(Optional ListObject As ListObject = Nothing) As String

    Function GetSaveByMergeSQL(Optional ListObject As ListObject = Nothing) As String

    Function SaveByMergeDirect(ListObject As ListObject, ConnectionString As String, QueryObject As String, ObjectType As String) As Boolean

    Function GetSaveByMergeDirectSQL(ListObject As ListObject, ConnectionString As String, QueryObject As String, ObjectType As String) As String

    Function SaveAllSheetTables(Optional Worksheet As Worksheet = Nothing) As Boolean

    Function SaveAllWorkbookTables(Optional Workbook As Workbook = Nothing, Optional UseWizard As Boolean = True) As Boolean

    ' Load

    Function Load(Optional ListObject As ListObject = Nothing,
        Optional ReloadMetadata As Boolean = False, Optional IgnoreChanges As Boolean = False) As Boolean

    Function LoadPivotTable(PivotTable As PivotTable,
        Optional ReloadMetadata As Boolean = False, Optional IgnoreChanges As Boolean = False) As Boolean

    Function LoadAllSheetTables(Optional Worksheet As Worksheet = Nothing,
        Optional ReloadMetadata As Boolean = False, Optional IgnoreChanges As Boolean = False) As Boolean

    Function LoadAllWorkbookTables(Optional Workbook As Workbook = Nothing,
        Optional ReloadMetadata As Boolean = False, Optional IgnoreChanges As Boolean = False, Optional UseWizard As Boolean = True) As Boolean

    Function RebuildCommandTextFromNamedCells(Optional Worksheet As Worksheet = Nothing) As Boolean

    Function ReloadQueryList(Optional ListObject As ListObject = Nothing) As Boolean

    ' Connection Strings

    Property ExcelConnectionString(Optional ListObject As ListObject = Nothing) As String

    Property ConnectionString(Optional ListObject As ListObject = Nothing) As String

    Property PivotTableExcelConnectionString(Optional PivotTable As PivotTable = Nothing) As String

    Property PivotTableConnectionString(Optional PivotTable As PivotTable = Nothing) As String

    ' Connection String Properties

    Property ProviderName(Optional ListObject As ListObject = Nothing) As String

    Property PivotTableProviderName(Optional PivotTable As PivotTable = Nothing) As String

    ReadOnly Property ConnectionStringIntegratedSecurity(Optional ListObject As ListObject = Nothing) As Boolean

    Property ConnectionStringUserName(Optional ListObject As ListObject = Nothing) As String

    Property ConnectionStringPassword(Optional ListObject As ListObject = Nothing) As String

    ReadOnly Property PivotTableConnectionStringIntegratedSecurity(Optional PivotTable As PivotTable = Nothing) As Boolean

    Property PivotTableConnectionStringUserName(Optional PivotTable As PivotTable = Nothing) As String

    Property PivotTableConnectionStringPassword(Optional PivotTable As PivotTable = Nothing) As String

    ' Protecting Passwords and Usernames

    Function HideConnectionStringPassword(Optional ListObject As ListObject = Nothing) As Boolean

    Function HidePivotTableConnectionStringPassword(Optional PivotTable As PivotTable = Nothing) As Boolean

    Function SetConnectionStringPassword(Password As String, Optional ListObject As ListObject = Nothing) As Boolean

    Function SetPivotTableConnectionStringPassword(Password As String, Optional PivotTable As PivotTable = Nothing) As Boolean

    Function HideConnectionStringUserNameAndPassword(Optional ListObject As ListObject = Nothing) As Boolean

    Function HidePivotTableConnectionStringUserNameAndPassword(Optional PivotTable As PivotTable = Nothing) As Boolean

    Function SetConnectionStringUserNameAndPassword(UserName As String, Password As String, Optional ListObject As ListObject = Nothing, Optional ChangeIntegratedSecurity As Boolean = False) As Boolean

    Function SetPivotTableConnectionStringUserNameAndPassword(UserName As String, Password As String, Optional PivotTable As PivotTable = Nothing, Optional ChangeIntegratedSecurity As Boolean = False) As Boolean

    ' Protecting Passwords and Usernames at Worksheet and Workbook Levels

    Function HideWorksheetConnectionStringPasswords(Optional Worksheet As Worksheet = Nothing, Optional ChangeIntegratedSecurity As Boolean = False) As Boolean

    Function HideWorkbookConnectionStringPasswords(Optional Workbook As Workbook = Nothing, Optional ChangeIntegratedSecurity As Boolean = False) As Boolean

    Function HideWorksheetConnectionStringUserNamesAndPasswords(Optional Worksheet As Worksheet = Nothing, Optional ChangeIntegratedSecurity As Boolean = False) As Boolean

    Function HideWorkbookConnectionStringUserNamesAndPasswords(Optional Workbook As Workbook = Nothing, Optional ChangeIntegratedSecurity As Boolean = False) As Boolean

    Function SetWorksheetConnectionStringPasswords(Password As String, Optional Worksheet As Worksheet = Nothing) As Boolean

    Function SetWorkbookConnectionStringPasswords(Password As String, Optional Workbook As Workbook = Nothing) As Boolean

    Function SetWorksheetConnectionStringUserNamesAndPasswords(UserName As String, Password As String, Optional Worksheet As Worksheet = Nothing, Optional ChangeIntegratedSecurity As Boolean = False) As Boolean

    Function SetWorkbookConnectionStringUserNamesAndPasswords(UserName As String, Password As String, Optional Workbook As Workbook = Nothing, Optional ChangeIntegratedSecurity As Boolean = False) As Boolean

    ' Protecting Workbook Connections

    Function HideWorkbookConnectionPasswords(Optional Workbook As Workbook = Nothing) As Boolean

    Function HideWorkbookConnectionUserNamesAndPasswords(Optional Workbook As Workbook = Nothing) As Boolean

    Function SetWorkbookConnectionPasswords(Password As String, Optional Workbook As Workbook = Nothing) As Boolean

    Function SetWorkbookConnectionUserNamesAndPasswords(UserName As String, Password As String, Optional Workbook As Workbook = Nothing) As Boolean

    ' CommandText and QueryList

    Property CommandText(ListObject As ListObject) As String

    Property QueryObject(ListObject As ListObject) As String

    Property QueryList(ListObject As ListObject) As String

    Property QueryLocked(ListObject As ListObject) As Boolean

    Function GetQueryListItems(ListObject As ListObject) As <MarshalAs(UnmanagedType.BStr)> System.Array

    ' Fields and Parameters

    Function GetFields(ListObject As ListObject) As <MarshalAs(UnmanagedType.BStr)> System.Array

    Function GetParameters(ListObject As ListObject) As <MarshalAs(UnmanagedType.BStr)> System.Array

    Property IsRibbonField(ListObject As ListObject, FieldName As String) As Boolean

    Function HasParameter(ListObject As ListObject, ParameterName As String) As Boolean

    Property ParameterValue(ListObject As ListObject, ParameterName As String) As Object

    Property ParameterRibbonValue(ListObject As ListObject, ParameterName As String) As String

    ' Cursors

    Function AddTableCursor(Optional ListObject As ListObject = Nothing) As Boolean

    Function RemoveTableCursor(Optional ListObject As ListObject = Nothing) As Boolean

    Function DeleteTableCursor(Optional ListObject As ListObject = Nothing) As Boolean

    Function DeleteAllTableCursors(Optional Workbook As Workbook = Nothing) As Boolean

    Function MoveNext(Optional ListObject As ListObject = Nothing) As Boolean
    Function MoveToNext(Optional ListObject As ListObject = Nothing) As Boolean

    Function MovePrevious(Optional ListObject As ListObject = Nothing) As Boolean
    Function MoveToPrevious(Optional ListObject As ListObject = Nothing) As Boolean

    Function MoveFirst(Optional ListObject As ListObject = Nothing) As Boolean
    Function MoveToFirst(Optional ListObject As ListObject = Nothing) As Boolean

    Function MoveLast(Optional ListObject As ListObject = Nothing) As Boolean
    Function MoveToLast(Optional ListObject As ListObject = Nothing) As Boolean

    ' Form Fields

    Function AddFormFields(ListObject As ListObject, TopLeftCell As Range) As Boolean

    Function RemoveFormFields(ListObject As ListObject) As Boolean

    Function GetFormFieldCellName(ListObject As ListObject, ColumnName As String) As String

    ' Add-In Worksheets

    Function InsertAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function RemoveAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function DeleteAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function ShowAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function HideAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    Function CleanAddInSheets(Optional Workbook As Workbook = Nothing) As Boolean

    ' Table Views

    Function ApplyTableView(ListObject As ListObject, name As String) As Boolean

    Function SaveTableView(ListObject As ListObject, name As String) As Boolean

    Function DeleteTableView(ListObject As ListObject, name As String) As Boolean

    Function DeleteTableViews(ListObject As ListObject) As Boolean

    Function DeleteAllTableViews(Workbook As Workbook) As Boolean

    Function GetTableViews(ListObject As ListObject) As <MarshalAs(UnmanagedType.BStr)> System.Array

    Function CopyAndInsertRows(Optional Range As Range = Nothing) As Boolean

End Interface

Интерфейс IAddInOptions

Интерфейс IAddInOptions определяет свойства плагина SaveToDB.

Вы можете использовать эти свойства из макросов VBA и плагинов VSTO.

<ComVisible(True), Guid("CF0170F1-310E-421F-87DF-C177753EEDD9")>
Public Interface IAddInOptions

    ' Common Options

    Property DisplayLanguage As String

    Property DefaultDataLanguage As String

    Property WorkbookDataLanguage(Optional Workbook As Workbook = Nothing) As String

    Property EncryptPasswordsByDefault As Boolean

    Property EncryptWorkbookPasswords(Optional Workbook As Workbook = Nothing) As Boolean?

    Property ConnectionTimeout As Int32

    Property CommandTimeout As Int32

    Property GenerateSingleLineSQL As Boolean

    ' Excel Options

    Property ShowUrlMenu As Boolean

    Property ShowContextMenu As Boolean

    Property AutoActivateTableRelatedWindows As Boolean

    Property AutoArrangeWindows As Boolean

    Property AutoHideTaskbarMdiWindows As Boolean

    Property ShowDoubleClickCalendar As Boolean

    Property ShowDoubleClickPivot As Boolean

    Property AutoFilterRow As Boolean

    Property AutoOpenLastFile As Boolean

    Property AutoCleanBadNamedCells As Boolean

    ' Ribbon Options

    Property HideAdvancedMenuItems As Boolean

    Property ShowGroupAtDataTab As Boolean

    Property ShowGroupAtViewTab As Boolean

    Property ShowGroupAtDesignTab As Boolean

    Property ParameterHistoryLimit As Int32

    ' Options Menu

    Property ShowCellEditor As Boolean

    Property ShowListEditor As Boolean

    ' Special Options

    Property TemplatePath As String

    Property ShowToolsMenu As Boolean?

    ' TaskPanes

    Property TaskPaneDockPosition As Int32

    ' Cell Editor

    Property CellEditorDockPosition As Int32

    Property CellEditorTop As Int32

    Property CellEditorLeft As Int32

    Property CellEditorHeight As Int32

    Property CellEditorWidth As Int32

    Property CellEditorDockHeight As Int32

    Property CellEditorDockWidth As Int32

    Property CellEditorFontSize As Single

    Property CellEditorFontName As String

    ' List Editor

    Property ListEditorDockPosition As Int32

    Property ListEditorTop As Int32

    Property ListEditorLeft As Int32

    Property ListEditorHeight As Int32

    Property ListEditorWidth As Int32

    Property ListEditorDockHeight As Int32

    Property ListEditorDockWidth As Int32

    Property ListEditorFontSize As Single

    Property ListEditorFontName As String

End Interface