FROM statya INNER JOIN (marka INNER JOIN ((avtolyub INNER JOIN avto ON avtolyub.ka = avto.ka) INNER JOIN protokol ON avto.gn = protokol.gn) ON marka.nma = avto.nma) ON statya.nsya = protokol.nsya
WHERE (((avto.gn)=[Forms]![DobNarush]![ПолеСоСписком0]));
Запрос 5. определить самого активного инспектора, подсчитав количество правонарушений и сумму штрафов им зафиксированных
SELECT inspektor.fi, Count(protokol.nr) AS Колличество, Sum(protokol.ssh) AS Сумма
FROM inspektor INNER JOIN protokol ON inspektor.ki = protokol.ki
GROUP BY inspektor.fi
ORDER BY Count(protokol.nr) DESC;
4. По построенным таблицам создадим формы.
Форма 1. добавление новой машины определенному автолюбителю.
Рис. 9.
Private Sub Кнопка33_Click()
Dim base As Database
Dim rec As Recordset
Me.ПолеСоСписком0.SetFocus
If Me.ПолеСоСписком0.Text = "" Then MsgBox "Выберите ФИО авторюбителя": End
Me.Поле15.SetFocus
If Me.Поле15.Text = "" Then MsgBox "Введите Гос №": End
Me.ПолеСоСписком17.SetFocus
If Me.ПолеСоСписком17.Text = "" Then MsgBox "Выберите марку": End
Me.Поле19.SetFocus
If Me.Поле19.Text = "" Then MsgBox "Введите год выпуска": End
Me.Поле21.SetFocus
If Me.Поле21.Text = "" Then MsgBox "Введите № кузова": End
Me.Поле23.SetFocus
If Me.Поле23.Text = "" Then MsgBox "Введите № двигателя": End
Me.Поле25.SetFocus
If Me.Поле25.Text = "" Then MsgBox "Введите № шосси": End
Me.ПолеСоСписком27.SetFocus
If Me.ПолеСоСписком27.Text = "" Then MsgBox "Выберите цвет": End
'Создание нового объекта:
Set base = CurrentDb ' откроем текущую БД
Set rec = base.OpenRecordset("SELECT ka,gn,nma,gv,nk,nd,nsh,cv,iu FROM [avto]") 'открыть таблицу
rec.Edit
Me.Поле15.SetFocus
rec.FindFirst "gn= '" & Me.Поле15.Text & "'"
'если запись уже есть
If Not rec.NoMatch() Then
MsgBox "Машина с таким гос № уже есть": Me.Поле15.Text = "": End
End If
rec.AddNew 'добавить новую запись
Me.ПолеСоСписком0.SetFocus
rec!ka = Me.ПолеСоСписком0.Column(0)
Me.Поле15.SetFocus
rec!gn = Me.Поле15.Text
Me.ПолеСоСписком17.SetFocus
rec!nma = Me.ПолеСоСписком17.Column(0)
Me.Поле19.SetFocus
rec!gv = Me.Поле19.Text
Me.Поле21.SetFocus
rec!nk = Me.Поле21.Text
Me.Поле23.SetFocus
rec!nd = Me.Поле23.Text
Me.Поле25.SetFocus
rec!nsh = Me.Поле25.Text
Me.ПолеСоСписком27.SetFocus
rec!cv = Me.ПолеСоСписком27.Text
Me.Флажок29.SetFocus
rec!iu = Me.Флажок29
rec.Update 'обновление БД
Me.Список13.Requery
MsgBox "Добавлено"
'Me.ПолеСоСписком0.SetFocus
'Me.ПолеСоСписком0.Text = ""
Me.Поле15.SetFocus
Me.Поле15.Text = ""
Me.ПолеСоСписком17.SetFocus
Me.ПолеСоСписком17.Text = ""
Me.Поле19.SetFocus
Me.Поле19.Text = ""
Me.Поле21.SetFocus
Me.Поле21.Text = ""
Me.Поле23.SetFocus
Me.Поле23.Text = ""
Me.Поле25.SetFocus
Me.Поле25.Text = ""
Me.ПолеСоСписком27.SetFocus
Me.ПолеСоСписком27.Text = ""
Me.Флажок29.SetFocus
Me.Флажок29 = "0"
End Sub
Форма 2. добавление нового инспектора
Рис. 10.
Private Sub inspdob_Click()
Dim base As Database
Dim rec As Recordset
Me.Поле4.SetFocus
If Me.Поле4.Text = "" Then MsgBox "Введите ФИО инспектора": End
'Создание нового объекта:
Set base = CurrentDb ' откроем текущую БД
Set rec = base.OpenRecordset("SELECT fi FROM [inspektor]") 'открыть таблицу
rec.Edit
rec.FindFirst "fi= '" & Me.Поле4.Text & "'"
'если запись уже есть
If Not rec.NoMatch() Then
MsgBox "Такой инспектор уже есть": Me.Поле4.Text = "": End
End If
rec.AddNew 'добавить новую запись
rec!fi = Me.Поле4.Text
rec.Update 'обновление БД
MsgBox "Добавлено"
Me.Поле4.Text = ""
End Sub
Форма 3. удаление определенной машины (если машина после правонарушения не подлежит восстановлению), форма 4. добавление нового правонарушения.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.