Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.10.2020
Просмотров: 7935
Скачиваний: 25

В листинге 15.8 в качестве источника данных используется массив. Чтобы запол-
нить список вручную, необходимо задать свойство RowSourceType равным Value
List (см. строку 5). В цикле (строки 7-9) выполняется копирование данных из мас-
сива в список. Второй аргумент — это индекс элемента в списке. Чтобы удалить эле-
мент из списка или поля со списком, используйте метод Remove Item. Помните, что
при удалении происходит перенумерация оставшихся элементов списка, поэтому для
выполнения этой операции не удастся использовать цикл For Next. Ниже приведен
пример использования метода
Do W h i l e
Call
Loop
В этом цикле элементы с нулевым индексом будут удаляться до тех пор, пока не
исчезнут со списка.
А можно заполнить список данными из источника данных. Для этого задайте
свойство RowSourceType равным Table/Query и укажите источник данных. Добавить
в форму список или поле со списком вам поможет мастер, подробнее о котором рас-
сказано в главе "19-й час. Создание экранных форм".
Использование информационных
ресурсов и поиск готовых решений
За последние годы выстроены горы программного кода и плещется море вспомога-
тельных данных — ни одна книга не в состоянии вместить в себя всю эту информа-
цию. Издатели состязаются в попытках выпуска самых разнообразных и объемных
пособий, посвященных одной и той же теме. В этом кратком разделе будут названы те
информационные источники, которые окажут вам эффективную помощь в освоении
и использовании средств класса ADO.
Настоящее издание, разумеется, поможет взять удачный старт, но дорога, которую вам
предстоит осилить, достаточно длинна. Вот в чем парадокс — тем, кто любит и умеет
профаммировать, возможно, попросту не нужны тысячи страниц технической документа-
ции, но для новичка те же тысячи страниц могут стать непреодолимым препятствием.
Наилучший совет таков. С одной стороны, следует осваивать материал по мере не-
обходимости, в процессе работы над конкретной задачей. Но если вы хотите добиться
успеха, вам никуда не уйти от серьезной работы по изучению самых передовых и эф-
фективных алгоритмов, приемов работы и образцов профаммного кода. Вы сможете
начать профаммировать для Access сразу же по завершении чтения этой книги; но
насколько далеко вы продвинетесь в профессиональном смысле — зависит от ваших
дальнейших действий, желаний и настойчивости.
Новый термин
Объектная модель —
это иерархическая диафамма классов, которые реа-
лизованы в той или иной инструментальной оболочке и используются
для создания
Термин
программа
служит для обозначения ис-
полняемого модуля, динамической библиотеки или компонента.
В сети World Wide Web вы найдете полезную информацию по этому вопросу, на-
пример, по адресу
Резюме
Основная причина, побуждающая приобщиться к технологиям профаммирования
на языке VBA для системы Access 2002, может быть связана с необходимостью реше-
ния задач обработки информации из баз данных. В ходе этого занятия вы изучили
270 Часть V. Программирование и базы данных Access

