Поделиться через


Метод DataRecordsets.Add (Visio)

Добавляет объект DataRecordset в коллекцию DataRecordsets путем подключения и получения данных из источника данных OLEDB или ODBC.

Примечание.

Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.

Синтаксис

expression. Add (ConnectionIDOrString, CommandString, AddOptions, Name)

Выражение Переменная, представляющая объект DataRecordsets .

Параметры

Имя Обязательный или необязательный Тип данных Описание
ConnectionIDOrString Обязательный Variant Идентификатор существующего объекта DataConnection или строка подключения для указания нового подключения к источнику данных.
CommandString Обязательный String Строка запроса, указывающая таблицу базы данных или лист Excel, а также поля (столбцы) в таблице или листе, содержащие данные, которые требуется запрашивать.
AddOptions Обязательный Long Параметры, определяющие свойства добавляемого набора записей данных. Сочетание одного или нескольких перечисленных значений из VisDataRecordsetAddOptions. Дополнительные сведения см. в разделе "Комментарии".
Name Необязательно заполнять. String Назначает отображаемое имя добавляемого объекта DataRecordset .

Возвращаемое значение

DataRecordset

Замечания

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

Простой способ повторного использования существующего подключения к данным — передать значение свойства DataConnection существующего объекта DataRecordset для параметра ConnectionIDOrString. Используйте следующий синтаксис.

NewDataRecordset  = DataRecordsets.Add(ExistingDataRecordset .DataConnection.ID, CommandString, AddOptions, Name)

Если для параметра ConnectionIDOrString передается идентификатор существующего объекта DataConnection , который в настоящее время используется одним или несколькими другими наборами записей данных, все наборы данных становятся набором записей группы с транзакцией. Все наборы записей данных в группе обновляются при каждой операции обновления данных.

Параметр AddOptions может быть сочетанием одного или нескольких из следующих значений перечисления VisDataRecordsetAddOptions , объявленного в библиотеке типов Visio. Значение по умолчанию равно нулю (0), что указывает, что ни один из параметров не задан.

Константа Значение Описание
visDataRecordsetNoExternalDataUI 1 Запрещает отображение данных в новом наборе записей данных в окне Внешние данные .
visDataRecordsetNoRefreshUI 2 Запрещает отображение набора записей данных в диалоговом окне Обновление данных .
visDataRecordsetNoAdvConfig 4 Запрещает отображение набора записей данных в диалоговом окне Настройка обновления .
visDataRecordsetDelayQuery 8 Добавляет набор записей данных, но не выполняет запрос CommandString до следующего вызова метода Refresh .
visDataRecordsetDontCopyLinks 16 Добавляет набор записей данных, но при копировании или вырезания фигур в буфер обмена связи с данными фигур не копируются.

После назначения этих значений их нельзя изменить в течение срока жизни объекта DataRecordset .

Параметр Name — это необязательная строка, которая позволяет назначить набору записей данных отображаемое имя. Если указать, что окно Внешние данные будет отображаться в пользовательском интерфейсе Visio, имя, передаваемое для этого аргумента, появится на вкладке окна Внешние данные , соответствующего добавленным набору записей данных.

Если метод Add завершается успешно, он выполняет следующие действия:

  • Создает объект DataRecordset и присваивает ему имя, указанное в параметре Name. Если не указать имя, Visio присваивает набору записей данных имя таблицы базы данных, которая является источником данных.

  • Связывает новый или существующий объект DataConnection с объектом DataRecordset .

  • Открывает окно Внешние данные в пользовательском интерфейсе Visio, если не задан параметр visDataRecordsetNoExternalDataUI .

Если вы не передаете visDataRecordsetDelayQuery как часть параметра AddOptions, метод Add также выполняет следующие действия:

  • Выполняет строку запроса, указанную в параметре CommandString, и извлекает полученные данные.

  • Сопоставляет типы данных столбцов источника данных с эквивалентными типами данных Visio, фильтруя результаты, чтобы удалить столбцы источника данных, которые не могут быть связаны с фигурами Visio, так как они не имеют эквивалентного типа данных Visio. В частности, нельзя импортировать двоичные данные или типы эзотерических данных, такие как UserDefined, Chapter и IDispatch.

  • Назначает идентификатор строки каждой строке в наборе записей данных. Дополнительные сведения об идентификаторах строк см. в разделе DataRecordset.GetDataRowIDs .

Примечание.

Метод Add завершается сбоем и возвращает исключение, если возникают ошибки сетевого подключения, время ожидания сети или ошибки разрешений базы данных. Если задан параметр visDataRecordsetDelayQuery , при тех же обстоятельствах add может успешно добавить новый набор записей данных, но обновление может завершиться ошибкой.

Пример

В следующем макросе Microsoft Visual Basic для приложений (VBA) показано, как можно использовать метод Add для подключения документа Visio к данным в ORGDATA.XLS, книге Microsoft Office Excel, установленной в папке C:\Program Files\Microsoft Office\OFFICE12\SAMPLES\1033\ при установке Visio по пути к файлу по умолчанию.

В этом примере нет подключения к данным, поэтому для первого параметра метода Add мы передаем строку подключения strConnection . Для второго параметра мы передадим strCommand , командную строку, которая направляет Visio на выбор всех столбцов из указанного листа. Для третьего параметра метода Add мы передаём ноль, чтобы указать поведение набора записей данных по умолчанию, а для последнего параметра — "Данные организации" , отображаемое имя, которое необходимо присвоить набору записей данных.

Public Sub AddDataRecordset_Example() 
 
    Dim strConnection As String 
    Dim strCommand As String 
    Dim strOfficePath As String 
    Dim vsoDataRecordset As Visio.DataRecordset 
 
    strOfficePath = Visio.Application.Path     
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _ 
                       & "User ID=Admin;" _ 
                       & "Data Source=" + strOfficePath + "SAMPLES\1033\ORGDATA.XLS;" _ 
                       & "Mode=Read;" _ 
                       & "Extended Properties=""HDR=YES;IMEX=1;MaxScanRows=0;Excel 12.0;"";" _ 
                       & "Jet OLEDB:Engine Type=34;" 
 
    strCommand = "SELECT * FROM [Sheet1$]" 
 
    Set vsoDataRecordset = ActiveDocument.DataRecordsets.Add(strConnection, strCommand, 0, "Org Data") 
 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.