- •17. Программирование с объектами dao. Создание базы данных. Пример (фрагмент).
- •18. Программирование с объектами dao. Связывание таблиц. Связывание таблиц внешних баз данных. Пример (фрагмент).
- •21. Программирование с объектами dao. Создание переменной RecordSet. Перемещение по набору записей. Пример (фрагмент).
- •22.Программирование с объектами dao. Работа с полями объекта RecordSet. Создание запросов.
- •16.Объектая модель dao. Объекты dbEngine, Workspace, Database, TableDef, QueryDef, RecordSet, Container, Relation, Document, Field, Index, Error, Parametr. Пример (фрагмент).
- •1 Вопрос.
- •2 Вопрос.
- •3 Вопрос.
- •4 Вопрос.
- •Динамический обмен данными dde. Свойства dde. Пример (фрагмент).
- •Свойство LinkMode
- •Свойство LinkTopic
- •Свойство Linkltem
- •Свойство LinkTimeout
- •25.Динамический обмен данными dde. События dde. Пример (фрагмент).
- •Метод LinkRequest
- •Метод LinkPoke
- •Метод LinkExecute
- •26. Динамический обмен данными dde. Методы dde. Пример (фрагмент).
- •Событие LinkNotify
- •Событие LinkError
-
Динамический обмен данными dde. Свойства dde. Пример (фрагмент).
DDE дает возможность перейти через рамки приложения и взаимодействовать с другими приложениями и системами Windows.
Dynamic Data Exchange (динамическое управление данными) получило свое имя потому, что позволяет двум приложениям обмениваться данными (текстовыми, через глобальную память) динамически во время выполнения. Связь между двумя программами можно установить таким образом, что изменения в одном приложении будут отражаться во втором. Например, если Вы меняете число в электронной таблице, то во втором приложении данные обновятся автоматически и отобразят изменения. Кроме того, с помощью DDE можно из своего приложения управлять другими приложениями такими, как Word for Windows, Report Smith, Excel и др.
Свойства:
-
Свойство LinkMode
Свойство LinkMode определяет вид связи, а также способ обновления
(актуализации) данных в приложении3приемнике.
control.LinkMod* = Значение
Имена констант и значения свойства LinkMode
Константа Значение Описание
vbLinkNone 0 DDE3связи нет (по умолчанию)
vbLinkAutomatic 1 Автоматическое изменение данных приемника при
изменении данных источника
vbLinkManual 2 Данные изменяются только при вызове метода Li kR t
vbLinkNotify 3 При изменении данных генерируется событие LinkNotify,
но данные приемника модифицируются только после
вызова метода LinkRequest
-
Свойство LinkTopic
Для создания связи необходимо указать источник данных. При этом следует соблюдать следующий синтаксис идентификации источника данных:
Application | Topic!Item
где Application — это имя программы, являющейся источником данных. Обычно
это имя ЕХЕ-файла без расширения.
Topic — это некий объект приложения (например, форма в Visual Basic или таблица в Microsoft Excel).
Item — это конкретный элемент объекта Topi'c (элемент управления, ячейка таблицы и пр.),который может служить источником информации.
Application и Topic разделяются вертикальнрй чертой, a Item и Topic —восклицательным знаком.
При работе с электронной таблицей Application — это имя программы обработки электронных таблиц (например, Excel), Topic — имя файла (например, MAP.XLS), содержащего таблицу, a Item — одна или несколько ячеек (например, R1C1).
-
Свойство Linkltem
С помощью свойства Linkltem задается место внутри документа, которое служит источником данных. Оно указывается в собственном свойстве, так как его можно изменять без прерывания DDE-связи.
control.Linkltem = "name"
Textl.Linkltem = "R1C1"
Создание связи с Word для Windows может выглядеть следующим образом:
Textl.LinkMode = vbLinkNone
Textl.LinkTopic = "winwordI new.doc"
Textl.Linklteni = "\doc"
Textl.LinkMode = vbLinkAutomatic
В Word для Windows присвоение item значения "\doc" указывает, что при
организации связи используется все содержимое файла, в данном случае
NEW.DOC
Для создания DDE-связи во время выполнения приложения опять "вступает
в игру" буфер обмена. Например, в процедуре реализации команды меню
создания связи вашего приложения следует считать информацию исходного
приложения из буфера обмена.
Private Sub mnuInsertLink_Click()
sLinkInfo = Clipboard.GetText(vbCFLink)
iPos = InStr(sLinkInfo, "!")
Textl.LinkMode = vbLinkNode
Textl.LinkTopic = Left(sLinkInfo, iPos 3 1)
Textl.Linkltem = Mid(sLinkInfo, iPos + 1)
Textl.LinkMode = vbLinkAutomatic End
Sub
В этом примере считывается информация из буфера обмена. Затем в ней
разыскивается позиция восклицательного знака, разделяющего LinkTopic и
Linkltem, и соответствующая часть информации о связи присваивается
свойствам.