Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра прикладної математики
Звіт
до лабораторної роботи №5
з дисципліни “Бази даних та інформаційні системи”
на тему :
“ Забезпечення цілісності в СУБД Access ”
Тема: Обмеження цілісності
Мета: Забезпечити обмеження цілісності, що задані в предметній області
Обмеження цілісності:
Кімната не може одночасно бути здана двом орендарям.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim sql As String
sql = "SELECT [ID-орендаря] as idOr, [ID-приміщення] as idPr, [Дата початку] as beginDate, [Дата кінця] as endDate FROM Оренда"
Set rs = CurrentDb.OpenRecordset(sql)
Do While (rs.EOF = False)
If Me!numberRoom = rs!idPr And Not Me!numberRoom = Me!idPr Then
If Me!BeginDate >= rs!BeginDate And Me!BeginDate < rs!EndDate Then
MsgBox ("Приміщення зайняте з " & rs!BeginDate & " до " & rs!EndDate)
Cancel = 1
rs.Close
Exit Sub
End If
If Me!BeginDate < rs!BeginDate And Me!EndDate > rs!BeginDate Then
MsgBox ("Приміщення зайняте з " & rs!BeginDate & " до " & rs!EndDate)
Cancel = 1
rs.Close
Exit Sub
End If
End If
rs.MoveNext
Loop
rs.Close
If Me!EndDate < Me!BeginDate Then
MsgBox ("Дата кінця введена некоректно")
Cancel = True
End If
End Sub
Система повинна враховувати надходження оплати від орендарів по рахунках.
Private Sub sumaOriginal_Enter()
Dim sql As String
Dim sq As Double
sql = "SELECT [Приміщення].[Площа] as [Square] FROM Приміщення WHERE Приміщення.[ID-приміщення]=" & Me!numberRoom.Value
Set rs = CurrentDb.OpenRecordset(sql)
If rs.RecordCount > 0 Then
sq = rs!Square
Else
sq = 0
End If
rs.Close
sql = "SELECT [Ціна за квадр метр] as price FROM [Тип приміщення] WHERE [ID-типу]=" & Me!Приміщення!roomType.Value
Set rs = CurrentDb.OpenRecordset(sql)
If rs.RecordCount > 0 Then
sq = sq * rs!price
End If
Me!sumaOriginal = sq
Me!sumaPDV = sq * 1.2
Call payedF
End Sub
Public Sub payedF()
Dim sql As String
sql = "SELECT SUM([Сума оплати]) as payed FROM Оплата WHERE [ID-орендаря]=" & Me!OrendarName & " GROUP BY [ID-орендаря]"
Set rs = CurrentDb.OpenRecordset(sql)
If rs.RecordCount > 0 Then
Me!payed = rs!payed
Else
Me!payed = "0"
End If
End Sub
Висновок: на цій лабораторній роботі я забезпечувала цілісність даних для даної предметної області «Оренда приміщень» в СУБД Access.