Автор работы: Пользователь скрыл имя, 10 Ноября 2013 в 22:25, курсовая работа
Целью данной курсовой работы является разработка приложения, обеспечивающего работу банка и его клиентов с пластиковыми карточками (в частности, реализована идея работы банкомата, а также бухгалтерии). В ходе выполнения курсовой работы должны быть закреплены навыки работы с объектами Access (таблицы, запросы, формы, отчеты, макросы), а также с универсальным языком приложений Microsoft Office – VBA. В курсовой работе будут описаны основные этапы создания БД, а также описаны все возможности созданной БД. Будет применено процессное проектирование.
ВВЕДЕНИЕ 3
СОЗДАНИЕ БАЗЫ ДАННЫХ: 5
Этап 1. Определение задач 5
Этап 2. Определение последовательности выполнения задач 6
Этап 3. Определение элементов данных. 6
Этап 4. Упорядочивание данных 11
Этап 5. Разработка прототипа и пользовательского интерфейса 12
Этап 6. Создание приложения 12
Этап 7. Тестирование и доводка 13
А) БУХГАЛТЕРИЯ 14
Б) ВИРТУАЛЬНЫЙ БАНКОМАТ 26
ЗАКЛЮЧЕНИЕ 35
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 36
ПРИЛОЖЕНИЕ 1 (ТЕКСТЫ ПРОГРАММ НА VBA) 37
ПРИЛОЖЕНИЕ 2 (ОБЪЕКТЫ (ЗАПРОСЫ И МАКРОСЫ) В РЕЖИМЕ КОНСТРУКТОРА) 63
'-----------------------------
' Удаление_Click
'
'-----------------------------
Private Sub Удаление_Click()
On Error GoTo Удаление_Click_Err
DoCmd.OpenForm "Форма_Удаление_Карты", acNormal, "", "", , acNormal
DoCmd.Close acForm, "Форма_Операции_с_клиентами", acSaveYes
Удаление_Click_Exit:
Exit Sub
Удаление_Click_Err:
MsgBox Error$
Resume Удаление_Click_Exit
End Sub
Option Compare Database
Private Sub Кнопка8_Click()
Dim db As Database
Dim table As TableDef
Dim rst As Recordset
Dim rst1 As Recordset
Set db = CurrentDb
Dim rec1 As DAO.Recordset
If (Eval("Forms![Форма_операции_
MsgBox "Введите соответствующие данные"
Exit Sub
End If
Set rec1 = CurrentDb.OpenRecordset("
" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _
" WHERE (Клиент_Карта.НомерКарты)= "
& Forms![Форма_операции_с_
If (Forms![Форма_операции_с_
MsgBox "На Вашем счету недостаточно средств"
DoCmd.OpenForm "Форма_Тип_Операции", acNormal, "", "", , acNormal
Forms![Форма_Тип_Операции]![
DoCmd.Close acForm, "Форма_операции_с_телефоном", acSaveYes
Exit Sub
End If
Set rst = db.OpenRecordset("Мобильник")
rst.AddNew
rst![НомерТелефона] = Forms![Форма_операции_с_
rst![НомерКарты] = rec1![НомерКарты]
rst![Баланс] = Forms![Форма_операции_с_
rst![Дата] = Date
rst![Время] = Time()
rst.Update
Set rst1 = CurrentDb.OpenRecordset("
" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _
" WHERE (Клиент_Карта.НомерКарты)= "
& Forms![Форма_операции_с_
rst1.Edit
rst1![ТекущийСчет] = rst1![ТекущийСчет] - Forms![Форма_операции_с_
rst1.Update
DoCmd.OpenForm ("Форма_Чек_Телефон")
Forms![Форма_Чек_Телефон]![
DoCmd.Close acForm, "Форма_операции_с_телефоном", acSaveYes
End Sub
'-----------------------------
' Пин_Отмена_Click
'
'-----------------------------
Private Sub Выход_Click()
On Error GoTo Выход_Click_Err
DoCmd.OpenForm "Форма_Тип_Операции", acNormal, "", "", , acNormal
Forms![Форма_Тип_Операции]![
DoCmd.Close acForm, "Форма_операции_с_телефоном", acSaveYes
Выход_Click_Exit:
Exit Sub
Выход_Click_Err:
MsgBox Error$
Resume Выход_Click_Exit
End Sub
Option Compare Database
Private Sub ДатаРождения_BeforeUpdate(
DoCmd.GoToControl "Calendar"
End Sub
Private Sub ДатаРождения_GotFocus()
End Sub
'-----------------------------
' Кнопка выход
'
'-----------------------------
Private Sub Кнопка36_Click()
On Error GoTo Кнопка36_Click_Err
DoCmd.Close acForm, "Клиент_Финансы подчиненная форма"
DoCmd.Close acForm, "Форма_Редактирование_Клиента"
DoCmd.OpenForm "Форма_Операции_с_клиентами", acNormal, "", "", , acNormal
Кнопка36_Click_Exit:
DoCmd.OpenForm "Форма_Операции_с_клиентами", acNormal, "", "", , acNormal
Exit Sub
Кнопка36_Click_Err:
MsgBox Error$
Resume Кнопка36_Click_Exit
DoCmd.OpenForm "Форма_Операции_с_клиентами", acNormal, "", "", , acNormal
End Sub
'кнопка Поиска
Private Sub Кнопка65_Click()
If (Eval("Forms![Форма_
MsgBox "Введите фамилию для поиска"
Exit Sub
End If
DoCmd.GoToControl "Фамилия"
DoCmd.FindRecord Me![Параметр]
Me![Параметр] = Null
End Sub
Option Compare Database
'-----------------------------
' Снятие_денег_Далее_Click
'
'-----------------------------
Private Sub Снятие_денег_Далее_Click()
On Error GoTo Снятие_денег_Далее_Click_Err
Dim rst As Recordset
Set db = CurrentDb
Dim rec1 As DAO.Recordset
Dim rec2 As DAO.Recordset
Dim rst1 As Recordset
If (Eval("[Forms]![Форма_Снятие_
Beep
MsgBox "Выберите тип валюты", vbOKOnly, "Внимание"
Exit Sub
End If
If (Eval("[Forms]![Форма_Снятие_
Beep
MsgBox "Введите необходимую сумму денег", vbExclamation, "Внимание"
Exit Sub
End If
Select Case [Forms]![Форма_Снятие_денег]![
' белорусский рубль'''''''''''''
Case 1:
Set rec1 = CurrentDb.OpenRecordset("
" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _
" WHERE (Клиент_Карта.НомерКарты)=
" & Forms![Форма_Снятие_денег]![
If (Forms!Форма_Снятие_денег!
Beep
MsgBox "На Вашем счету недостаточно средств, введите меньшую сумму денег", vbOKOnly, "Внимание"
Forms!Форма_Снятие_денег!Ввод_
DoCmd.RepaintObject acForm, "Форма_Снятие_денег"
Exit Sub
End If
Set rst = db.OpenRecordset("Деньги")
rst.AddNew
rst![НомерКарты] = rec1![НомерКарты]
rst![Сумма] = Me![Ввод_Суммы]
rst![Валюта] = "рубль"
rst![ТекущийКурс] = 1
rst![Дата] = Date
rst![Время] = Time()
rst.Update
Set rst1 = CurrentDb.OpenRecordset("
" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _
" WHERE (Клиент_Карта.НомерКарты)=
" & Forms![Форма_Снятие_денег]![
rst1.Edit
rst1![ТекущийСчет]
= rst1![ТекущийСчет] - Forms![Форма_Снятие_денег]![
rst1.Update
DoCmd.OpenForm "Форма_Чек_Деньги", acNormal, "", "", , acNormal
Forms![Форма_Чек_Деньги]![
DoCmd.Close acForm, "Форма_Снятие_денег"
'доллар США
Case 2:
Set rec2 = CurrentDb.OpenRecordset("Валют
rec2.MoveFirst
Set rec1 = CurrentDb.OpenRecordset("
" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _
" WHERE (Клиент_Карта.НомерКарты)=
" & Forms![Форма_Снятие_денег]![
If (Forms!Форма_Снятие_денег!
Beep
MsgBox "На Вашем счету недостаточно
средств, введите меньшую
Forms!Форма_Снятие_денег!Ввод_
DoCmd.RepaintObject acForm, "Форма_Снятие_денег"
Exit Sub
End If
Set rst = db.OpenRecordset("Деньги")
rst.AddNew
rst![НомерКарты] = rec1![НомерКарты]
rst![Сумма] = Me![Ввод_Суммы]
rst![Валюта] = "доллар"
rst![ТекущийКурс] = rec2![ДолларСША]
rst![Дата] = Date
rst![Время] = Time()
rst.Update
Set rst1 = CurrentDb.OpenRecordset("
" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _
" WHERE (Клиент_Карта.НомерКарты)= " &
Forms![Форма_Снятие_денег]![
rst1.Edit
rst1![ТекущийСчет]
= rst1![ТекущийСчет] - Forms![Форма_Снятие_денег]![
rst1.Update
DoCmd.OpenForm "Форма_Чек_Деньги", acNormal, "", "", , acNormal
Forms![Форма_Чек_Деньги]![
DoCmd.Close acForm, "Форма_Снятие_денег"
'ЕВРО
Case 3:
Set rec2 = CurrentDb.OpenRecordset("Валют
rec2.MoveFirst
Set rec1 = CurrentDb.OpenRecordset("
" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _
" WHERE (Клиент_Карта.НомерКарты)=
" & Forms![Форма_Снятие_денег]![
If (Forms!Форма_Снятие_денег!
Beep
MsgBox "На Вашем счету недостаточно
средств, введите меньшую
Forms!Форма_Снятие_денег!Ввод_
DoCmd.RepaintObject acForm, "Форма_Снятие_денег"
Exit Sub
End If
Set rst = db.OpenRecordset("Деньги")
rst.AddNew
rst![НомерКарты] = rec1![НомерКарты]
rst![Сумма] = Me![Ввод_Суммы]
rst![Валюта] = "евро"
rst![ТекущийКурс] = rec2![ЕВРО]
rst![Дата] = Date
rst![Время] = Time()
rst.Update
Set rst1 = CurrentDb.OpenRecordset("
" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _
" WHERE (Клиент_Карта.НомерКарты)=
" & Forms![Форма_Снятие_денег]![
rst1.Edit
rst1![ТекущийСчет]
= rst1![ТекущийСчет] - Forms![Форма_Снятие_денег]![
rst1.Update
DoCmd.OpenForm "Форма_Чек_Деньги", acNormal, "", "", , acNormal
Forms![Форма_Чек_Деньги]![
DoCmd.Close acForm, "Форма_Снятие_денег"
End Select
Снятие_денег_Далее_Click_Exit:
Exit Sub
Снятие_денег_Далее_Click_Err:
MsgBox Error$
Resume Снятие_денег_Далее_Click_Exit
End Sub
'-----------------------------
' Снятие_Денег_Click
'
'-----------------------------
Private Sub Снятие_Денег_Click()
On Error GoTo Снятие_Денег_Click_Err
DoCmd.OpenForm "Форма_Тип_Операции", acNormal, "", "", , acNormal
Forms![Форма_Тип_Операции]![
DoCmd.Close acForm, "Форма_Снятие_денег"
Снятие_Денег_Click_Exit:
Exit Sub
Снятие_Денег_Click_Err:
MsgBox Error$
Resume Снятие_Денег_Click_Exit
End Sub
Option Compare Database
'-----------------------------
' Текущий_счет_Да_Click
'
'-----------------------------
Private Sub Текущий_счет_Да_Click()
On Error GoTo Текущий_счет_Да_Click_Err
DoCmd.OpenForm "Форма_Тип_Операции", acNormal, "", "", , acNormal
Forms![Форма_Тип_Операции]![
DoCmd.Close acForm, "Форма_Текущий_счет"
Текущий_счет_Да_Click_Exit:
Exit Sub
Текущий_счет_Да_Click_Err:
MsgBox Error$
Resume Текущий_счет_Да_Click_Exit
End Sub
'-----------------------------
' Текущий_счет_Нет_Click
'
'-----------------------------
Private Sub Текущий_счет_Нет_Click()
On Error GoTo Текущий_счет_Нет_Click_Err
DoCmd.Close acForm, "Форма_Текущий_счет"
DoCmd.OpenForm "Форма_Основа", acNormal, "", "", , acNormal
Текущий_счет_Нет_Click_Exit:
Exit Sub
Текущий_счет_Нет_Click_Err:
MsgBox Error$
Resume Текущий_счет_Нет_Click_Exit
End Sub
Option Compare Database
'распечатать транзакции
Private Sub Кнопка10_Click()
If (Eval("[Forms]![Форма_
MsgBox "Введите соответствующие данные"
Exit Sub
End If
If (Eval("Forms!Форма_транзакции!
MsgBox "Выберите тип отчета"
Exit Sub
End If
If (Forms!Форма_транзакции!Группа = 1) Then
DoCmd.OpenReport "Отчет_Транзакция_Телефон", acViewPreview
[Forms]![Форма_транзакции]![
[Forms]![Форма_транзакции]![
[Forms]![Форма_транзакции]![
Forms!Форма_транзакции!Группа = Null
DoCmd.RepaintObject acForm, "Форма_транзакции"
End If
If (Forms!Форма_транзакции!Группа = 2) Then
DoCmd.OpenReport "Отчет_Транзакция_Начисление", acViewPreview
[Forms]![Форма_транзакции]![
[Forms]![Форма_транзакции]![
[Forms]![Форма_транзакции]![
Forms!Форма_транзакции!Группа = Null
DoCmd.RepaintObject acForm, "Форма_транзакции"
End If
If (Forms!Форма_транзакции!Группа = 3) Then
DoCmd.OpenReport "Отчет_Транзакция_Деньги", acViewPreview
[Forms]![Форма_транзакции]![
[Forms]![Форма_транзакции]![
[Forms]![Форма_транзакции]![
Forms!Форма_транзакции!Группа = Null
DoCmd.RepaintObject acForm, "Форма_транзакции"
End If
End Sub
'отмена
Private Sub Кнопка11_Click()
[Forms]![Форма_транзакции]![