
- •Государственное образовательное учреждение высшего профессионального образования
- •Часть 1
- •Введение. Технологии обмена данными
- •Тема 1. Динамический обмен данными (dde)
- •1.1 Принципы динамического обмена данными
- •Структура транзакций dde
- •1.2. Транзакции dde
- •1.3. Примеры и задачи: обмен данными между приложениями по протоколу dde
- •Использование функции dde
- •Передача данных из Excel в Access с помощью модуля Access
- •Взаимодействие Access и Word
- •Взаимодействие Access и Excel
- •Построение диаграммы с помощью инструкции ddeExecute
- •Тема 2. Буфер обмена данными
- •2.1 Буфер обмена данными в vb
- •2.2. Методы объекта Clipboar.
- •2.3. Примеры и задачи: программирование буфера обмена данными
- •Тема 3. Ole-технологии
- •3.1. Представление ole-данных
- •3.2. Элемент управления ole-контейнер
- •3.3. Объекты ole как элементы управления
1.3. Примеры и задачи: обмен данными между приложениями по протоколу dde
Использование функции dde
Задача. Отобразить данные из таблицы Excel на форме базы данных Access с помощью функции DDE.
Создать в Excel книгу с именем T.xls.
В ячейку А1 ввести текст «Город», а в ячейку А2- текст «Ростов-на-Дону».
Сохранить файл в корне диска С: и свернуть книгу.
Открыть новую базу данных, в которой создать форму с 2 полями, значения свойства <Данные> поля0 и поля1 установить соответственно: =DDE("Excel";"С:\T.xls";"R1C1") и =DDE("Excel";"С:\T.xls";"R2C1").
Открыть форму в режиме формы.
Просмотреть результат (рис.2)
Рис.2
Передача данных из Excel в Access с помощью модуля Access
Задача. Отобразить данные из таблицы Excel на форме базы данных Access, используя функцию DDERequest .
В Access создать форму с 2 полями:
Поле <Жилая площадь>, свойство <Данные> которого содержит строку: =Т();
Поле <Стоимость>, свойство <Данные> которого содержит строку: =Т1().
В MSAccess создать модуль с 2 функциями:
Function T() As String
Dim chanel As Long
chanel=DDEInitiate(“Excel”,”C:\T.xls”)
T=DDERequest(chanel, “R1C1”)
DDETerminate chanel
End Function
Function T1() As String
Dim chanel1 As Long
chanel1=DDEInitiate(“Excel”,”C:\T.xls”)
T1=DDERequest(chanel1, “R2C1”)
DDETerminate chanel1
End Function
Создать в Excel книгу с именем T.xls.
И ячейку А1 внести величину жилой площади- «28», а в ячейку А2- стоимость- «20.000».
Сохранить файл в корне диска С: и свернуть книгу.
Открыть форму в режиме формы.
Просмотреть результат (рис.3)
Рис.3
Взаимодействие Access и Word
Задача. С помощью макроса документа Word запросить данные о клиентах из базы Борей, вывести информацию в документ Word и в текстовый файл Данные.txt
Открыть Access и свернуть.
В Word создать макрос:
Sub TestDDE()
chanal1 = DDEInitiate("msaccess", "System")
DDEExecute chanal1, "[OpenDataBase C:\Program Files\Microsoft Office\Office10\Samples\Борей.mdb]"
chanal2 = DDEInitiate("msaccess", "Борей; Table Клиенты")
TableData$ = DDERequest(chanal2, "all") 'Считает все данные из таблицы "Клиенты" в переменную TableData$
DDETerminate chanal2
DDEExecute chanal1, "[CloseDataBase]"
DDETerminate chanal1
Selection.TypeText (TableData$) 'Вставит данные о клиентах в текущий документ Word
Open "C:\Данные.txt" For Append As #1
Print #1, TableData$ 'Запишет данные в текстовый файл
Close #1
End
Выполнить исходный макрос и просмотреть документ и текстовый файл на диске С:
Самостоятельные упражнения
Добавить в макрос печать и форматирование заголовка, предварительную чистку содержимого документа и активацию документа после исполнения файла (команды выделены курсивом)
Создать пользовательскую панель с кнопкой макроса.
Ниже приведен расширенный макрос для выполнения самостоятельного задания:
Selection.WholeStory 'Выделяет все содержимое документа
Selection.Delete Unit:=wdCharacter, Count:=1 'Удаляет содержимое документа
Selection.Style = ActiveDocument.Styles("Заголовок 1") 'Форматирует абзац стилем Заголовок1
Selection.TypeText ("Клиенты") 'Печатает заголовок
Selection.TypeParagraph 'Начинает новый абзац
{Исходный макрос}
ActiveDocument.Activate 'сделает активным окно документа