Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VOPRS_RabAcce05_06.docx
Скачиваний:
2
Добавлен:
16.11.2019
Размер:
1.24 Mб
Скачать

Системный анализ предметной области

Системный анализ должен включать информацию об объектах предметной области, которая требуется для решения конкретных задач; формулировку конкретных задач, решаемых с использованием данной БД с кратким описанием алгоритмов их решения; описание входных и выходных документов.

В методических рекомендациях используется описание предметной области и базы данных поставщиков и деталей, представленное в работе [1].

База данных предназначена для хранения информации о поставщиках, деталях и поставках. Она должна обеспечивать просмотр, ввод, редактирование и поиск данных.

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

В результате исследования предметной области определена следующая справочная и входная информация:

  • справочник поставщиков;

  • справочник деталей:

  • входной документ, содержащий сведения о поставщиках, деталях и объемах поставок.

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

Для расчета вышеназванных показателей обозначим:

  • i - номер поставщика, i = 1, …, n ;

  • j - номер детали, j = 1, …, m ;

  • Qij - количество деталей с номером- j, поставляемых i -ым поставщиком;

  • Vj - вес j - ой детали.

Тогда,

Qi = , где

Qi - количество деталей, поставляемых i -ым поставщиком.

Q = , где

Q - количество деталей поставляемых всеми поставщиками.

Wij = Vj * Qij, где

Wij – вес деталей с номером - j, поставляемых i - ым поставщиком.

Инфологическое проектирование

Этап инфологического проектирования связан с переходом от словесного описания предметной области к описанию ее с помощью искусственных формализованных языковых средств. К числу таких средств относятся семантические модели данных, ориентированные на смысловые характеристики информации.

Наиболее распространенной семантической моделью является модель “сущность-связь” (entity-relationship) или ER-модель.

Модель была предложена Ченом (Chen) в 1976 г. Она предназначена для описания предметной области. В связи с наглядностью представления концептуальных схем баз данных, ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных. Основными понятиями ER-модели являются: сущность, свойство, связь.

Сущность - это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна [1]. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности. При этом имя сущности - это имя типа, а не некоторого конкретного экземпляра этого типа.

Каждый экземпляр сущности должен быть отличим от любого другого экземпляра той же сущности (это требование в некотором роде аналогично требованию отсутствия кортежей-дубликатов в реляционных таблицах).

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

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

Связь - это ассоциация, объединяющая несколько сущностей. Существуют три типа связей: “один ко многим“ (1 : М), “один к одному“ (1 : 1) и “многие ко многим“ (М : М).

Между сущностями СТУДЕНТ и ПРЕПОДАВАТЕЛЬ, которые представляют собой предметную область ВУЗ, существует связь РУКОВОДСТВО ДИПЛОМНЫМИ ПРОЕКТАМИ. Ее можно представить следующим образом:

s2

s3

s4

s5

s1

Рисунок 1. Связь между экземплярами сущностей СТУДЕНТ и ПРЕПОДАВАТЕЛЬ.

Эта связь означает, что каждый студент имеет не более одного руководителя, и один и тот же преподаватель может руководить множеством студентов-дипломников. Такая связь между сущностями имеет тип “один ко многим“ (1:М), иначе “многие к одному“ (М:1). Один со стороны ПРЕПОДАВАТЕЛЬ и многие со стороны СТУДЕНТ (Рис. 1).

Если в качестве предметной области рассмотреть клинику, то между объектами ПАЦИЕНТ и КОЙКА существую связь “один к одному“ (1:1). Одному экземпляру объекта ПАЦИЕНТ соответствует не более одного экземпляра объекта KOЙKA и наоборот (Рисунок 2).

Рисунок 2. Связь между экземплярами сущностей ПАЦИЕНТ и КОЙКА.

Между сущностями ПОСТАВЩИКИ и ДЕТАЛИ существует связь ПОСТАВКА.

Эта связь имеет тип “многие ко многим“ (М:М). Каждый поставщик поставляет определенные детали, и наоборот, каждая деталь поставляется определенными поставщиками (Рисунок 3).

Рисунок 3. Связь между экземплярами сущностей SUPP и PART.

Построение ER-диаграммы для рассматриваемой предметной области.

На основе выполненного системного анализа предметной области были определены сущности, свойства и связи [1].

1. Сущности:

SUPP (поставщик).

PART (деталь).

Каждый тип сущности на ER- диаграмме (Рисунок 4) представляется в виде отдельного прямоугольника с указанием внутри имени сущности.

2. Свойства:

Для сущности SUPP:

S# (номер поставщика – ключевое свойство).

SNamе (имя поставщика).

STATUS (статус поставщика);

CITY (город, в котором находится поставщик).

Для сущности PART:

P# (номер детали– ключевое свойство).

РNAME (название детали);

COLOR (цвет детали);

WGT (вес детали);

CITY (город, в котором находится деталь).

Для связи SUPP_PART - QTY (количество поставляемых деталей различными поставщиками).

Свойства на ER-диаграмме изображаются в виде эллипсов, содержащих имена этих свойств. Эллипсы соединяются с соответствующей сущностью или связью сплошной линией.

3.Связь - SUPP_PART (связь типа многие ко многим).

Каждый вид связи на ER-диаграмме изображается в виде ромба с названием связи внутри. Участники каждой связи соединяются с ромбом соответствующей связи сплошными линиями. Каждая такая линия содержит надпись “1” или “M” для обозначения типа связи.

