Структура базы данных. ER-диаграмма. Таблицы. Запросы, описание, формы, отчеты, страница 2

SELECT Турагентство.[НазваниеТура], Турагентство.Цена, Турагентство.[НАЛИЧИЕ]

FROM Турагентство

WHERE (((Турагентство.Цена)>100));

  • агрегатные функции

SELECT Заказ.[Покупатель], SUm(Количество) AS сумма

FROM Заказ

GROUP BY Заказ.[Покупатель];

  • вычисление в запросе

SELECT турагентство.[НазваниеТура], турагентство.Цена, турагентство.Наличие, Цена*Наличие AS Стоимость

FROM турагентство;

  • union join (объединение)

SELECT турагентство.[НазваниеТура], турагентство.Цена, турагентство.Наличие

FROM турагентство

WHERE (((турагентство.цена)>10000));

UNION SELECT турагентство.[НазваниеТура], турагентство.Цена, турагентство.Наличие

FROM турагентство

WHERE (((турагентство.наличие)>2));

  • left join

SELECT Заказ.[ НазваниеТура], Заказ.Количество, турагентство.[НазваниеТура], турагентство.Наличие

FROM турагентство LEFT JOIN Заказ ON турагентство.[ НазваниеТура]=заказ.[НазваниеТура];

  • inner join

SELECT Заказ.[ НазваниеТура], Заказ.Покупатель, Заказ.Количество, Покупатель.Телефон

FROM Заказ INNER JOIN Покупатель ON Заказ.Покупатель=Покупатель.Покупатель;

  • right join

SELECT Заказ.[ НазваниеТура], Заказ.Количество, турагентство.[ НазваниеТура], турагентство.наличие

FROM турагентство RIGHT JOIN Заказ ON турагентство.[ НазваниеТура]=Заказ.[ НазваниеТура];

Реляционные:

  • Разность

SELECT [НазваниеТура], наличие

FROM турагентство

WHERE турагентство.[ НазваниеТура] not In (select заказ.[ НазваниеТура]  from Заказ );

  • Пересечение

SELECT [НазваниеТура], Наличие

FROM турагентство

WHERE турагентство.[ НазваниеТура] In (select Заказ.[ НазваниеТура]  from Заказ );

  • Декартово произведение

SELECT *

FROM заказ, покупатель;

Рис. 14. Форма

Рис. 15. Отчет

ОПИСАНИЕ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА

В ходе разработки взаимосвязи Excelи Access спроектирован интерфейс посредством флажков, переключателей, текстовых полей, списков, вкладкок.

Рис. 16. Окно вкладки Туры

Рис. 17. Окно вкладки Сотрудники

ОБРАБОТКА ОШИБОК

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

Рис. 18. Сообщение об ошибках

Заключение

Спроектирована информационная система турагенства. Изучена технология визуального проектирования UML, СУБД Access и язык программирования VBA, методы защиты и разграничения доступа к данным, методы доступа к данным посредством DAO.


Приложение

Листинг программы

Option Compare Database

Option Explicit

Private Sub knopkaCena_Click()

Dim db As Database

Dim req As QueryDef

Dim cena As Long

Set db = CurrentDb

On Error GoTo er

db.QueryDefs.Delete ("Запрос2")

cena = poleCena.Value

Set req = db.CreateQueryDef("Запрос2")

If cena < 5000 Then

GoTo Error

Else:

req.SQL = "SELECT * FROM Tur WHERE Tur.Стоимость <=" & "" & cena & ""

DoCmd.OpenQuery ("Запрос2")

Exit Sub

Error:

MsgBox "Слишком маленьком маленькую цену вы готовы потратить"

End If

Exit Sub

er:

MsgBox "Введите пожалуйста стоимость"

End Sub

Private Sub knopkacotrudnik_Click()

Dim db As Database

Dim req As QueryDef

Dim S As Long

Set db = CurrentDb

On Error GoTo er

db.QueryDefs.Delete ("Запрос")

S = fio.Value

Set req = db.CreateQueryDef("Запрос")

req.SQL = "SELECT * FROM Продажи WHERE Продажи.Турагент =" & "" & S & ""

DoCmd.OpenQuery ("Запрос")

Exit Sub

er:

MsgBox "Выберите сотруднка"

End Sub

Private Sub knopkaData_Click()

Dim db As Database

Dim req As QueryDef

Dim dt As Single

Set db = CurrentDb

dt = Calendar.Value

db.QueryDefs.Delete ("Запрос4")

Set req = db.CreateQueryDef("Запрос4")

req.SQL = "SELECT * FROM Tur WHERE Tur.ДатаВылета =" & "" & dt & ""

DoCmd.OpenQuery ("Запрос4")

End Sub

Private Sub knopkakolvo_Click()

Dim db As Database

Dim req As QueryDef

Set db = CurrentDb

On Error GoTo er

Select Case Группа68.Value

Case 1

db.QueryDefs.Delete ("Запрос3")

Set req = db.CreateQueryDef("Запрос3")

req.SQL = "SELECT * FROM Продажи WHERE Продажи.КоличествоПроданныхТуров >2"

DoCmd.OpenQuery ("Запрос3")

Case 2

db.QueryDefs.Delete ("Запрос3")

Set req = db.CreateQueryDef("Запрос3")

req.SQL = "SELECT * FROM Продажи WHERE Продажи.КоличествоПроданныхТуров <2"

DoCmd.OpenQuery ("Запрос3")

End Select

Exit Sub

er:

MsgBox "Ошибка ввода данных. Выберите критерии отбора"

End Sub

Private Sub knopkaTur_Click()

Dim db As Database

Dim req As QueryDef

Set db = CurrentDb

db.QueryDefs.Delete ("Запрос5")

Set req = db.CreateQueryDef("Запрос5")

If otel.Value = True And zvezda.Value = True Then

DoCmd.OpenTable ("Tur")

End If

If otel.Value = False And zvezda.Value = True Then

DoCmd.OpenTable ("Запрос6")

End If

If otel.Value = True And zvezda.Value = False Then

DoCmd.OpenTable ("Запрос7")

End If

If zvezda.Value = False And otel.Value = False Then

MsgBox "выберете данные"

End If

End Sub