Автор работы: Пользователь скрыл имя, 09 Декабря 2013 в 15:44, курсовая работа
В MS Access построена база данных для реализации функций ИС, включающая в себя данные о фотографах и услугах, предоставляемых данным ателье, таблицы учета заказов и их оплаты и др. Схема данных представлена на рисунке 3.
Форма «Заказ в студии» позволяет оформить заказ, который выполняется непосредственно в самом ателье в этот же день в порядке очереди. Форма содержит подчиненную форму «Услуги в заказе», выполненную в ленточной форме. Это позволяет вносить в заказ сразу несколько услуг. Код программы приведен в приложении 1.
Заключение
В ходе проектирования данной ИС на основании бизнес повода были определены предметные и функциональные границы, установлены основные требования, и определены основные риски проекта. Также были описаны назначение системы, основные цели проекта. Кроме того были определены границы возможного расширения ИС.
На стадии макетирования были реализован и описан бизнес процесс 1 (принятие заказа в фотоателье).
Работа с данными организована в виде работы с формами в MS Access. Макет ИС соответствует требованиям и функциям, поставленным на начальной фазе проектирования.
Таким образом, поставленная задача выполнена. В дальнейшем ИС можно совершенствовать и расширять.
Приложение 1
Листинг программы для формы «Заказ в студии»
Option Compare Database
Private Sub Сумма_Click()
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
strSQL = "SELECT [Услуги
в заказе].Код, [Услуги в заказе].КодУсл,
[Услуги в заказе].[Код заказа]
strSQL = strSQL + " FROM Услуги INNER JOIN [Услуги в заказе] ON Услуги.КодУслуги = [Услуги в заказе].КодУсл;"
With rst
Set .ActiveConnection = cnn
.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
rst.MoveLast
rst.MoveFirst
q = rst.RecordCount
sum = 0
For i = 1 To q
If rst.Fields(2) = Me.Controls("НомерЗаказа") Then sum = sum + rst.Fields(5)
rst.MoveNext
Next i
Me.Controls("СуммаПоле").Value = sum
End Sub
Приложение 2
Листинг программы для формы «Выездной заказ»
Option Compare Database
Private Sub КнопкаВнешт_Click()
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
KodSpec = CInt(Me.Controls("КодСпец"))
DataIsp = CDate(Me.Controls("ДтИспЗаказа
DataZapr = Day(DataIsp) & "/" & Month(DataIsp) & "/" & Year(DataIsp)
strSQL = "SELECT Заказы.КодЗаказа,
Работники.КодФотогр,
strSQL = strSQL + " FROM Специализации INNER JOIN (Работники INNER JOIN Заказы ON Работники.КодФотогр = Заказы.КодРаботника) ON Специализации.КодСпец = Работники.КодСпец"
strSQL = strSQL + " WHERE (((Заказы.ДтИспЗаказа)<> #" & DataZapr & "#) AND ((Работники.Штатный)=False));"
With rst
Set .ActiveConnection = cnn
.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
rst.MoveLast
rst.MoveFirst
Me!Фотограф.RowSource = strSQL
End Sub
Private Sub КодСпец_Click()
Dim cnn As ADODB.Connection
On Error GoTo Message
Set cnn = CurrentProject.
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
KodSpec = CInt(Me.Controls("КодСпец"))
DataIsp = CDate(Me.Controls("ДтИспЗаказа
DataZapr = Day(DataIsp) & "/" & Month(DataIsp) & "/" & Year(DataIsp)
strSQL = "SELECT Заказы.КодЗаказа,
Работники.КодФотогр,
strSQL = strSQL + " FROM Специализации INNER JOIN (Работники INNER JOIN Заказы ON Работники.КодФотогр = Заказы.КодРаботника) ON Специализации.КодСпец = Работники.КодСпец"
strSQL = strSQL + " WHERE (((Работники.КодСпец)= " & KodSpec & ") AND ((Заказы.Выезд)=True) AND ((Заказы.ДтИспЗаказа) <> #" & DataZapr & "#) AND ((Работники.Штатный)=True));"
With rst
Set .ActiveConnection = cnn
.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
rst.MoveLast
rst.MoveFirst
Me!Фотограф.RowSource = strSQL
Exit Sub
Message:
MsgBox ("Нет свободных штатных фотографов.")
End Sub
Public Sub Сумма_Click()
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
strSQL = "SELECT [Услуги в заказе].Код, [Услуги в заказе].КодУсл, [Услуги в заказе].[Код заказа], [Услуги в заказе].Количество, Услуги.Цена, [Количество]*[Цена] AS Итого"
strSQL = strSQL + " FROM Услуги INNER JOIN [Услуги в заказе] ON Услуги.КодУслуги = [Услуги в заказе].КодУсл;"
With rst
Set .ActiveConnection = cnn
.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
rst.MoveLast
rst.MoveFirst
q = rst.RecordCount
sum = 0
For i = 1 To q
If rst.Fields(2) = Me.Controls("КодЗаказа") Then sum = sum + rst.Fields(5)
rst.MoveNext
Next i
Me.Controls("СуммаПоле").Value = sum
End Sub
Приложение 3
Листинг
программы для формы «Оплачено/
Option Compare Database
Private Sub КодЗаказа_AfterUpdate()
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.AccessConnectio
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
kodZak = CInt(Me.Controls("КодЗаказа"))
strSQL = "SELECT Заказы.КодЗаказа, Заказы.Выполнено, Заказы.Оплачено FROM Заказы WHERE (((Заказы.КодЗаказа)= " & kodZak & "));"
With rst
Set .ActiveConnection = cnn
.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
Me.Controls("Вып").Value = rst.Fields(1)
Me.Controls("Опл").Value = rst.Fields(2)
End Sub
Private Sub Сохр_Click()
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
kodZak = CInt(Me.Controls("КодЗаказа"))
strSQL = "SELECT Заказы.КодЗаказа,
Заказы.Выполнено, Заказы.
With rst
Set .ActiveConnection = cnn
.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
rst.Fields(2) = Me.Controls("Опл").Value
rst.Fields(1) = Me.Controls("Вып").Value
rst.Update
End Sub