Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование ИС.Часть1(DDE+буфер обмена+OLE)....doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
742.91 Кб
Скачать

1.3. Примеры и задачи: обмен данными между приложениями по протоколу dde

  1. Использование функции dde

Задача. Отобразить данные из таблицы Excel на форме базы данных Access с помощью функции DDE.

  • Создать в Excel книгу с именем T.xls.

  • В ячейку А1 ввести текст «Город», а в ячейку А2- текст «Ростов-на-Дону».

  • Сохранить файл в корне диска С: и свернуть книгу.

  • Открыть новую базу данных, в которой создать форму с 2 полями, значения свойства <Данные> поля0 и поля1 установить соответственно: =DDE("Excel";"С:\T.xls";"R1C1") и =DDE("Excel";"С:\T.xls";"R2C1").

  • Открыть форму в режиме формы.

  • Просмотреть результат (рис.2)

Рис.2

  1. Передача данных из 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

  1. Взаимодействие 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

  • Выполнить исходный макрос и просмотреть документ и текстовый файл на диске С:

Самостоятельные упражнения

  1. Добавить в макрос печать и форматирование заголовка, предварительную чистку содержимого документа и активацию документа после исполнения файла (команды выделены курсивом)

  2. Создать пользовательскую панель с кнопкой макроса.

Ниже приведен расширенный макрос для выполнения самостоятельного задания:

Selection.WholeStory 'Выделяет все содержимое документа

Selection.Delete Unit:=wdCharacter, Count:=1 'Удаляет содержимое документа

Selection.Style = ActiveDocument.Styles("Заголовок 1") 'Форматирует абзац стилем Заголовок1

Selection.TypeText ("Клиенты") 'Печатает заголовок

Selection.TypeParagraph 'Начинает новый абзац

{Исходный макрос}

ActiveDocument.Activate 'сделает активным окно документа