S#

SName NAMEname

Status

City

P#

City

PAPT

SUPP

SUPP_PART

М М

QTY

Рисунок 4. ER-диаграмма рассматриваемого примера.

Следует отметить, что стандарта на изображение ER-модели нет.

Выбор СУБД

Основным принципом выбора СУБД является определение программного продукта, в наибольшей степени соответствующего предъявляемым требованиям. Процедуру выбора СУБД проводят в несколько этапов, на которых оцениваются различные характеристики продуктов, в том числе: модель представления данных; качество средств разработки, средств защиты и контроля информации; стоимость; технические характеристики, производительность и другие характеристики программного продукта.

Учебная база данных поставщиков и деталей будет разработана в СУБД MS Access 2007. СУБД MS Access предназначена для хранения и поиска данных, представления информации в удобном виде и автоматизации различных операций: учет, планирование и другие. С помощью MS Access можно разрабатывать простые и удобные формы ввода данных, а также осуществлять обработку данных и выдачу сложных отчетов.

Даталогическое проектирование

Даталогическое (логическое) проектирование – это проектирование логической структуры базы данных. Логическая структура базы данных является отображением реальной предметной области. Поэтому на выбор проектных решений непосредственное влияние оказывает специфика предметной области, отраженная в инфологической модели. Кроме того, на структуру базы данных оказывают влияние конкретные СУБД. Поэтому спроектировать логическую структуру базы данных означает определить все информационные единицы и связи между ними, задать их имена, задать некоторые количественные характеристики, например тип данных, длину поля и др.

Для построения даталогической модели необходимо определить, какая информация будет храниться в базе данных. Как правило, в базе данных хранятся исходные показатели.

Основные подходы к созданию реляционной базы данных.

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

Шаг 1. Каждый тип сущности отображается в базовую переменную-отношение. Имя сущности становится именем переменной-отношения. Следовательно, рассматри-ваемая база данных будет содержать две базовые переменные–отношения: SUPP и PART, соответствующие двум типам сущностей. Каждое из отношений будет иметь потенциальный ключ S#; P#, соответствующий указанным на ER- диаграмме ключевым свойствам.

Имена отношений могут быть ограничены требованиями конкретной СУБД по длине и не должны содержать пробелов и некоторых специальных символов.

Шаг 2. Каждое свойство на ER- диаграмме отображается в отдельный атрибут в соответствующей переменной-отношении.

Шаг 3. Связь типа М:1 или 1:М осуществляется с помощью добавления внешнего ключа в переменную - отношение, расположенную со стороны “ многие ” (EMP), который будет ссылаться на переменную- отношение со стороны “один”(DEPT) (Рисунок 5) .

DEPT

D#

DNAME

DUDGET

D1

Плановый

3000000

D2

Кадры

500000

EMP

E#

D#

ENAME

SALARY

E1

D1

Иванов

20000

E2

D1

Петров

30000

E2

D2

Сидоров

50000

Рисунок 5. База данных отделов и служащих.

Шаг 4. Связь типа 1:1 следует рассматривать как связь М:1.

Шаг 5. Связь типа М:М отображается в базовую переменную –отношение.

