Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 43
Текст из файла (страница 43)
Аналогично в настройках MicrosoftAccess можно указать игнорирование запросов на открытие сеансов из других приложений, т.е. надо выбрать в меню Сервис команду Параметры и вкладку Другие, а в группе Операции DDEустановить флажок Пропуск команд DDE.Совет. Чтобы работать с объектами другого приложения из MicrosoftAccess, следует использовать механизм программирования объектов.В табл. П2.15 показано использование функции DDE с разными элементами управления.220Т а б л и ц а П2.15Использование функции DDE с разными элементами управленияЭлемент управленияОписаниеПолеАргумент раздел может представлять собой текстили числа.
Если он представляет несколько элементов данных (например, имя диапазона, содержащего несколько ячеек электронной таблицыMicrosoft Excel), то функция DDE возвращает содержимое первого элемента. Функция DDE позволяет также вывести в поле содержимое ячейкиэлектронной таблицыПоле со спискомФункция DDE заполняет список данными, указанными в аргументе раздел. Не допускается вводэтих данных в поле.Функция DDE позволяет также вывести в поле со списком список значений,сохраняемых в электронной таблице MicrosoftExcelГруппа параметровСвойство Значение параметра (OptionValue) каждого из переключателей в группе имеет числовоезначение.
Обычно первый переключатель имеетзначение 1, второй — значение 2 и т. д.Числовоезначение, возвращаемое функцией DDE, определяет, какой из переключателей будет выбран.Например, если функция DDE возвращает значение 2, — это значит, что будет включен второйпереключатель; если же функция DDE возвращаетзначение, не соответствующее ни одному изсвойств Значение параметра (OptionValue), — небудет выбран ни один из переключателей.
Еслиаргумент раздел представляет собой несколькоэлементов данных (например, имя диапазона, содержащего несколько ячеек электронной таблицыMicrosoft Excel), то функция DDE возвращает содержимое первого элементаФлажокЕсли функция DDE возвращает 0, флажок будетснят. Если функция DDE возвращает любое ненулевое значение (например, 1 или -1), флажокбудет установлен. Если аргумент раздел представляет собой несколько элементов данных (например, имя диапазона, содержащего несколько ячеек электронной таблицы Microsoft Excel), состояние флажка становится неопределенным221DDEInitiate.
Позволяет открыть сеанс динамического обменаданными (DDE) с другим приложением и открывает канал связиDDE, обеспечивающий передачу данных между сервером DDE иприложением-клиентом.Например, для передачи данных из электронной таблицыMicrosoft Excel в базу данных Microsoft Access следует открыть канал связи между двумя приложениями с помощью функцииDDEInitiate. В этом случае Microsoft Access будет выполнять рольприложения-клиента, a Excel — приложения-сервера.Синтаксис:DDEInitiate(npiuK»KeHHe, документ)Функция DDEInitiate использует аргументы, приведенные втабл.
П2.16.Т а б л и ц а П2.16Аргументы функции DDEInitiateАргументОписаниеприложение Строковое выражение, которое определяет приложение,участвующее в сеансе DDE. Обычно для приложений,работающих в среде Microsoft Windows (например,Microsoft Excel), аргумент приложение задает имя файла.ехе (без расширения .ехе)документСтроковое выражение, содержащее имя документа, принимаемое приложением. За списком поддерживаемыхприложением имен документов следует обращаться кдокументации данного приложенияПри успешном выполнении функция DDEInitiate открываетсеанс связи DDE с указанными приложением и документом ивозвращает значение типа Long.
Данное значение представляетсобой уникальный номер, определяющий канал, по которому будет проводиться обмен данными. Этот номер канала будет использоваться в аргументах других функций и инструкций DDE.Если приложение еще не запущено, а также если запущенноеприложение не принимает аргумент документ или не поддерживает протокол DDE, функция DDEInitiate возвращает ошибку привыполнении.Допустимые значения аргумента документ определяются приложением. В приложениях, использующих документы или файлыданных, допустимыми значениями данного аргумента обычноявляются имена этих файлов.Максимально возможное число одновременно открытых каналов определяется настройками Windows, а также системной памятью и ресурсами компьютера.
Если канал не используется, то222мни экономии ресурсов следует закрыть его с помощью инструкций DDETerminate или DDETerminateAll.DDERequest. Передает в приложение-сервер по открытому каналу динамического обмена данными (DDE) требование на прием данных из указанного раздела.Например, если открыт канал связи DDE между Microsoft Accessи Microsoft Excel, функция DDERequest позволяет передать текстиз электронной таблицы Microsoft Excel в базу данных MicrosoftAccess. В этом случае Microsoft Access будет выполнять роль приложения-клиента, a Excel — приложения-сервера.Синтаксис:DDERequest(Kanan, раздел)Функция DDERequest использует аргументы, приведенные втабл. П2.17.Т а б л и ц а П2.17Аргументы функции DDERequestАргументОписаниеканалНомер канала. Это целое значение, возвращаемое функцией ОВЕ1пШа1еразделСтроковое выражение, содержащее имя раздела данных,принимаемое приложением, определенным при вызовефункции ООЕ1пШа1е.За списком поддерживаемых приложением имен разделов данных следует обращаться кдокументации данного приложенияАргумент канал задает номер используемого канала связи DDE,а аргумент раздел определяет данные, загружаемые из приложения-сервера.
Допустимые значения аргумента раздел определяются именами приложения и документа, указанными при открытииканала. Например, разделом может быть диапазон ячеек электронной таблицы Microsoft Excel.При успешном выполнении функция DDERequest возвращаетзначение типа Variant в виде строки, содержащей затребованныеданные.Допускается прием данных только в обычном текстовом формате.
Прием рисунков или текста в другом формате не поддерживается.Аргумент канал должен представлять собой целое число, совпадающее с номером открытого канала. При указании другогозначения, а также при невозможности передачи затребованныхданных возникает ошибка при выполнении.223DBESend. Позволяет открыть сеанс динамического обмена данными (DDE) с другим приложением и передать в это приложение данные из элемента управления в форме или отчете.Например, функция DDESend вводится в ячейку свойства Данные (ControlSource) поля, чтобы передать данные из этого поля вячейку электронной таблицы Microsoft Excel.Синтаксис:ООЕ8епб(приложение, документ, раздел, данные)Функция DDESend использует аргументы, приведенные в табл.П2.18.Т а б л и ц а П2.18Аргументы функции DDESendАргументОписаниеприложение Строковое выражение, которое определяет приложение,участвующее в сеансе DDE.
Обычно для приложений,работающих в среде Microsoft Windows, аргумент приложение задает имя файла .ехе (без расширения .ехе).Например, для открытия канала связи DDE с MicrosoftExcel следует указать “Excel” в аргументе приложениедокументСтроковое выражение, содержащее имя документа, принимаемое приложением. В аргументе документ обычноуказывается документ или файл данных.
За списком поддерживаемых приложением имен документов следует обращаться к документации данного приложенияразделСтроковое выражение, содержащее имя раздела данных,принимаемое приложением. За списком поддерживаемыхприложением имен разделов данных следует обращатьсяк документации данного приложенияданныеСтрока или выражение, содержащие данные, передаваемые в приложениеПри вызове функции DDESend делается попытка открыть сеанс связи DDE с указанным приложением, передать соответствующее имя документа и указать раздел, который должен принятьданные.
Например, если аргумент приложение определяет MicrosoftExcel, документ может иметь вид “Лист1”, а раздел представлятьсобой идентификатор адреса ячейки (строки и столбца, например, “R1C1”) или имя диапазона ячеек.Аргумент данные определяет передаваемые данные и может содержать строку (например, “Отчет подготовил В. Сидоров”) иливыражение, включающее в себя функцию как часть результирующей строки (например, “Отчет подготовлен” & Date()).
Если в224аргументе раздел указывается несколько адресов элементов (например, имя диапазона ячеек электронной таблицы Microsoftl ixcel), функция DDESend передает данные в первый элемент.Приведем пример передачи функцией DDESend строки “Некий текст” в первую ячейку электронной таблицы Microsoft Excel.Д анное выраж ение может быть введено в ячей ку Данные(ControlSource) в окне свойств поля в следующем виде:=DDESend("Excel", "Лист1", "R1C1", "Некий текст")Предположим теперь, что требуется передать данные из присоединенного элемента управления, находящ егося в формеMicrosoft Access, в ячейку электронной таблицы Microsoft Excel.Если в свойстве Данные (ControlSource) связанного элемента управления уже указано имя поля или выражения, следует создатьеще одно поле или поле со списком, задать для него в свойствеДанные выражение, включающее в себя функцию DDESend, иуказать в аргументе данные имя связанного элемента управления.Например, если связанным является поле Фамилия, то в ячейку Данные второго поля следует ввести следующее выражение:=DDESend("Excel", "Лист1", "R1C1",[Фамилия])В качестве промежуточного элемента управления необходимоиспользовать поле или поле со списком.