приемы использования средств ActiveX Data Objects, реализованных в виде классов
ADODB и ADOX, для выполнения наиболее распространенных операций над содержи-
мым объектов базы данных.
Большая часть программного кода, решающего задачи обработки данных, связана с
перемещением информации из базы данных в память (в форме, удобной для обработ-
ки компьютером или пользователем), а затем обратно в базу данных. Создание объек-
тов соединений и наборов данных, а также управление ими — наиболее часто выпол-
няемые операции, причем большая шасть кода связана именно с обслуживанием на-
боров данных.
Класс ADODB содержит в своем составе большое число объектов разных классов,
каждый из которых обладает собственным набором атрибутов — свойств и методов.
Свойствам и методам присущи определенные особенности. Запомнить все их тонко-
сти совершенно немыслимо даже после сотен часов практической работы. К тому мо-
менту, когда вы будете читать эти строки, библиотеки VBA наверняка пополнятся но-
выми классами либо Microsoft выдумает нечто решительно новое. Вот почему настоя-
тельно рекомендуется в своей деятельности полагаться на качественные, прошедшие
проверку временем решения других разработчиков, настойчиво изучать их опыт и по-
чаще обращаться за помощью к оперативной справочной системе и другим качест-
венным информационным источникам.
Приведенные ниже разделы "Вопросы и ответы" и "Задания" дадут вам еще одну воз-
можность проверить, насколько прочно усвоен материал, пройденный на этом занятии.
Вопросы и ответы
Вопрос. Каков, по вашему мнению, наилучший способ изучения языка программирова-
ния SQL?
Ответ.
Издательство
Sams
(и
Издательский дом "Вильяме". — Прим. ред.)
предлага-
ют широкий выбор книг по программированию на SQL и смежным темам. Специаль-
ную литературу можно приобрести также у поставщиков систем управления базами
данных. Единственное, что необходимо оговорить, — не все диалекты SQL взаимоза-
меняемы.
Вопрос. Какие положительные моменты имеет объектная модель?
Ответ.
Объектная модель представляет собой наглядную диаграмму, иллюстри-
рующую состав классов и их взаимосвязи.
Вопрос. Каким образом отсортировать записи в наборе данных?
Ответ. В вашем распоряжении имеются предложение
ORDER BY
конструкции
SELECT
языка SQL, свойство
Order
объекта
ADODB. Recordset,
а также свойство
Sor-
объекта
ADOX.
Задания
Ниже приведены тестовые задания и упражнения, которые помогут вам самостоя-
тельно проверить уровень освоения материала, изложенного в этой главе. Ответы на
вопросы вы найдете в приложении.
Тесты
Назовите синоним термина
провайдер.
2.
С помощью какого предложения SQL могут
отфильтрованы данные в запросе?
час. ADODB — ваш верный помощник 271

3. Какое свойство ограничивает данные, доступные в записи?
4. Назовите имя свойства для представления данных, хранящихся в поле таблицы.
Объекту какого класса оно принадлежит?
5. Как называется коллекция в составе объекта Recordset, предназначенная для хра-
нения данных?
1. Исправьте текст запроса в листинге 15.6, чтобы предусмотреть возможность сорти-
ровки записей в порядке возрастания по значению поля, название которого задано
переменной
(Совет: воспользуйтесь предложением ORDER BY.)
2. Поясните, каким образом код листинга 15.7 можно еще более упростить и унифи-
цировать.
3. Продемонстрируйте, как связать элементы
коллекции с записями
набора данных. (Совет:
ключевым полем таблицы.)
272 Часть V. Программирование и базы данных Access

