Мир объектов Excel 2000


Свойства и методы объекта PivotCache


У объекта PivotCache 23 свойства. Большинство из них я рассмотрю:

  • Connection - позволяет задать соединение с источником данных. Возвращает или устанавливает строку, имеющую разный синтаксис в зависимости от типа источника данных. Строка может задавать:
  • OLE DB установки для связи Excel с OLE DB источниками данных,
  • ODBC установки для связи Excel с ODBC источниками данных,
  • URL, когда Excel связывается с данными Web-страниц,
  • Полный путь, задающий текстовый файл или файл, задающий Web-запрос или базу данных.

Строка начинается специальным ключевым словом, указывающим тип источника данных. В зависимости от варианта префикс, начинающий строку соединения, имеет вид - OLEDB; ODBC; URL; TEXT. Префикс заканчивается символом ";" (точка с запятой). В остальном, строка удовлетворяет требованиям, предъявляемым к строке соединения при работе с ADO. Вот пример задания свойства Connection для соединения с базой данных Access с использованием провайдера Microsoft Jet:

ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal).Connection = _ "OLEDB; Provider=Microsoft.jet.oledb.4.0;" & _ "Data Source=c:\!O2000\DSCD\Ch18\dbPP2000.mdb"

Установка значения для свойства Connection не означает непосредственного соединения с источником данных. Необходимо вызывать метод Refresh, чтобы такая связь была в действительности установлена.

  • LocalConnection, UseLocalConnection - эти два свойства используются при работе с сохраненными в отдельном файле OLAP кубами. Когда в качестве источника данных используется OLAP куб, то вместо задания свойства Connection следует использовать свойство LocalConnection, предварительно установив значение True для свойства UseLocalConnection.
  • CommandType, CommandText - два хорошо знакомых по ADO свойства. Первое из них определяет тип команды, а второе значение команды, выполняющей запрос к источнику данных. Первое свойство может иметь четыре значения, заданное константами: xlCmdCube, xlCmdDefault, xlCmdSQL, xlCmdTable. В зависимости от установленного значения свойство CommandText задает:
    • Имя куба для OLAP кубов,
    • Текст команды, учитывающий специфику и требования провайдера,
    • Текст SQL-запроса,
    • Имя таблицы.
    • MemoryUsed As Long - свойство имеет статус "только для чтения", возвращает количество байтов памяти занятой в текущий момент под кэш. Если объект PivotTable не присоединен к объекту PivotCache, то возвращается значение 0.
    • OptimizeCache - булево свойство, при установке значения True, кэш будет оптимизироваться при его конструировании. Для OLE DB источников данных свойство имеет статус "только для чтения" и имеет значение по умолчанию - False.
    • QueryType - свойство имеет статус "только для чтения", возвращает константу типа xlQueryType, которая определяет тип запроса, используемого Excel для заполнения кэша.
    • Recordset - очень важное и полезное свойство при программной работе со сводными таблицами. Оно позволяет вернуть или установить хорошо знакомый объект Recordset, задающий набор записей, используемый при построении кэша. Тем самым появляется возможность программного создания и наполнения данными объекта PivotCache. Связь с источником данных можно организовать средствами ADO и получить объект Recordset. После чего остается только установить свойство объекта PivotCache. Зачастую, это более эффективный способ работы с источником данных. Пример такого способа работы будет приведен.
    • RecordCount - как обычно, задает число записей в наборе Recordset.
    • RefreshDate, RefreshName, RefreshOnFileOpen, RefreshPeriod - свойства, задающие различную информацию, связанную с обновлением данных.

    • Рассмотрим теперь методы объекта PivotCache. Их немного - всего три:
      • Function CreatePivotTable(TableDestination, [TableName], [ReadData]) As PivotTable. Этот метод (функция) создает объект PivotTable, основанный на данном кэше - объекте PivotCache. Это основной способ создания и появления объектов PivotTable.
      • Аргумент TableDestination представляет объект Range, задающий область построения сводной таблицы. Аргумент задает ячейку в левом верхнем углу этой области. Напомню, что объект PivotTable связан с определенным листом рабочей книги, поэтому аргумент должен определять и нужный рабочий лист, в противном случае будет выбран активный лист рабочей книги.
      • Аргумент TableName задает имя сводной таблицы - имя объекта PivotTable, которым можно пользоваться при работе с коллекцией PivotTables.
      • Булев аргумент ReadData позволяет установить способ чтения записей в кэш. Он имеет значение True, если в кэш читаются все записи.
    • Sub Refresh(). Обновляет кэш текущим состоянием источника данных.
    • Sub ResetTimer(). Восстанавливает значение таймера. Это может быть важно, когда используется свойство RefreshPeriod, задающее период времени между последующими обновлениями источника данных.

    • На этом я закончу рассмотрение свойств и методов объекта PivotCache. Примеры создания этого объекта приведу чуть позже, после рассмотрения объекта PivotTable, поскольку создавать эти объекты, тесно связанные между собой, следует в одной процедуре.

      Содержание раздела