Пример создания БД "Материалы" с помощью Access

КОНТРОЛЬНАЯ   РАБОТА

по курсу «Информационные технологии в экономике»

для специальности «Экономика и управление АП»

В реляционной СУБД Microsoft Access создание базы данных МАТЕРИАЛЫ.

Задание выполнено с использованием Microsoft Access – 2002.

После запуска Access в правом окне «Создание файла», если окна нет его можно запустить выбрав из меню «Файл» и «Создать», выбираем пункт «Новая база данных». В появившемся окне в своей директории сохраняем БД под уникальным именем, в нашем случае «Kolpakov».

1. Создание таблиц.

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

1.     НОМЕНКЛАТУРА МАТЕРИАЛОВ – КодМатериала, Материал.

2.     ПОСТАВЩИКИ – КодПоставщика, Поставщик.

3.     ПОСТАВКА МАТЕРИАЛОВ – КодПоставщика, КодМатериала, ДатаПоставки, ЕдИзмерения, Количество, Цена.

Для создания таблицы НОМЕНКЛАТУРА МАТЕРИАЛОВ выполняем следующие действия:

-   В окне созданной базы, находясь в пункте меню «Таблицы», нажимаем пункт «Создание таблицы в режиме конструктора».

-   В появившемся окне в первой строке графы «имя поля», набираем имя «КодМатериала», тип данных выбираем счетчик и нажав на правую кнопку мыши из появившегося меню выбираем пункт «Ключевое поле».

-   Во второй строке в графе «имя поля» набираем «Материал», тип данных выбираем текстовый, в свойствах поля размер поля оставляем как предлагается по умолчанию 50, считая, что название материала не будет содержать более 50 знаков.

-   Закрываем конструктор, выбираем сохранить изменения и в появившемся окне вводим имя таблицы «НОМЕНКЛАТУРА МАТЕРИАЛОВ» и нажимаем «ОК».

Для создания таблицы ПОСТАВЩИКИ выполняем те же действия но создаем следующие поля со свойствами:

-   КодПоставщика – тип счетчик и ключевое поле.

-   Поставщик – тип текстовый.

-   Закрываем конструктор и сохраняем таблицу под именем «ПОСТАВЩИКИ».

Созданные две таблицы будет в дальнейшем использоваться как словари при вводе данных в основную таблицу «ПОСТАВКА МАТЕРИАЛОВ», чтобы не вводить повторяющиеся значения такие как название материала и название поставщика. При этом в таблицу «ПОСТАВКА МАТЕРИАЛОВ» будут вводится только числовые коды поставщика и материала, а сами текстовые названия поставщика и материала будут браться потом автоматически по созданной связи из таблиц «НОМЕНКЛАТУРА МАТЕРИАЛОВ» и «ПОСТАВЩИКИ».  Так будут соблюдены правила по нормализации таблиц БД, отсутствуют избыточные значения.

Основная таблица содержащая все основные данные это таблица «ПОСТАВКА МАТЕРИАЛОВ» создаем также в режиме конструктора с полями и следующими свойствами:

-   КодПоставщика – тип числовой, свойство размер поля оставляем как предлагается по умолчанию «длинное целое», для организации связи с полем «КодПоставщика» из таблицы «ПОСТАВЩИКИ», свойство индексированное поле оставляем так же как и предложено по умолчанию «Да (допускаются совпадения)», т.к. связь между таблицами устанавливается только по индексированным полям.

-   Также поле КодМатериала – с теми же свойствами, только связь этого поля будет в дальнейшем с полем «КодМатериала» из таблицы «НОМЕНКЛАТУРА МАТЕРИАЛОВ».

-   ДатаПоставки – тип данных «Дата/время», свойство формат поля «Краткий формат даты», свойство подпись «Дата поставки».

-   ЕдИзмерения – тип текстовый, свойство размер поля ставим 10, свойство подпись «Ед.изм.».

-   Количество – тип данных Числовой».

-   Цена – тип данных денежный, свойство формат поля «Денежный».

-   Закрываем конструктор, сохраняем изменение, название таблицы набираем «ПОСТАВКА МАТЕРИАЛОВ», на предложение создать ключевое поле отвечаем нет.

2. Построение информационной схемы базы.

Создаем связи между таблицами, для этого на панели инструментов нажать кнопку  - схема данных. В появившемся окне «Добавление таблицы» выбрать таблицу «НОМЕНКЛАТУРА МАТЕРИАЛОВ» и двойным щелчком левой кнопки мыши или кнопкой «Добавить» добавить таблицу в окно «Схема данных» находящегося пока за окном «Добавление таблицы». Также добавить и другие таблицы «ПОСТАВКА МАТЕРИАЛОВ» и «ПОСТАВЩИКИ». Нажать кнопку «Закрыть».

В окне «схема данных» будут находится все три таблицы с полями, ключевые поля будут выделены жирным шрифтом. Левой копкой мыши захватить поле «КодМатериала» из таблицы «НОМЕНКЛАТУРА МАТЕРИАЛОВ» перетащить его на поле «КодМатериала» таблицы «ПОСТАВКА МАТЕРИАЛОВ» и отпустить копку мыши. В появившемся окне поставить галочку в поле флажка «Обеспечение целостности данных» и поставить галочки в полях флажков «каскадное обновление связанных полей» и «каскадное удаление вязанных полей». Данные действия будут теперь выполнятся автоматически и это будет обеспечивать целостность и правильность данных в БД. Нажать кнопку «Создать». От таблицы «НОМЕНКЛАТУРА МАТЕРИАЛОВ» к таблице «ПОСТАВКА МАТЕРИАЛОВ» протянулась линия  со значками 1 и ¥, что означает связь один-ко-многим. То есть одному коду материала в таблице «НОМЕНКЛАТУРА МАТЕРИАЛОВ» будет соответствовать несколько записей с таким же кодом материала в таблице «ПОСТАВКА МАТЕРИАЛОВ».

Также поступаем с полем «КодПоставщика» из таблицы «ПОСТАВЩИКИ» и перетаскиваем его на поле «КодПоставщика» из таблицы «ПОСТАВКА МАТЕРИАЛОВ». Связь аналогичная как рассмотрели выше.

Если внимательно посмотреть на схему данных то мы увидим, что автоматически образовалась связь типа многие-ко-многим, для таблиц «НОМЕНКЛАТУРА МАТЕРИАЛОВ» и «ПОСТАВЩИКИ», через таблицу «ПОСТАВКА МАТЕРИАЛОВ». То есть один поставщик может поставлять несколько материалов, что будет отражено в таблице «ПОСТАВКА МАТЕРИАЛОВ» и будет это видно в отчете «Поступление материалов от поставщиков по видам», в то же время один материал может поставляться несколькими поставщиками, что будет также отражено в таблице «ПОСТАВКА МАТЕРИАЛОВ» и будет видно в отчете «Поступление материалов по видам от поставщиков».

Закрываем окно «Схема данных», на вопрос о сохранении отвечаем да.

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

 SHAPE  * MERGEFORMAT

НОМЕНКЛАТУРА МАТЕРИАЛОВ

КодМатериала

Материал

ПОСТАВЩИКИ

КодПоставщика

Поставщик

ПОСТАВКА МАТЕРИАЛОВ

КодПоставщика

КодМатериала

ДатаПоставки

Количество

ЕдИзмерения

Цена

ЗАПРОС

ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ОТ ПОСТАВЩИКОВ ПО ВИДАМ

Поставщик

Материал

ДатаПоставки

ЕдИзмерения

Количество

Цена

Сумма

ЗАПРОС

ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ПО ДАТАМ ЗА ОПРЕДЕЛЕННЫЙ ПЕРИОД

ДатаПоставки

Поставщик

Материал

Количество

Сумма

ОТЧЕТ

Поступление материалов от поставщиков по видам

ОТЧЕТ

Поступление материалов по видам от поставщиков

ОТЧЕТ

Поступление материалов по датам за определенный период

Как видно из информационной схемы моя база данных основывается на трех таблицах «НОМЕНКЛАТУРА МАТЕРИАЛОВ», «ПОСТАВЩИКИ» и «ПОСТАВКА МАТЕРИАЛОВ». В этих таблицах содержатся все необходимые данные. На основании этих трех таблиц создается запрос «Поступление материалов от поставщиков по видам» с полями из следующих таблиц:

-   «ПОСТАВЩИКИ» – поле  «Поставщик», данное поле автоматически находится для соответствующей записи из таблицы «ПОСТАВКА МАТЕРИАЛОВ» с использованием связи по полю «КодПоставщика» и подставляется для кода соответствующее название поставщика.

-   «НОМЕНКЛАТУРА МАТЕРИАЛОВ» – поле «Материал», также автоматически находится с использованием связи по полю «КодМатериала» и подставляется для кода соответствующее название материала.

-   «ПОСТАВКА МАТЕРИАЛОВ» – поля «ДатаПоставки», «ЕдИзмерения», «Количество», «Цена».

В запросе появляется вычисляемое поле «Сумма» которое находится при вычислении запроса как произведение поля «Цена» на поле «Количество» из таблицы «ПОСТАВКА МАТЕРИАЛОВ». Данное поле является условно-постоянным, т.к. на самом деле данное поле в базе данных не сохранятся, а вычисляется каждый раз при производстве запроса на выборку по соответствующим данным.

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

-   «Поступление материалов от поставщиков по видам» – с полями «Поставщик», «Материал», «ДатаПоставки», «ЕдИзмерения», «Количество», «Цена», «Сумма», и группируется данный отчет по полю «Поставщик» на первом уровне и по полю «Материал» на втором.

-   «Поступление материалов по видам от поставщиков» – с полями «Материал», «Поставщик», «Количество», «Цена», «Сумма», и группируется данный отчет по полю «Материал» на первом уровне и по полю «Поставщик» на втором уровне.

Также на основании данного запроса «Поступление материалов от поставщиков по видам» формируется другой запрос «Поступление материалов по датам за определенный период». Суть данного запроса в том, что из всего запроса «Поступление материалов от поставщиков по видам» выбираются только записи за определенный период лежащий между двумя датами и из полей оставляются «ДатаПоставки», «Поставщик», «Материал», «Количество», «Сумма» и группируется данный отчет по полю «ДатаПоставки».

На основании запроса «Поступление материалов по датам за определенный период» формируется отчет «Поступление материалов по датам за определенный период».

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

Данные можно вводить и используя таблицы, открыв их двоным щелчком левой кнопки мыши, однако в данном случае неудобно будет заполнять таблицу «ПОСТАВКА МАТЕРИАЛОВ», поскольку в первые поля надо будет вводить коды материала и поставщика. Для удобства ввода данных в таблицы создаем следующее формы «ПОСТАВЩИКИ», «МАТЕРИАЛЫ» и «ДАННЫЕ О ПОСТАВКЕ МАТЕРИАЛОВ». Для этого переходим в меню «Формы» моей базы данных и нажав два раза левую кнопку мыши запускаем «Создание формы с помощью мастера». Выбираем таблицу «НОМЕНКЛАТУРА МАТЕРИАЛОВ» из полей данной таблицы выбираем поле «Материал» и жмем по кнопке « > », нажимаем «Далее >», выбираем «Ленточный», «Далее >», из списка выбираем «Стандартный», в поле вводим наименование формы «МАТЕРИАЛЫ» и нажимаем кнопку «Готово». Вводим названия материалов. Закрываем форму. При необходимости можно добавить данные нажав два раза  левую кнопку мыши на форме.

Также создаем форму «ПОСТАВЩИКИ»,т.е. запускаем «Создание формы с помощью мастера», выбираем таблицу «ПОСТАВЩИКИ», выбираем поле «Поставщик» по кнопке « > », по копке «Далее >», выбираем «Ленточный» по копке «Далее >», «Стандартный» по копке «Далее >», имя формы оставляем как предложено по имени таблицы .е. «ПОСТАВЩИКИ» и нажимаем копку «Готово». Вводим названия поставщиков. Закрываем форму.

Для создания формы «ДАННЫЕ О ПОСТАВКЕ МАТЕРИАЛОВ» нажимаем «Создание формы с помощью мастера», выбираем таблицу «ПОСТАВКА МАТЕРИАЛОВ» и выбирая поля «ДатаПоставки», «Количество», «Цена», «ЕдИзмерения», и каждый раз нажимая по кнопке « > » переносим данные поля из левого окна в правое, по кнопке «Далее >», выбираем внешний вид формы в один столбец и нажимаем кнопку «Далее >», выбираем «Стандартный» по кнопе «Далее >», набираем имя формы «ДАННЫЕ О ПОСТАВКЕ МАТЕРИАЛОВ», по кнопке «Готово». Закрываем форму и выбрав эту форму щелкаем по правой кнопке мыши выбираем из меню конструктор.  Раздвигаем область данных зацепив мышью нижную границу и сдвигаем поля и надписи соответственно вниз расположив их при этом в том порядке как удобнее вводить данные. Передвигать надписи и поля можно выделив их и зацепив мышью когда курсор примет вид ладони. Регулируем размер полей выделив поле и зацепив соответствующую границу поля когда курсор мыши примет вид двух стрелок. На освободившееся верхнее место с панели элементов ставим «поле со списком», в появившемся окне оставляем «Обьект «поле со списком» будет использовать данные из таблицы или запроса, по кнопке «Далее >», выбираем таблицу «ПОСТАВЩИКИ», по кнопке «Далее >», выбираем поле «Поставщик», по кнопке « > », по кнопке «Далее >», по кнопке «Далее >», выбираем «сохранить в поле», и в правом поле со списком из списка выбираем «КодПоставщика», по кнопке «Далее >», название подписи вводим отставляем как предложено по имени поля т.е. «Поставщик», по кнопке «Готово». Также ниже поставщика ставим поле со списком для ввода материала, при этом отличие в том что выбираем таблицу «НОМЕНКЛАТУРА МАТЕРИАЛОВ» и поле «Материал», а сохраняем в поле «КодМатериала», подпись соответственно «Материал». Закрываем конструктор и на вопрос о сохранении изменений отвечаем Да.

Двумя щелчками левой кнопки мыши на форме Ввод данных о поставке материалов открываем форму для ввода данных и вводим данные.

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

Для дальнейшего формирования отчетов необходимо создать два запроса на выборку это «ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ОТ ПОСТАВЩИКОВ ПО ВИДАМ» и «ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ПО ДАТАМ ЗА ОПРЕДЕЛЕННЫЙ ПЕРИОД».

Вначале формируем запрос «ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ОТ ПОСТАВЩИКОВ ПО ВИДАМ». В меню базы переходим на запросы, щелкаем на «Создание запроса в режиме конструктора», в появившемся окне добавляем все три таблицы это «НОМЕНКЛАТУРА МАТЕРИАЛОВ», «ПОСТАВЩИКИ» и «ПОСТАВКА МАТЕРИАЛОВ», закрываем окно добавления таблиц. С добавлением таблиц сразу отразятся и связи между ними. Зацепив левой кнопкой мыши поле «Поставщик» из таблицы «ПОСТАВЩИКИ» перетаскиваем его в первое поле запроса, также поле «Материал» из таблицы «НОМЕНКЛАТУРА МАТЕРИАЛОВ» перетаскиваем во второе поле запроса, поля «ДатаПоставки», «ЕдИзмерения», «Количество» и «Цена» из таблицы «ПОСТАВКА МАТЕРИАЛОВ» перетаскиваем соответственно в третье, четвертое, пятое и шестое поле запроса. В седьмом поле запроса в верхней строке поместить в нем курсор и щелкнув по правой кнопке мыши из появившегося меню выбрать Построить. В нижнем левом окне нажав на плюс где таблицы открыть их и выбрать таблицу «ПОСТАВКА МАТЕРИАЛОВ». Из появившихся полей в среднем нижнем окне двойным щелчком выбрать поле «Количество», после нажать кнопку со знаком «*» и далее выбрать поле «Цена». В верхнем Нажать «ОК». Перейти в другое поле. Поставив курсор обратно с верхнюю строку седьмого поля запроса вместо слова «Выражение1» набрать «Сумма». Закрыть запрос, сохранить изменения, в появившемся окне ввести имя запроса «ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ОТ ПОСТАВЩИКОВ ПО ВИДАМ» и нажать «ОК».

Далее создаем запрос «ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ПО ДАТАМ ЗА ОПРЕДЕЛЕННЫЙ ПЕРИОД». Нажимаем «Создание запроса в режиме конструктора». В окне «Добавление таблицы» переходим на вкладку запросы, двойным щелчком выбираем запрос «ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ОТ ПОСТАВЩИКОВ ПО ВИДАМ» и закрываем окно. Из запроса «ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ОТ ПОСТАВЩИКОВ ПО ВИДАМ» в верхнем окне захватываем и переносим в поля запроса следующие поля «ДатаПоставки», «Поставщик», «Материал», «Количество» и «Сумма» соответственно в первое, второе, третье, четвертое и пятое поле запроса. В строке условие отбора в первом поле (где стоит ДатаПоставки) ставим курсор и пишем Between [Дата начало периода] And [Дата конец периода]. Закрываем конструктор, сохраняем изменения, и вводим имя запроса «ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ПО ДАТАМ ЗА ОПРЕДЕЛЕННЫЙ ПЕРИОД». Теперь перед выполнением запроса у пользователя будет сначала запрошена Дата начало периода, а затем Дата конец периода и так будет задан период между какими датами отобрать записи.

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

Переходим в меню Отчеты моей базы данных. Мне по заданию необходимо сформировать три отчета это «Поступление материалов от поставщиков по видам», «Поступление материалов по видам от поставщиков» и «Поступление материалов по датам за определенный период».

Для формирования отчета «Поступление материалов от поставщиков по видам» щелкаем «Создание отчета с помощью мастера». Выбираем из списка «Запрос: ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ОТ ПОСТАВЩИКОВ ПО ВИДАМ». Нажав кнопку « >> » выбираем все поля из запроса. Нажимаем кнопку «Далее >». Вид представления данных выбираем ПОСТАВЩИКИ, это первый уровень группировки. Далее выбираем Материал, это второй уровень группировки. Нажимаем «Далее >”. Сортировку записей выбираем по дате. Нажав кнопку «Итоги…» ставим галочку на пересечении строки Сумма и столбца Sum и нажимаем «ОК». Кнопка «Далее >». Выбираем Блок и ориентацию бумаги альбомная, «Далее >». Выбираем Строгий и кнопка «Далее >». Вводим имя отчета «Поступление материалов от поставщиков по видам» и кнопка «Готово». Закрываем отчет. Нажав на данном отчете правую кнопку мыши выбираем Конструктор. Выбираем поле «Sum» примечании для группы `Материал` и примечании для группы `Название поставщика` и удаляем их. Ставим курсор в строку Итоги для материала и исправляем ее на =”Итого по материалу “ & [Материал]. Поле =Sum[Сумма] приподнимаем выше чтобы была в одной строке Итого по материалу. Также поступаем и со строкой Итоги для  поставщика. Поле Ед. изм. уменьшаем в длине, а увеличиваем поле Дата поставки, также поступив и с соответствующими полями в области данных. Поля Дата поставки и другие в свойствах выбираем выравнивание по центру. Ну и так далее производим изменения, что бы поля хорошо читались не наползали друг на друга и помещались все выводимые данные. Закрываем отчет и сохраняем изменения.

Также создаем отчет «Поступление материалов по видам от поставщиков» только выбираем не все поля из запроса, а только поля «Материал», «Поставщик», «Количество», «Цена» и «Сумма» и группировка первый уровень по материалам а второй по поставщикам.

Создаем отчет «Поступление материалов по датам за определенный период». Для этого запускаем Создание отчета с помощью мастера, выбираем «запрос: ПОСТУПЛЕНИЕ МАТЕРИАЛОВ ПО ДАТАМ ЗА ОПРЕДЕЛЕННЫЙ ПЕРИОД». Из полей нажав кнопку «>>» выбираем все поля, кнопка «Далее >». Выбираем ПОСТАВКА МАТЕРИАЛОВ и кнопка «Далее >». Выбираем уровень группировки по ДатеПоставки нажав это поле два раза левой кнопкой мыши. Нажимаем кнопку «Группировка» и выбираем интервал группировки по дням, и кнопка «ОК». Кнопка «Далее >». Сортировку выбираем по полю ДатаПоставки. Нажимаем кнопку «Итоги» и ставим галочку на пересечении строки Сумма и столбца Sum. Кнопка «ОК» и «Далее >». Выбираем макет Блок, ориентация альбомная и кнопку «Далее >». Строгий и кнопка «Далее >». Вводим имя отчета «Поступление материалов по датам за определенный период» и кнопка «Готово». Закрываем отчет и открываем его в режиме конструктора и производим настройки.