Указания к выполнению. Создайте на листе рабочей книги заголовок в соответствии с приведенным рисунком (рис.5)

Создайте на листе рабочей книги заголовок в соответствии с приведенным рисунком (рис.5). Заголовок создается вручную.

Рис.5. Исходная таблица на рабочем листе Excel

Затем создайте в Access базу данных из 3-х связанных таблиц указанной структуры (рис. 6). Создание базы данных, таблиц и схемы данных выполняется с помощью графического интерфейса пользователя с использованием Конструктора

Рис.6. Структура базы данных Access

Заполните таблицы отладочными данными (6-10 записей в таблицы Студент и Предмет).

Заполните шапку ведомости на рабочем листе вручную. Обратите внимание на совпадение введенного в ячейку Excel шифра предмета с имеющимся в БД шифром предмета (чтобы избежать ошибок вставки), и наличии в БД введенного номера группы.

Создайте макрос, выбирающий список студентов указанной группы и поместите список на лист ведомости.

Для получения доступа к данным необходимо создать соединение с базой данных.

Пример программного кода приведен на рис. 7.

Рис.7. Установка соединения с базой данных

Чтобы получить список студентов, необходимо сформировать набор записей на основе запроса. Пример подобной конструкции приведен на рис.8.

Рис.8. Формирование набора данных на основе запроса

Чтобы перенести данные из набора, воспользуйтесь методом CopyFromRecordset. В приведенном ниже примере (рис. 9) данные копируются на рабочей лист, начиная с ячейки А2 выделенного листа WSTemp. Не забудьте закрыть соединение с базой данных.

Рис.9. Копирование данных из набора

Проставьте оценки в таблицу рабочего листа вручную.

Следующий шаг – перенос сведений из ведомости в базу данных в таблицу «Оценка».

Важно синтаксически правильно сформировать строку запроса. Например, она может выглядеть так:

kSQL = "SELECT Nom_zachetki,Fam FROM Студент Where Nom_Gruppa = '" & gruppa & "'"

где gruppa – имя переменной, значение которой используется в качестве значения критерия отбора.

Для переноса оценок в базу создайте новую процедуру, заново установите соединение.

Чтобы вставить записи в таблицу, создайте набор данных на основе таблицы, а не запроса (рис.10).

Рис.10. Формирование набора данных на основе таблицы

В данном примере вставка будет осуществляться в таблицу Zakazy.

Чтобы определить, сколько записей необходимо вставить (границы цикла), воспользуйтесь приемом, рассмотренным в лабораторной работе № 7 (определить, сколько непустых строк на листе), либо сохраните количество записей из набора предыдущей процедуры в глобальной переменной или в какой-либо ячейке на рабочем листе.

Для добавления записей в таблицу необходимо:

  • вызывать нужный метод AddNew();
  • присвоить значения полям (кроме поля типа Счетчик);
  • вызвать метод Update() для Recordset.

Пример программного кода, добавляющего запись в таблицу БД, приведен на рисунке 11.

Рис.11. Добавление записи в таблицу БД Access

Контрольные вопросы

  1. Как получить программный доступ из одного приложения Microsoft Office к объектам другого приложения?
  2. Какая объектная модель используется для доступа к данным, хранящимся в базе данных?
  3. Какие объекты входят в объектную модель ADO?
  4. Перечислите основные свойства объекта Connection.
  5. Чем отличаются набор данных на основе таблицы и набор данных на основе запроса?
  6. Какой объект используется для выполнения операции на источнике данных?
  7. Какой объект предназначен для работы с набором данных?
  8. С помощью какого метода данные из набора могут быть помещены на рабочий лист Excel?
  9. Как добавить новую запись в таблицу источника данных?
  10. Какие методы используют для открытия и закрытия соединения с базой данных?

Список литературы

  1. Гандерлой М., Харкинз С. С. Автоматизация Microsoft Access с помощью VBA / М. Гандерлой, С. С. Харкинз. - М.: ООО «И.Д.Вильямс», 2006. – 416 с.
  2. Гарбер Г. З. Основы программирования на Visual Basic и VBA в Excel 2007 / Г. З. Гарбер – М.: Солон-Пресс, 2008. – 172 с.
  3. Гарнаев А.Ю. Самоучитель VBA / Гарнаев А.Ю. – 2-e издание, перераб. и доп. – Спб.: БХВ-Петербург, 2007. – 560 с.
  4. Программирование в пакетах MS Office: учебное пособие / C.В. Назаров, П.П. Мельников, Л.П. Смольников и др.; под редакцией С.В Назарова – М.: Финансы и статистика, 2007. – 656 с.
  5. Слепцова Л. Д. Программирование на VBA в Microsoft Office 2010 / Л. Д. Слепцова. – М.: ООО «И.Д.Вильямс», 2010. – 432 с.
  6. Уокенбах Дж. Excel 2010: профессиональное программирование на VBA / Дж. Уокенбах. – Киев: Диалектика, 2011. – 944 с.
  7. Уокенбах Дж. Формулы в Microsoft Excel / Дж. Уокенбах. – Киев: Диалектика, 2011. – 704 с.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: