Файл: Построение системы управления базами данных.doc

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 05.12.2023

Просмотров: 153

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

rs.Open "Клиенты", cn, adOpenDynamic, adLockOptimistic

rs.MoveFirst

TextBoxIdClient.Text = rs.Fields("Id Клиента").Value

TextBoxFirstName.Text = rs.Fields("Фамилия").Value

TextBoxSecondName.Text = rs.Fields("Имя").Value

TextBoxThirdName.Text = rs.Fields("Отчество").Value

TextBoxGender.Text = rs.Fields("Пол").Value

TextBoxAddress.Text = rs.Fields("Адрес").Value

TextBoxPhoneNamber.Text = rs.Fields("Телефон").Value

Exit Sub

ErrorHandler:

If ("База данных была приведена пользователем 'Admin' на компьютере 'DESKTOP-AEOHGQF' в состояние, препятствующее ее открытию или блокировке." = Err.Description) Then

DoCmd.Close

DoCmd.OpenForm "Клиенты"

Err.Clear

End If

If ("Операция не допускается, если объект открыт." = Err.Description) Then

MsgBox "Подключение уже установлено!"

End If

End Sub

Пример кнопки «Удалить»:

Private Sub CommandDelete_Click()

rs.Delete

TextBoxIdClient.Text = ""

TextBoxFirstName.Text = ""

TextBoxSecondName.Text = ""

TextBoxThirdName.Text = ""

TextBoxGender.Text = ""

TextBoxAddress.Text = ""

TextBoxPhoneNamber.Text = ""

End Sub

Пример кнопки «Дальше»:

Private Sub CommandNext_Click()

If (rs.EOF = False) Then rs.MoveNext

If (rs.EOF) Then

MsgBox ("Дальше нет данных")

Exit Sub

End If

TextBoxIdClient.Text = rs.Fields("Id Клиента").Value

TextBoxFirstName.Text = rs.Fields("Фамилия").Value

TextBoxSecondName.Text = rs.Fields("Имя").Value

TextBoxThirdName.Text = rs.Fields("Отчество").Value

TextBoxGender.Text = rs.Fields("Пол").Value

TextBoxAddress.Text = rs.Fields("Адрес").Value

TextBoxPhoneNamber.Text = rs.Fields("Телефон").Value

End Sub

Запросы
Запрос – вопрос к БД, ответом на который будет служить одна, ни одной, или несколько записей удовлетворяющих критериям запроса. Задаваемы в запросе условия – значения конкретных полей – называются критериями отбора.

Запросы позволяют:

  • фильтровать и сортировать данные;

  • производить расчёты;

  • группировать записи (рассчитывая различные итоговые значения);

  • вносить изменения сразу в несколько записей;

  • создавать таблицы, как результат запроса.



Типы запросов


  1. Запрос на выборку – осуществляет загрузку и отображение записей в режиме таблицы.

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

  3. Запрос на изменение – помогает выполнить операции с записями, удовлетворяющими заданным критериям: запрос на удаление удаляет их таблицы заданные записи; запрос на обновление изменяет соответствующие записи таблицы; запрос на добавление добавляет в конец таблицы новые записи (соответствующие условиям отбора); запрос на создание таблицы создаёт новые таблицы, состоящие из заданных частей.

  4. Запрос с параметрами – позволяет ввести информацию, используемую в качестве критериев отбора.



В своей работе я создал 4 различных запросов (с точным совпадением, с неточным совпадением, с группировкой, с вычисляемым полем).

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

Список всех запросов представлен на рисунке 6.



Рисунок 6 — Список запросов в БД «Гостиница»

Далее представлен запрос (рисунок 7) в режиме конструктора, с неточным поиском, который выводит данные клиентов, в Фамилии которых присутствуют заданные параметры «Не точный поиск» (начальные буквы/слоги фамилии).



