Access 2002

Функции с обратным вызовом


В большинстве случаев код вашей функции с обратным вызовом будет подобен тому, что приведен  6.8. Он не так сложен, как может показаться на первый взгляд, а после того, как вы напишете несколько таких функций, новую функцию легко будет получить всего лишь за счет копирования кода одной из готовых функций.

Использование функции с обратным вызовом

Хорошим примером использования функции с обратным вызовом является форма со списком имен таблиц и/или запросов. Поскольку такой список нельзя получить иначе, как перебрав объекты базы данных Access, наиболее естественный способ заполнения списка состоит в применении функции с обратным вызовом.

Конечно, в этом примере не обойтись без коллекций объектов DAO и ADO (см. главу 5). На  6.25 изображена форма из нашего примера — frmListTables. Откройте ее модуль, код которого описан в настоящем разделе.

В предлагаемом вам примере использованы два варианта кода — с объектами ADO и DAO. Хотя они и базируются на одной и той же концепции, между ними существуют некоторые различия. В книге приведена только A DO-версия кода. Если вас интересует, как выполнить то же самое, но с использованием объектов DAO, обратитесь к модулю формы frmListTables.

 6.9 приведен полный текст функции заполнения списка. Небольшой объем функции обусловлен тем, что основная работа возложена на вызываемые из нее вспомогательные процедуры. Основная же логика функции совершенно прозрачна: она заполняет массив именами таблиц, запросов или и тех, и других объектов базы данных, а в ответ на запросы программы Access возвращает ей имена из этого массива.

Фрагмент кода, обрабатывающий ситуацию Case acLBInitialize, создает массив, элементы которого будут возвращены функцией в ответ на запрос acLBGet- Value. Создав массив, функция запоминает количество элементов в нем.

Комментарии закрыты