В нашем примере связь между поставщиками и деталями (SUPP_PART) имеет тип М:М, поэтому она отобразится в переменную –отношение SUPP_PART. Ее первичный ключ состоит из атрибутов (S# и P#), причем S# является внешним ключом, ссылающимся на переменную- отношение SUPP, а P# является внешним ключом, ссылающимся на переменную–отношение PART. Для каждого из внешних ключей должен быть задан набор правил внешних ключей, т.е. правило обновления UPDATE и правило удаления DELETE. Эти правила нельзя установить с помощью ER-диаграммы.

При работе в СУБД используют вместо термина переменная –отношение термин таблица.

Работа в СУБД MS ACCESS 2007

Таким образом, с учетом переименования переменных – отношений, база данных поставщиков и деталей [1] имеет вид, представленный на Рисунке 6. Она состоит из трех таблиц:

-tblS — поставщики, где S# - номер поставщика; SNAME, STATUS -его имя и статус; CITY - город, в котором поставщик расположен.

-tblP- детали, где P# - номер детали; PNAME - название детали; COLOR и WGT - соответственно цвет и вес детали; CITY - город, в котором находится деталь.

-tblSP - поставки, где QTY- количество деталей в поставке.

tblS

tblP

S#

SNAME

STATUS

CITY

P#

PNAME

COLOR

WGT

СITY

S1

Smith

20

London

P1

Nut

Red

12

London

S2

Jones

10

Paris

P2

Bolt

Green

17

Paris

S3

Black

30

Paris

P3

Screw

Blue

17

Rome

S4

Smith

40

London

P4

Screw

Red

14

London

tblSP

S#

P#

QTY

S1

P1

300

S1

P2

200

S1

P3

400

S2

P1

300

S2

P2

400

S3

P3

200

Рисунок 6. База данных поставщиков и деталей.

Символом # отмечены ключевые атрибуты. При создании полей таблиц в СУБД данный символ не используется.

Создание базовых таблиц

Запустите MS ACCESS 2007 и создайте новую базу данных Postavki.

Для создания структуры таблицы tblS в режиме конструктора необходимо в открытом окне базы данных выбрать Создание ->Таблицы -> Режим конструктор (Рисунок 7), предварительно включив отключенную часть содержимого БД. В бланк создания структуры таблицы введите наименования полей и их типы. Задайте полю S ключевое свойство, затем сохраните таблицу и закройте ее.

Рисунок 7. Окно таблицы tblS в режиме конструктора.Следует иметь ввиду, что при формировании структуры таблицы tblS для поля S нужно выбрать значение индексированного поля Да (совпадения не допускаются) (Рисунок 8).

Рисунок 8. Окно свойств поля S таблицы tblS

Для заполнения таблицы tblS данными выберите нужную таблицу из списка таблиц и, после нажатия правой кнопки мыши, выберите режим Открыть. Заполните таблицу данными.

Затем сохраните и закройте ее. Аналогичным образом создайте самостоятельно и заполните данными таблицы tblP и tblSP.

Создание схемы данных.

Для создания схемы данных (Рисунок 9) необходимо выбрать в окне базы данных пункты Работа с базами данных и Схема данных. Появится диалоговое окно Добавление таблицы, в котором следует выбрать таблицы, между которыми создаются связи (в данном примере это tblS и tblSP).

Рисунок 9. Схема данных.

При перетаскивании поля из одной таблицы на одноименное поле другой откроется окно Изменение связей. Установите флажки обеспечения целостности данных, каскадное обновление и каскадное удаление связанных полей. Нажмите кнопку Объединение.

Рисунок 10. Окно изменения связей.

Раскроется окно Параметры объединения. Выберите первый. Нажмите на кнопку OK. Снова откроется окно Изменение связей. При нажатии на кнопку OK связь между двумя таблицами будет создана. Самостоятельно создайте связь между таблицами tblP и tblSP базы данных.

Создание запросов.

Запрос на выборку. Задание: показать имена и статус поставщиков детали ‘P2’. Для выполнения задания откройте новый запрос в режиме конструктора (Создание -> Конструктор запросов). С помощью окна Добавление таблицы добавьте таблицы tblS и tblSP. Закройте окно Добавление таблицы. Перетащите на бланк запроса поля SName, Status, P (можно щелкнуть дважды кнопкой мыши по имени поля таблицы). В строке бланка запроса Условие отбора в поле P введите ‘P2’ (Рисунок 11). Выполните запрос, сохраните его, дав ему имя.

Рисунок 11. Окно запроса на выборку.

Самостоятельно выполните задание: показать названия, веса и цвета имеющихся деталей.

Запрос на обновление. Задание: скорректировать статус поставщика ‘S2’, задав значение 35. Откройте новый запрос в режиме конструктора (Создание -> Конструктор запросов). Добавьте таблицу tblS и поместите на бланк запроса поля S и Status (Рисунок 12).

Рисунок 12. Окно запроса на обновление.

Выберите в окне конструктора элемент Обновление. В строке Обновление бланка запроса для поля Status введите 35, а для поля S в строке Условие отбора – ‘S2’. Выполните и сохраните запрос, дав ему имя.

Самостоятельно скорректируйте статус поставщика S3, сделав его равным 50.

Запрос на удаление. Задание: удалить из таблицы tblS поставщика с номером ‘S3’. Выполните те же действия, что и в предыдущем запросе с той лишь разницей, что в окне конструктора запросов выберите элемент Удаление.

Рисунок 13. Окно запроса на удаление.

В строке Условие отбора для поля S введите ‘S3’ (Рисунок 13). Выполните запрос и убедитесь, что запись удалена.

Запрос на вычисление выражения. Задание: показать имена поставщиков, номера поставляемых ими деталей, а также вес каждой поставки, как произведение веса детали на количество деталей в поставке.

Откройте новый запрос в режиме конструктора и добавьте все три таблицы базы данных. Введите в бланк запроса поля SName, P, WGT, QTY. Щелкните на верхней строке свободной колонки бланка запроса правой кнопкой мыши. Из раскрывающегося списка выбери Построить. Активизируется окно Построитель выражений (Рисунок14).

Рисунок 14. Окно построителя выражений.

Щелкните два раза левой кнопкой мыши на объекте Таблицы. Выберите таблицу tblP, а в средней части окна — поле WGT. Нажмите на кнопку Вставить, затем на знак умножения. Выберите таблицу tblSP, далее поле QTY. Нажмите на кнопки Вставить и OK. Запустите запрос и убедитесь, что вычислены веса всех поставок деталей. Сохраните его под именем Веса Поставок. Вновь откройте запрос в режиме конструктора и измените Выражение1 на Вес (Рисунок 15).

Рисунок 15. Результат выполнения запроса на вычисление выражения.

Запрос к базе данных на языке SQL. Для создания запросов на языке SQL откройте в окне базы данных следующие вкладки Создание -> Конструктор запросов. Закройте появившееся окно Добавление таблиц. Далее выберите SQL Режим -> Объединение. В открывшемся окне кода введите следующую инструкцию SQL: SELECT S FROM tblS; Выполните инструкцию и сохранить запрос, присвоив ему имя.

Самостоятельно создайте следующие запросы:

-показать города, в которых расположены поставщики;

-указать названия деталей и городов, в которых находятся детали с весом, превышающим 10 фунтов;

-определить номера поставщиков детали с номеромP2’;

-определить города, в которых находятся поставщики детали ‘P3’;

-определить имена поставщиков детали с номером ‘P2’;

-подсчитать количество поставщиков;

-определить суммарное количество деталей;

-определить в поставках максимальное и минимальное количество деталей с номером ‘P2’;

-показать названия городов, в которых находятся поставщики, результат отсортировать в алфавитном порядке.

Формирование отчетов.

Для создания отчета следует открыть вкладки Создание->Мастер отчетов. Откроется окно создания отчета (Рисунок 16). Выберите в качестве основы формирования отчета предыдущий запрос и список полей, включаемых в отчет.

Рисунок 16. Окно создания отчета.

Далее выберите уровень группировки SName, затем нажмите на кнопку Итоги. Отметьте галочкой SUM (QTY). Далее выберите нужные макет, ориентацию и стиль. Дайте имя отчету Веса поставок и нажмите OK. При желании в отчете можно сделать сортировку по номеру детали Р.

Внешний вид отчета представлен на Рисунке 17.

Рисунок 17. Отчет Веса поставок.

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

Создание приложения на VBA для поиска и редактирования записей.

Приложение состоит из 3-х форм:

1.Главная форма frmFirst. На этой форме будут расположены две кнопки, с помощью которых можно осуществлять переход на следующие две формы приложения.

2.Форма frmS для перехода по записям и редактирования записей в таблице tblS.

3.Форма frmFind для поиска записей в таблице tblS.

Создание главной формы.

Создайте в базе данных Postavki форму frmFirst, нажав в окне базы данных Создание -> Конструктор форм. В свойствах формы на вкладке Макет свойству Подпись присвойте значение frmFirst. Сохраните форму.

Форма содержит разделы: Область данных, Заголовок и Примечание. Два последних раздела можно поместить в форму, щелкнув правой кнопкой мыши в области данных формы и выбрав в контекстном меню Заголовок / Примечание. В этих разделах можно размещать кнопки.

Поместите на форму кнопки. Для этого отожмите на панели элементов Access кнопку Мастера. Правой кнопкой мыши нажмите выделенную кнопку и выберите Свойства. Откроется окно свойств кнопки. На вкладке Макет установите значение свойств Подпись равным OpenfrmS, а на вкладке Другие – значение свойства Имя равным cmdOpenfrmS. Для другой кнопки - значение свойств Подпись равным OpenfrmFind, значение свойства Имя равным cmdOpenfrmFind.

В этом режиме можно менять расположение и размер кнопки с помощью мыши.

В окне программного кода данной формы (щелчок по форме правой кнопкой мыши - > Обработка событий -> Программы) введите следующий код:

Private Sub cmdOpenfrmS _Click()

DoCmd.OpenForm “frmS” End Sub

Private Sub cmdOpenfrmFind _Click()

DoCmd.OpenForm “frmFind”

End Sub

Каждая из этих процедур состоит из одной макрокоманды. В первой процедуре frmS - это значение аргумента метода OpenForm объектаAccess - DoCmd.Закройте форму и сохраните ее.

После того, как будут созданы следующие формы приложения, можно опробовать работу формы frmFirst. Для этого нужно открыть форму в режиме Форма и нажать на соответствующую кнопку.

Создание формы для вывода данных в форму, перехода по записям и редактирования данных.

Создайте форму с именем frmS. Расположите объекты на форме в соответствии с рисунком 18.

Рисунок 18. Вид формы frmS.

Поместите в область данных формы четыре текстовых поля. Для этого выберите левой кнопкой мыши на панели элементов ToolBox пиктограмму “аб” - Поле, затем переместите курсор на форму. В выбранном Вами месте формы, в котором будет располагаться текстовое поле, нажмите левую кнопку мыши и, не отпуская ее, задайте размер создаваемого текстового поля. Выделите поле, нажмите правую кнопку мыши и в контекстном меню выберите строку Properties (Свойства) или выполните команду меню Вид | Свойства.

На вкладке Другие задайте для свойства этого поля Имя (Name) значение txtS. Закройте окно Свойства. Аналогичным образом разместите в форме остальные текстовые поля, присвоив свойству Имя этих полей значения txtSName, txtStatus, txtCity.

Выделите правой кнопкой мыши объект Надпись, который теперь располагается слева от текстового поля txtS. В окне Свойства этого объекта на вкладке Другие присвойте cвойству Имя значение lblS. Свойству Имя остальных надписей присвойте значения lblSname, lblStatus, lblCity. Перемещение надписи происходит с помощью черного квадратика в верхнем левом углу выделенной надписи.

Добавьте на форму кнопки навигации по записям и кнопки для других операций над данными. Для кнопки перехода на первую запись в окне свойств на вкладке Макет установите значение свойства Подпись равным << , а на вкладке Другие – значение свойства Имя равным cmdFirst.

Для остальных кнопок свойству Имя присвойте значения в соответствии с Таблицей 1, а свойству Подпись - в соответствии с Рисунком 18.

Объект

Значение свойства св Name по умолчанию

Значение свойства св Na Name

Форма

Form1

frmS

Кнопка

Кнопка0

cmdFirst 

Кнопка

Кнопка1

cmdLast

Кнопка

Кнопка2

cmdPrivious 

Кнопка

Кнопка3

cmdNext 

Кнопка

Кнопка4

cmd Save 

Кнопка

Кнопка5

cmd Add 

Кнопка

Кнопка6

cmd Delete 

Кнопка

Кнопка7

cmdUndo 

Кнопка

Кнопка8

cmdOpenForm 

Кнопка

Кнопка9

cmdClose 

В окно программного кода данной формы введите код:

Private Sub Form_Load()

With Me

.ScrollBars = 0 ‘Полоса прокрутки отсутствует .NavigationButtons = False ‘Кнопки навигации по записям отсутствуют

.DividingLines = False ‘Разделительные линии отсутствуют

.RecordSelectors = False ‘Область выделения отсутствует

.lblS.Caption = "Номер"

.lblSname.Caption = "Имя"

.lblStatus.Caption = "Статус"

.lblCity.Caption = "Город"

.RecordSource = "SELECT S, SName, Status, City FROM tblS"

.txtS.ControlSource = "S"

.txtSName.ControlSource = "SName"

.txtStatus.ControlSource = "Status"

.txtCity.ControlSource = "City"

End With

End Sub

Private Sub Form_Load(); - процедура загрузки формы, в результате выполнения которой в текстовые поля формы выводятся значения первой записи запроса к таблице tblS.

Конструкция WithEnd With ;-позволяет обращаться сразу к нескольким свойствам формы.

.lblS.Caption = "Номер"; - cвойству Caption надписи с именем lblS присвоено значение Номер.

.RecordSource = "SELECT S,SName,Status,City FROM tblS"; -источником данных формы является запрос.

Следующая строка кода означает, что источником данных элемента управления txtS являются значения поля S таблицы tblS.

С помощью кнопок cmdFirst, cmdNext, cmdPrivious, cmdLast можно осуществлять переход по записям таблицы.

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

Private Sub cmdFirst_Click()

RecNavig acFirst

End Sub

RecNavig acFirst; - вызов процедуры RecNavig с параметром x, которая находится в стандартном модуле, и одновременное возвращение результата.

Откройте стандартный модуль (Работа с базами данных -> Visual Basic -> Insert-> Module). Присвойте модулю имя basNavig и в окно стандартного модуля поместите код:

Sub RecNavig(x)

On Error GoTo HandleErr

DoCmd.GoToRecord , , (x)

ExitHere:

Exit Sub

HandleErr:

MsgBox " Ощибка" & Err.Number & ":" & Err.Description

Resume ExitHere

End Sub

On Error GoTo HandleErr; - инструкция, которая указывает на то, что при возникновении ошибки, выполнение программы следует продолжить со строки, имеющей метку HandleErr.

DoCmd.GoToRecord , , (x); - процедура перехода на запись в соответствии со значением переданного параметра.

MsgBox " Ощибка" & Err.Number & ":" & Err.Description; - сообщение выдает номер ошибки и ее описание.

Resume ExitHere; - инструкция по очистке ошибок и продолжения выполнения программы с места, отмеченного меткой ExitHere.

Сохраните код.

Для кнопок cmdNext, cmdPrevious и cmdLast напишите процедуры обработки событий самостоятельно, используя константы Access: acNext, acPrevious и acLast.

Добавьте обработчики событий Click для кнопок cmdAdd, cmdSave, cmdDelete и cmdUndo, позволяющие добавлять, сохранять, удалять запись, а также отменять внесенные в запись изменения.

Private Sub cmdAdd_Click

On Error Resume Next 'Режим игнорирования ошибок

DoCmd.GoToRecord , , acNewRec

End Sub

DoCmd.GoToRecord , , acNewRec; - макрокоманда, в которой acNewRec – это значение аргумента метода GoToRecord объекта DoCmd.

Private Sub cmdSave_Click()

On Error Resume Next

DoCmd.RunCommand acCmdSaveRecord

End Sub

Private Sub cmdDelete_Click()

On Error Resume Next

DoCmd.RunCommand acCmdDeleteRecord

End Sub

Private Sub cmdUndo_Click()

On Error Resume Next

DoCmd.RunCommand acCmdUndo

End Sub

Чтобы добавить запись в таблицу, нажмите сначала на кнопку Добавить, введите в текстовые поля формы значения, а затем нажмите на кнопку Сохранить. При внесении изменений найдите нужную запись, измените значения и нажмите на кнопку Сохранить. Кнопка Отмена позволяет отменить внесенные изменения.

Добавьте обработчик события cmdOpenfrm_Click, позволяющий открывать форму frmFind, которую создадите позже, с информацией о поставщиках со статусом больше 10.

Private Sub cmdOpenfrm_ Click ()

DoCmd.OpenForm FormName:="frmFind", _

WhereCondition:=" [Status] > 10 "

End Sub

Процедура обработки события Click кнопки Выход.

Private Sub cmdClose_Click()

DoCmd.Close , , acSaveYes

End Sub

Откройте форму frmS в режиме формы и опробуйте ее работу.

Создание формы для поиска и сортировки записей в таблице.

Создайте ленточную форму frmFind (Создание -> Другие формы -> Мастер форм) на основе таблицы tblS (Рисунок 19). Выберите внешний вид Ленточный.

Рисунок 19. Вид ленточной формы frmFind.

Перейдите в режим Конструктор и в заголовок формы поместите элементы управления: поле со списком Combo1 и текстовое поле Text1 с надписями; группу переключателей OptGr1; кнопки cmdFind для поиска записей и cmdSort для сортировки записей. Установите значения свойств Caption для элементов управления формы в соответствии с рисунком 19.

Для поиска записей следует выбрать из элемента управления поле со списком имя поля, в текстовое поле ввести значение критерия и нажать на кнопку Поиск записей.

В окно редактора процедур введите код, который позволяет при загрузке формы выводить в нее записи из таблицы tblS:

Dim x As String, y As String

Private Sub Form_Load()

Me.Combo1.RowSource = "tblS"

Me.Combo1.RowSourceType = "Список полей"

End Sub

Dim x As String, y As String; - объявление локальных переменных формы x и y типа String.

Me.Combo1.RowSource = "tblS" ; - свойству Источник строк элемента управления Combo1 присваивается значение tblS.

Me.Combo1.RowSourceType = "Список полей"; - свойству Тип источника строк элемента управления Combo1 присваивается значение Список полей.

Добавьте обработчик события cmdFind_Click, который позволит осуществлять поиск записей в форме.

Private Sub cmdFind_Click()

DataInput ‘Вызов процедуры DataInput ввода данных.

Me.RecordSource = strSQL(x, y)

frmClear

Me.Combo1.SetFocus ‘ Элемент управления Combo1 получает фокус.

End Sub

Me.RecordSource = strSQL(x, y); - вызов функции strSQL с параметрами и одновременное присваивание источнику записей формы возвращаемого значения.

frmClear; - вызов процедуры frmClear очистки элементов управления формы.

Добавьте в окно кода следующий текст:

Private Sub DataInput()

Me.Combo1.SetFocus

x = Combo1.Text

Me.Text1.SetFocus

y = Text1.Text

End Sub

x = Combo1.Text; - переменной x присваивается значение, выбранное из поля со списком.

Private Function strSQL(strcbo As String, strtxt As String) As String

Select Case strcbo

Case "S", "SName", "City"

strSQL = "SELECT * FROM tblS WHERE tblS."

& strcbo & " like '" & strtxt & "*'"

Case "Status"

strSQL = "SELECT * FROM tblS " & _

"WHERE tblS." & strcbo & "=" & strtxt & ""

End Select

End Function

Select Case strcbo; - оператор варианта Select Case сравнивает значение переменной strcbo по очереди со всеми значениями, перечисленными в вариантах. При совпадении значений он выполняет операторы, стоящие в этом варианте.

strSQL = "SELECT * FROM tblS WHERE tblS"

& strcbo & " like '" & strtxt & "*'"; - поиск записей производится по буквам, введенным в текстовое поле Text1.Text, с использованием оператора like (сравнение по шаблону). Strtxt - формальный параметр, которому будет присвоено значение поля, выбранного в Text1.Text.

Добавьте в окно кода следующий текст:

Private Sub frmClear()

With Me

.Combo1.SetFocus

.Combo1.Text = "" ‘ Оператор очищает содержимое Combo1.

.Text1.SetFocus

.Text1.Text = "" ‘ Оператор очищает содержимое Text1.

End With

End Sub

Процедура сортировки записей, в которой оператор варианта Select Case сравнивает значение, выбранное в группе переключателей OptGr1 со всеми значениями, перечисленными в вариантах. При совпадении значений будет выполняться сортировка записей по возрастанию (значение по умолчанию). Добавьте в окно кода следующий текст:

Private Sub cmdSort_Click()

Select Case Me.OptGr1.Value

Case 1

Me.OrderBy = " City, S "

Me.OrderByOn = True ‘ Сортировка включена

Case 2

Me.OrderBy = " SName, S "

Me.OrderByOn = True

Case 3

Me.OrderBy = "S"

Me.OrderByOn = True

End Select

End Sub

Добавьте обработчик события cmdOpenRep_Click, который позволит открывать отчет.

Private Sub cmdOpenRep_Click()

DoCmd.OpenReport "repPost"

End Sub

Опробуйте работу формы. Выберите в поле со списком название поля Status, а в текстовое поле введите 20. После нажатия на кнопку Поиск записей в область данных будут выведены записи поставщиков со статусом 20.

Варианты заданий для выполнения курсовых работ по дисциплине «Базы данных»

Создать базу данных для автоматизации деятельности подразделений ВУЗа, рассмотрев часть предметной области. Информация о предметной области ВУЗ, представлена в Таблице 2.

Таблица 2.

Номер

сущности

( связи)

Имя сущности

( связи)

Свойства сущности (связи)

1

Специальность

Шифр специальности, наименование.

2

Группа

Шифр группы, численность.

3

Курс

Номер курса, название курса.

4

Семестр

Номер семестра, название семестра.

5

Дисциплина

Шифр дисциплины, название дисциплины,

лекции, практические, прочее (кол-во часов).

6

Должность

Код должности, наименование, оклад.

7

Стаж

Код стажа, величина стажа (лет), надбавка.

8

Кафедра

Код кафедры, название кафедры,

ФИО зав. кафедрой, телефон.

9

Преподаватель

Табельный номер преподавателя, ФИО, год

рождения, адрес, телефон.

10

Студент

Номер зачетной книжки, ФИО, год рождения,

адрес, телефон, балл при поступлении.

11

Отделение

Код отделения, название.

12

Форма обучения

Код формы обучения, название (очная,

вечерняя, заочная).

13

Факультет

Код факультета, название, ФИО декана, телефон.

Каждый студент для выполнения курсовой работы должен в соответствии со своим порядковым номером в списке группы определить номера сущностей и номера задач, которые необходимо решить с помощью созданной базы данных (Таблица 3). Формулировки решаемых задач представлены в Таблице 4. Предлагаемый перечень задач необходимо дополнить самостоятельно сформулированными запросами к связным таблицам базы данных. Для выполнения задания необходимо использовать рекомендации к выполнению курсовой работы по дисциплине Базы данных[6].

Таблица 3.

Порядковый

номер студента

Номера сущностей

Номера задач

1

2

3

1

3,4,5,9

22,7,14

2

6,7,8,9

9,11,21

3

4,5,8,9

21,6,12

4

4,5,9,3

22,20,14

5

4,5,6,9

22,6,14

6

5,6,7,9

8,10,14

7

4,5,7,9

22,11,14

8

2,5,9,11

6,14,18

9

3,5,8,9

23,21,6

10

10,2,12,13

24,5,28

11

3,5,6,9

23,9,8

12

2,3,4,5

22,5,6

13

2,4,5,9

22,5,14

14

2,3,5,9

23,5,14

15

2,5,9,13

5,7,14

16

2,4,5,8

5,22,12

17

2,4,5,12

22,19,6

18

2,3,5,12

23,7,5

19

2,5,9,12

19,5,6

20

2,5,10,11

18,27 ,16

21

1,2,5,12

1,5,19

22

1,2,11,12

1,18,5

23

2,4,5,11

22,20,7

24

1,2,4,5

22,1,6

25

1,2,3,5

23,1,7

26

2,9,11,12

14,18,19

27

1,2,9,11

5,1,14

28

1,2,9,12

1,5,19

29

2,6,9,12

9,14,8

30

2,7,9,11

11,14,10

31

1,2,8,9

21,5 ,12

32

1,2,10,11

26,16,25

33

2,10,11,12

18,16,25

34

2,8,10,12

12,17,5

35

2,8,10,11

5,2,16

36

1,2,10,12

1,2,17

37

2,8,9,10

2,21,16

38

10,2,5,8

2,7,12

39

2,3,5,11

18,6,23

40

1,2,8,10

16,5,1

41

10,2,11,13

2,16,25

42

2,5,10,12

24,17,6

43

2,9,10,12

17,24,5

44

2,9,10,11

18,2,25

45

2,3,4,10

16,17,2

46

2,4,5,10

16,17,6

47

2,3,5,10

23,17,6

48

2,8,11,12

12,5,18

49

1,2,8,12

19,29,12

50

2,5,8,11

12,7,18

51

1,2,8,11

1,29,12

52

1,2,5,10

16,26,6

53

1,2,5,9

29,1,6

54

1,2,8,11

8,1,12

55

10,2,1,13

5,15,28

Таблица 4.

Номер

задачи

Формулировка задачи

1

Определить количество специальностей.

2

Определить количество студентов, обучающихся в

каждой группе.

3

Определить среднее число студентов в группах.

4

Определить максимальное и минимальное количество

студентов в имеющихся группах.

5

Определить количество групп.

6

Вычислить суммарное количество часов по всем

дисциплинам по каждому виду нагрузки.

7

Определить число читаемых дисциплин.

8

Определить число имеющихся должностей.

9

Вычислить максимальный и минимальный

оклады преподавателей.

10

Определить максимальную и минимальную величины

надбавок, выплачиваемых преподавателям.

11

Определить число надбавок.

12

Определить число кафедр в ВУЗе.

14

Определить общее число преподавателей.

15

Определить общее количество студентов.

16

Определить максимальный и минимальный год

рождения студента.

17

Определить средний возраст студентов.

18

Определить число отделений ВУЗа.

19

Определить количество имеющихся форм обучения.

20

Определить количество дисциплин в каждом семестре.

21

Вычислить число преподавателей на каждой кафедре.

22

Определить суммарное количество лекций, читаемых в

каждом семестре.

23

Определить суммарное количество лекций, читаемых на

каждом курсе.

24

Определить ФИО студентов, обучающихся на

определенной форме обучения.

25

Определить ФИО студентов, обучающихся на

определенном отделении.

26

Определить ФИО студентов, обучающихся на

определенной специальности.

27

Подсчитать средний балл студента при поступлении.

28

Подсчитать число факультетов в ВУЗЕ.

29

30

Определить номера групп на каждой специальности.

Вычислить количество студентов в каждой группе, получивших

оценки ‘отл.’ , ‘хор.’, ‘удовл.’ , ‘неуд.’.

Рекомендации к выполнению курсовой работы по дисциплине «Базы данных».

Курсовая работа (проект) студента - заключительный этап изучения определённой дисциплины.

Цель работы – систематизация и закрепление теоретических знаний, полученных за время обучения, а также приобретение и закрепление навыков самостоятельной работы.

Курсовая работа должна быть подготовлена к защите в срок, устанавливаемый преподавателем.

К защите курсовой работы предоставляется:

-пояснительная записка;

-программная реализация на дисковом носителе.

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

С созданной базой необходимо выполнить ряд операций по её ведению, а именно:

возможность модификации структуры БД (структура БД должна содержать не менее 4 - 5 таблиц, реализованных  20 записями);

удаление записей по заданному пользователем условию с обеспечением целостности данных связных таблиц;

очистка отдельных таблиц базы данных с сохранением их структуры с условием ввода правильного пароля на очистку;

просмотр БД или отдельных её таблиц (организация справочников);

добавление новых записей в базу с обеспечением целостности данных связных таблиц;

редактирование данных (отдельно выбранной записи в специально организованном диалоговом окне);

упорядочивание существующих записей в таблицах БД по одному или нескольким ключам (возможно как результат SQL-запроса);

поиск записей по ключу, который может иметь диапазонный характер (возможно как результат SQL-запроса);

формирование отчётов различного характера в текстовом виде или в виде диаграмм;

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

Текст работы оформляется в виде пояснительной записки в соответствии с требованиями ГОСТ 2.105.95 "Общие требования к текстовым документам" в объеме 8-40 страниц формата А4. Изложение должно быть последовательным, логичным, конкретным.

Пояснительная записка к курсовой работе должна содержать:

титульный лист;

содержание пояснительной записки, включающее наименование всех разделов и пунктов с указанием номеров страниц;

введение, в котором обосновывается актуальность темы, указываются цель и задачи исследований;

теоретическую и исследовательскую часть, в которой анализируется постановка задачи (и, если необходимо, её дополнение или модификация), поэтапное проектирование и обоснование разработанной структуры БД (инфологической (ERD) модели, даталогической и физической). При этом могут быть использованы средства автоматизации проектирования ИС, БД (различные CASE-системы, типа ERWin, BPWin, Rational Rose и пр.)

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

Руководство оператору может содержать программные и аппаратные характеристики СУБД. Конкретно, предъявляемые требования к комплексу технических средств (тип вычислительной системы, ее быстродействие, объем внутренней и внешней памяти , требуемое дополнительное периферийное оборудование и пр.) и описание свойств программного файла (объем занимаемой памяти, скорость выполнения, требуемая программная поддержка: тип операционной системы, дополнительные инструментальные и прикладные программы и пр.).

Информация в Руководстве пользователю излагается доступно и понятно, полноценно освещает все моменты, с которыми непрограммирующему пользователю придется сталкиваться при работе с Вашей системой (например, выполнении операций по ведению БД и занесении информации в окна диалога).

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

заключение с краткими выводами по результатам работы и предложениями по их использованию;

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

Работа оформляется с использованием текстового редактора Word и распечатывается на принтере. Текст пояснительной записки к курсовой работе делится на разделы, подразделы и пункты. Размещение текста - с одной стороны листа. Размер шрифта - 14, поля слева - 30 мм, сверху и справа - по 15 мм, снизу - 20 мм. Нумерация страниц - внизу по середине. Первая страница - титульный лист, вторая - задание, далее - оглавление и текст (номера первых двух страниц не указываются). Оглавление создается автоматически средствами текстового редактора.

Для вставки формул используется редактор формул Microsoft Equation. Формулы нумеруются в пределах каждого раздела, номер указывается справа от формулы - у правой границы текста, в круглых скобках по образцу (3.6) - шестая формула в третьем разделе.

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

Ссылки на литературные источники указываются в квадратных скобках; при ссылке на информацию, полученную в Internet, указывается соответствующий электронный адрес. Список литературы, использованной при выполнении работы, приводится в конце текста по образцам:

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ»

Факультет ЭФ Направление 230700 Прикладная информатика

Кафедра ЭФ–2 “Экономические информационные системы”

Дисциплина Базы данных

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе на тему:

Студент

подпись фамилия и инициалы

Группа шифр

Обозначение проекта КР-2068752-020700/5244-ЭФ2-19-12

Работа защищена на оценку

Руководитель проекта

подпись фамилия и инициалы

Члены комиссии:

подпись фамилия и инициалы

подпись фамилия и инициалы

подпись фамилия и инициалы

Москва 2012

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ»

Факультет (филиал)__________ специальность (направление)230700_____

Кафедра ЭФ-2 «Экономические информационные системы»

Дисциплина Базы данных

ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ (РАБОТУ)

Студент_____________________шифр_______________группа_____________

1.Тема:______________________________________________________________ ________________________________________________________________

_______________________________________________________________

2 Срок представления проекта (работы) к защите______________20__г.

3 Исходные данные для разработки_______________________________

__________________________________________________________________

__________________________________________________________________

4 Содержание пояснительной записки:

Титульный лист

Задание

Содержание

Введение

1 __________________________________________________________

2 ___________________________________________________________

3 ___________________________________________________________

4 __________________________________________________________

5 __________________________________________________________

Заключение

Список использованных источников

5 Перечень графического материала: __________________________________

__________________________________________________________________

Руководитель проекта (работы) ______________________________________

подпись, дата инициалы и фамилия

Задание принял к исполнению_______________________________________

подпись, дата инициалы и фамилия

Литература.

1. Дейт К. Дж. Введение в системы баз данных. 8-е издание.: Пер. с англ. — М.: Вильямс, 2008. — 1328 с.

2. Гончаров А.Ю. Access 2007. Справочник с примерами. — М.: КУДИЦ-ПРЕСС, 2008. — 296 с.

3. Балтер Элисон. Профессиональное программирование в Microsoft Offiсe Access 2007.: Пер. с анг. — М.: Вильямс, 2010 — 1296 с.

4. Сайлер Брайан, Споттс Джефф. Использование Visual Basic 6. Специальное издание.: Пер. с англ. — М.: Вильямс, 2010. — 832 с.

5.Хомоненко А., Цыганков В. Базы данных: учебник для высших учебных заведений, - М.: Корона, 2010.

6.Нурматова Е.В., Шилина Е.М. Базы данных. Учебно-методическое пособие к выполнению лабораторных и курсовых работ (специальность 351400 «Прикладная информатика в экономике»)– М.:МГАПИ, 2005. – 140 с.

Издается в авторской редакции

Подписано к печати 11.09.2012 г. Формат 60х84. 1/16.

Объем 2,25 п.л. Тираж 100 экз. Заказ № 131.

Московский государственный университет

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]