Рисунок 7 — запрос поиск по Фамилии в режиме конструктора БД «Гостиница».
Далее представлен запрос после выполнения (рисунок 8). Введем, например, начальные буквы фамилии, так как реализован запрос с неточным поиском.



Рисунок 8 — запрос начального параметра в БД «Гостиница».
Далее (рисунок 9) получаем нужный результат:



Рисунок 9 — результат запроса в БД «Гостиница»
Если нам нужен запрос с точным совпадением, в условие отбора достаточно ввести квадратные скобки «[ ]». И в результате будет открыто диалоговое окно, предлагая ввести точные значения. Если внутри квадратных скобок написать текст, то диалоговое окно будет иметь сообщение с этим текстом.



Рисунок 9 — Запрос поиск по номеру заселения в режиме конструктора БД «Гостиница».


Рисунок 10 — Пример выполнения запроса с точным совпадением БД «Гостиница».
Пример программы для обработки запроса «Поиск по номеру заселения»

Private Sub CommandVisits_Click()

Dim comsql As String

Dim frm As Form

Dim ctl As Control

Dim i As Integer

Dim nomer As String

cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Admin\Desktop\Курсовая\Гостиница.accdb;Persist Security Info=False;"

cn.Open

rs.CursorLocation = adUseClient

rs.CursorType = adOpenDynamic

rs.LockType = adLockOptimistic

nomer = InputBox("Введите № Заселения: ")

If (nomer = "" Or Not (IsNumeric(nomer))) Then

MsgBox ("Введено неверное значение")

cn.Close

Exit Sub

End If

comsql = "SELECT Заселения.[№ Заселения], Клиенты.Фамилия, Клиенты.Имя, Клиенты.Отчество, Клиенты.Телефон, Гостиницы.Название FROM Гостиницы INNER JOIN (Клиенты INNER JOIN Заселения ON Клиенты.[Id Клиента] = Заселения.[Id Клиента]) ON Гостиницы.Название = Заселения.Гостиница WHERE (((Заселения.[№ Заселения]) Like '%" & nomer & "%'));"



On Error GoTo ErrorHandler

rs.Open comsql, cn, adOpenKeyset

rs.MoveFirst

Set frm = CreateForm

With frm

.Caption = "Поиск по номеру заселения"

.ScrollBars = 0

.RecordSelectors = False

.NavigationButtons = False

.DividingLines = False

.AutoCenter = True

.BorderStyle = 3

.Section(0).Height = 3.862 * appCM

.Width = 10.926 * appCM

.HasModule = True

End With

Dim ctlText As Control

Dim intDataX As Integer, intDataY As Integer

intDataX = 100

intDataY = 100

i = 0