час
Применение языка
SQL
Программирование для Access связано, в основном, с использованием языка Visual
Basic for Applications (VBA). Язык Structured Query Language (SQL — язык структури-
рованных запросов; аббревиатура, произносится примерно как
— это вовсе
не то же самое, что VBA. VBA и SQL — два различных языка программирования: VBA
универсален и ориентирован на самое широкое применение, a SQL используется ис-
ключительно в задачах управления базами данных.
Ни одна из книг, посвященных программированию для Access, не будет полной
без более или менее подробного рассмотрения приемов программирования с помо-
щью SQL. На прошлом занятии вы изучили способы использования средств класса
ADODB. Следует знать о том, что методы ADODB при обращении к серверу базы
данных выполняют неявное преобразование фрагментов написанного вами кода VBA
в выражения на языке SQL. Все происходит именно так: и VBA, и другие инструмен-
ты программирования взаимодействуют с системами управления базами данных по-
средством команд SQL. Особенности подобных процессов зависят от конкретной сре-
ды разработки; впрочем, важно другое — почему используется именно SQL?
SQL — это мощный язык программирования, ориентированный на применение в
базах данных. Несмотря на чрезвычайную гибкость VBA, подчас целесообразно обра-
щаться к мощным средствам SQL напрямую. Приведем наглядный пример. Програм-
мируя в Access, для хранения информации вы можете использовать, помимо инстру-
ментов Access, и средства иных серверов баз данных — скажем, MS SQL Server. SQL
Server и другие "большие" системы управления базами данных обычно размещаются
на отдельных компьютерах, гораздо более мощных и производительных по сравнению
с персональными станциями пользователей. Разумеется, мощный сервер способен
решить ту же задачу значительно быстрее.
С помощью SQL вы можете заставить программу выполняться на сетевом сервере
(а не на станции пользователя), т.е. с большей скоростью. Это же справедливо и в от-
ношении баз данных Access.
Удобство использования — еще один немаловажный фактор. Язык SQL был создан
специально для работы с базами данных. Поэтому часто проще написать одно выра-
жение SQL вместо целого блока VBA-кода, выполняющего те же действия.

Различные диалекты и реализации SQL далеко не равнозначны. Хотя многие из них
целиком или частично поддерживают стандарты SQL, разработанные ANSI (American
National Standards Institute — Американским институтом национальных стандартов, не-
правительственной организацией, которая создает промышленные стандарты, не обяза-
тельные в применении. —
Прим.
существуют и более принципиальные отклоне-
ния. На этом занятии вы научитесь создавать код SQL, поддерживаемый Access 2002.
Перенести его в среду другой системы управления базами данных сопряжено с внесени-
ем в текст программы некоторых изменений. Если, тестируя такой код, вы столкнетесь с
проблемами, обратитесь к фирменной документации, поставляемой в комплекте с про-
граммным обеспечением сервера базы данных.
Итак, этот урок посвящен вопросам программирования на SQL в среде
Access 2002.
Основные темы занятия.
• Различные формы команды SELECT.
• Изменение содержимого базы данных с помощью команд UPDATE, INSERT и
DELETE.
• Объекты ADODB и хранимые процедуры Access.
Использование выражения SELECT
Команда SELECT — одно из самых популярных, многогранных и гибких выраже-
ний языка SQL. SELECT возвращает набор данных, отобранных на основании указан-
ных критериев фильтрации и упорядоченных в соответствии с заданными условиями.
Выражение SELECT способно принимать как простую, так и чрезвычайно сложную
форму,
реализовать точную и исчерпывающую логику отбора данных.
В пределах команды SELECT может одновременно выполняться несколько опера-
ций — фильтрация, группировка, сортировка данных и вычисления. Ниже мы рас-
смотрим некоторые формы команды разной степени сложности. И начнем мы с не-
скольких достаточно простых примеров.
Простые формы SELECT
Команда SELECT в своей самой простой форме состоит из служебного слова
SELECT. За ним следуют список необходимых полей и предложение FROM, которое
указывает на таблицу, содержащую названные поля:
SELECT СписокПолей FROM
В соответствии с общепринятым соглашением служебные слова SQL
вводятся в верхнем регистре (как это сделано в тексте синтаксической
формулы, приведенной выше). Стоит соблюдать это правило или нет -
решать вам; главное — будьте последовательны в своих действиях.
Интересно, что в практике виртуального общения в Internet слова,
набранные прописными буквами, служат для обозначения повышенной
"громкости" речи. Впрочем, SQL был придуман задолго до появления
электронной почты, программы NetMeeting и переговоров в режиме chat.
SELECT и FROM — это служебные слова SQL: SELECT обозначает название команды, а
FROM — предложение,
источник данных. В качестве параметра СписокПо-
лей допускается применять либо символ звездочки (*), указывающий на то, что в результат
выборки должны быть включены все поля таблицы, либо
наименований полей,
разделенных символом запятой. Вы можете отобрать любое число полей таблицы.
274 Часть V. Программирование и базы данных Access