Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Васильев А. -> "VBA в Office 2000 учебный курс" -> 119

VBA в Office 2000 учебный курс - Васильев А.

Васильев А., Андреев А. VBA в Office 2000 учебный курс — Спб.: Питер, 2001. — 432 c.
ISBN 5-8046-0193-8
Скачать (прямая ссылка): vbauchebniykurs2001.djvu
Предыдущая << 1 .. 113 114 115 116 117 118 < 119 > 120 121 122 123 124 125 .. 154 >> Следующая

2. Библиотеку объектов соответствующего приложения. В случае MS Excel это будет библиотека Microsoft Excel 9.0 Object Library.
Примеры
В качестве примеров интеграции приложений MS Office рассмотрим организацию взаимодействия между парами следующих приложений:
О MS Access и MS Excel
О MS Access и MS Words
О MS Excel и MS PowerPoint
Интеграция других приложений осуществляется аналогичным образом.
Пример взаимодействия между MS Access и MS Excel
Рассмотрим сначала пример взаимодействия между MS Access и MS Excel. Используя автоматизацию, можно выполнить, например, следующую группу операций по обработке информации:
----------............-
CJYWlMlSYSTEMteifcioZrb
lencuige; Starrtsni
... .i .......-Л
V Visual Basic For Applications |Й№го5о?^огс^ХО^сШЬга17
§? T emplateProject Щ Microsoft Office 9.0 Object Library Li Microsoft Forms 2.0 Object Library
О Normal G T emplateProject У Active Setup Control Library J ActiveMovie control type library J ActiveX Conference Control J ASFChop 1.0 Type Library ? BldWizMg 1.0 Type Library
'ЭсИмйШааиьшЙяи_______________________
Refeiences «¦ Project
320
Урок 12. Интегрирование приложений Microsoft Office 2000 с помощью VBA
1. Сначала передать данные из MS Access в MS Excel.
2. Затем провести их анализ, используя, например, встроенные возможности Excel по статистической обработке данных, которые отсутствуют в MS Access.
3. Передать результаты обработки обратно в MS Access.
Рассмотрим более подробно первый шаг приведенного алгоритма. При его реализации в качестве входных данных для MS Excel необходимо использовать таблицу MS Access. Результатом его выполнения будет создание рабочего листа MS Excel. В данном случае MS Excel автоматизации становится сервером, a MS Access — клиентом. .
В качестве примера создадим лист MS Excel, заполненный данными из таблицы Товары. В нашем примере таблица содержит данные, приведенные в табл. 12.5.
Таблица 12.5. Содержимое таблицы Товары
Код товора Категория Наименование Цена
1 2 Quattro 330 900
2 2 Toshiba 6200 3200
3 2 Lucky Pro 450 2200
4 3 Delphi 5 180
5 3 Borlond C++ ? 250
6 3 Microsoft Office Pro 97 195
7 3 Froctal Design 5.5 395
8 1 «Delphi 5 в подлиннике» 25
9 1 «C++ Builder 3 без проблем» 30
11 2 Sateilite_330 R 1200
12 2 Mistral 1B00
13 2 Satellite_450 1800
14 2 Satellite_450 R 2000
15 3 Microsoft Office 2000 300
16 1 Примерный товар 1000
Ниже приведен текст примера, в котором реализовано взаимодействие программ MS Excel и MS Access.
Процедура, выполняющая экспорт данных из MS Access в рабочий лист MS Excel
Sub ExampО
'Объявляем объектные переменные для ссылок на соответствующие объекты
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rstToeapbi As New ADODB.Recordset
Dim xlApp As Object
Dim xlSheet As Object
'Переменная Row задает номер строки
Dim Row As.Integer
'Переменная Row задает номер столбца
Dim Column As Integer
Примеры
321
'Открываем соединение с источником данных conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;"
& "Data Source=c:\Other\Special\Work\SALESl.MDB;"
& "Persist Security Info=False"
‘Задаем команду, создающую набор 'записей на основе данных из таблицы товары Set cmd.ActiveConnection = conn cmd.CommandText = "SELECT * from Товары”
^ rstToeapbi.CursorLocation = adUseClient 'Открываем набор записей
rstToeapti.Open cmd, , adOpenStatic. adLockBatchOptimistic 'Создаем объект Excel.Sheet и присваиваем объектной 'переменной xlSheet ссылку на него Set xlSheet = CreateObjectC"Excel.Sheet")
'присваиваем объектной переменной xIApp ссылку на объект 'Excel.Application Set xIApp = xlSheet.Parent.Parent 'Метод MoveFirst объекта RecordSet используется для ‘перехода на первую запись набора записей rstToB ары.MoveFi rst Row = 1
‘Свойство EOF примет значение True ‘после перебора всех записей Do Until rstToeapbi.EOF
For Column = 1 To rstToBapu.Fields.Count
If (Not I sNulKrstToeapbi. Fields (Column - 1))) Then xIApp.ActiveSheet.Cells(Row, Column).Value = _ CStr(rstToBapbi.Fields(Column - 1))
End If Next Column
‘Метод MoveNext объекта RecordSet используется для ‘перехода на следующую запись набора записей rstToeapbi. MoveNext Row = Row + 1
Loop
‘Задание некоторых свойств столбцов рабочего листа MS Excel For Column = 1 To xIApp.ActiveSheet.Columns.Count
xlSheet.ActiveSheet.Columns(Column).Font.Size = 10 xlSheet.Acti veSheet.Columns(Column).AutoFi t Next Column
‘Метод SaveAs позволяет сохранить документ xlSheet.SaveAs ("С:\Мои документы\Товары.х15") xIApp. Quit xlSheet = Nothing End Sub
Прокомментируем некоторые блоки приведенной программы:
О В данной процедуре для организации цикла, реализующего перебор всех записей таблицы Товары, используется инструкция Do Until...Loop. В этом цикле выполняется построчное заполнение ячеек листа MS Excel соответствующими значениями из таблицы Товары.
О Цикл For...Next используется для задания некоторых свойств листа.
11 Зах. 69
322
Урок 12. Интегрирование приложений Microsoft Office 2000 с помощью VBA
Содержимое рабочей книги MS Excel, являющееся результатом выполнения данной процедуры, представленной на рис. 12.2
Предыдущая << 1 .. 113 114 115 116 117 118 < 119 > 120 121 122 123 124 125 .. 154 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100