Set ctlText = CreateControl(frm.Name, acLabel, , "", "№ Заселения", intDataX, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", "Фамилия", intDataX + 3000, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", "Имя", intDataX + 6000, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", "Отчество", intDataX + 11000, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", "Телефон", intDataX + 14000, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", "Гостиница", intDataX + 17000, intDataY)

intDataY = intDataY + 300

While i < rs.RecordCount

Set ctlText = CreateControl(frm.Name, acLabel, , "", rs.Fields("№ Заселения").Value, intDataX, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", rs.Fields("Фамилия").Value, intDataX + 3000, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", rs.Fields("Имя").Value, intDataX + 6000, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", rs.Fields("Отчество").Value, intDataX + 11000, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", rs.Fields("Телефон"), intDataX + 14000, intDataY)

Set ctlText = CreateControl(frm.Name, acLabel, , "", rs.Fields("Название"), intDataX + 17000, intDataY)

intDataY = intDataY + 300

rs.MoveNext

i = i + 1

Wend

DoCmd.OpenForm frm.Name

rs.Close

cn.Close

Exit Sub

ErrorHandler:

If ("База данных была приведена пользователем 'Admin' на компьютере 'DESKTOP-AEOHGQF' в состояние, препятствующее ее открытию или блокировке." = Err.Description) Then

DoCmd.Close

DoCmd.OpenForm "Для запросов"

Err.Clear

End If

End Sub

Так же добавлена обработка ошибок на случай если пользователь оставит поле «ввода» пустым или же введет неверные данные.

Пример:



Рисунок 11 — Диалоговое окно запроса БД «Гостиница».

Результат:



Рисунок 12 —Ошибка БД «Гостиница».

Отчеты
Отчёт – форма для обработки данных на бумажных носителях.

Содержание отчётов:

  1. Элементы оформления.

  2. Схемы и диаграммы.

  3. Верхние и нижние колонтитулы, содержащие служебную информацию.

  4. Графические элементы управления, в том числе фотографии и иллюстрации.

Режимы работы с отчётом:

  1. Конструктор

  2. Образец

  3. Предварительный просмотр

Создание отчета с помощью мастера отчетов

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

  • на вкладке «Создание» в группе «Отчеты» выберите «Мастер отчетов»;

  • следуйте указаниям на страницах мастера отчетов. На его последней странице нажмите кнопку «Готово».


Создание отчета с помощью средства "Отчет"

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

  • В области навигации щелкните таблицу или запрос, на основе которых вы хотите создать отчет.

  • На вкладке «Создание» в группе «Отчеты» выберите «Отчет».

Access создаст отчет и отобразит его в режиме макета.

Создание отчета с помощью средства "Пустой отчет"

Если вам не подходят ни средство "Отчет", ни мастер отчетов, можно создать отчет с нуля при помощи средства "Пустой отчет". Это очень быстрый способ, особенно если в отчет нужно добавить всего несколько полей. Чтобы воспользоваться средством "Пустой отчет", выполните следующие действия:

  • на вкладке Создание в группе Отчеты выберите Пустой отчет;

  • в режиме макета будет открыт пустой отчет, а в правой части окна Access появится область "Список полей";

  • в области Список полей щелкните знак плюс (+) рядом с одной или несколькими таблицами, содержащими поля, которые вы хотите включить в отчет;

  • по очереди перетащите каждое из полей в отчет либо, нажав и удерживая клавишу CTRL, выберите несколько полей и перетащите их одновременно;

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



Разделы отчета



Отчет Access состоит из нескольких разделов. Разделы можно просматривать в режиме конструктора. Чтобы создавать полезные отчеты, необходимо понимать, для чего используется каждый раздел. Например, от того, в каком разделе размещается вычисляемый элемент управления, зависит то, как Access рассчитывает результаты.


В следующем списке описаны разделы отчета и их использование:

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

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

  • заголовок группы. Печатается в начале каждой новой группы записей. Заголовок группы служит для печати имени группы. Например, в отчете, сгруппированном по товарам, заголовок группы можно использовать для печати названия товара. Если в заголовке группы есть вычисляемый элемент управления с агрегатной функцией Sum, сумма вычисляется для текущей группы.

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

  • примечание группы. Печатается в конце каждой группы записей. Примечание группы можно использовать для печати сводной информации о ней.

  • нижний колонтитул. Выводится в конце каждой страницы. Используется для нумерации страниц и печати сведений, относящихся к странице.

  • примечание отчета. Печатается один раз в конце отчета. Примечание отчета можно использовать для печати итогов и другой сводной информации по всему отчету.



Рисунок 13 — Отчет «Результаты стоимостей номеров» в режиме конструктора БД «Гостиница».

Список всех отчетов, созданных для БД «Гостиница» и их выводом в Word и Excel, представлен на рисунке 14.


Рисунок 14 — Список всех отчетов БД «Гостиница».

Далее представлены отчет «Общая сводка по Заселениям» и «Результаты стоимостей номеров» в БД «Гостиница» (рисунок 15):



Рисунок 15 — Отчет Общая сводка по Заселениям в БД «Гостиница».