Access 2002

Функция InitArray


Если массив пуст, то есть база данных не содержит указанных пользователем объектов (что в отношении таблиц практически исключено, так как каждая база данных содержит, по крайней мере, системные таблицы), вы должны вернуть значение False. На этом основании Access сделает вывод о том, что инициализация списка вашей функцией невозможна:

Функция InitArray, код которой приведен  6.10, получает информацию о таблицах и запросах базы данных из коллекций AllTables и AllQueries (в версии DAO той же процедуры используются коллекции TableDefs и QueryDefs).

В первую очередь функция InitArray определяет, содержатся ли в базе данных таблицы или запросы. Затем она выделяет память для массива, элементы которого функция с обратным вызовом будет возвращать Access во фрагменте, начинающемся с оператора Case acLBGetVal ue. Для заполнения этого массива служит функция Fill Array, код которой приведен  6.11. В зависимости от выбора пользователя эта функция помещает в массив имена таблиц, запросов или и тех, и других объектов базы данных. В этот же пример включена функция AddTables, которая перебирает объекты коллекции AllTables, добавляя их имена в массив. Имена запросов добавляются в массив аналогичной функцией — Add – Queries. Если вас интересуют подробности работы этих функций, включая текст вызываемых из них функций IsSystem, IsTemp и ShowSys, обратитесь к модулю формы из нашего примера.

После вызова функций, инициализирующих массив имен объектов, в переменной sintItems будет находиться значение, соответствующее количеству элементов в этом массиве. Данная величина будет возвращена Access во фрагменте, начинающемся с оператора Case acLBGetRowCount.

Оставшийся фрагмент кода напоминает соответствующий код из листинга 6.8. Ширина колонок и параметры форматирования элементов списка устанавливаются по умолчанию.

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