Система управления работой банка с пластиковыми карточками (бухгалтерии и вируального банкомата)

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Курсовая работа.doc

— 1.27 Мб (Скачать файл)

 

'------------------------------------------------------------

' Удаление_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

 

  1. “Форма_операции_с_телефоном”

 

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![Форма_операции_с_телефоном]![Номер] Is Null") Or Eval("Forms![Форма_операции_с_телефоном]![Сумма] Is Null")) Then

MsgBox "Введите соответствующие данные"

Exit Sub

End If

 

 

Set rec1 = CurrentDb.OpenRecordset("SELECT Клиент_Карта.НомерКарты, Клиент_Финансы.ТекущийСчет " & _

" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _

" WHERE (Клиент_Карта.НомерКарты)=  " & Forms![Форма_операции_с_телефоном]![НомерКарты] & " ;")

 

 If (Forms![Форма_операции_с_телефоном]![Сумма] - rec1![ТекущийСчет] > 0) Then

   MsgBox "На Вашем счету недостаточно средств"

   DoCmd.OpenForm "Форма_Тип_Операции", acNormal, "", "", , acNormal

   Forms![Форма_Тип_Операции]![НомерКарты] = 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("SELECT Клиент_Карта.НомерКарты, Клиент_Финансы.ТекущийСчет " & _

" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _

" WHERE (Клиент_Карта.НомерКарты)=  " & Forms![Форма_операции_с_телефоном]![НомерКарты] & " ;")

   

    rst1.Edit

    rst1![ТекущийСчет] = rst1![ТекущийСчет] - Forms![Форма_операции_с_телефоном]![Сумма]

    rst1.Update

    DoCmd.OpenForm ("Форма_Чек_Телефон")

    Forms![Форма_Чек_Телефон]![НомерКарты] = Forms![Форма_операции_с_телефоном]![НомерКарты]

    DoCmd.Close acForm, "Форма_операции_с_телефоном", acSaveYes

   

   

End Sub

 

'------------------------------------------------------------

' Пин_Отмена_Click

'

'------------------------------------------------------------

Private Sub Выход_Click()

On Error GoTo Выход_Click_Err

 

     

   DoCmd.OpenForm "Форма_Тип_Операции", acNormal, "", "", , acNormal

   Forms![Форма_Тип_Операции]![НомерКарты] = Forms![Форма_операции_с_телефоном]![НомерКарты]

   DoCmd.Close acForm, "Форма_операции_с_телефоном", acSaveYes

 

 

 

Выход_Click_Exit:

    Exit Sub

 

Выход_Click_Err:

    MsgBox Error$

    Resume Выход_Click_Exit

 

End Sub

 

 

  1. “Форма_Редактирование_Клиента”

 

Option Compare Database

 

Private Sub ДатаРождения_BeforeUpdate(Cancel As Integer)

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![Форма_Редактирование_Клиента]![Параметр] Is Null")) Then

MsgBox "Введите фамилию  для поиска"

Exit Sub

End If

 

DoCmd.GoToControl "Фамилия"

DoCmd.FindRecord Me![Параметр]

Me![Параметр] = Null

End Sub

 

  1. “Форма_Снятие_Денег”

 

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]![Форма_Снятие_денег]![Группа1] Is Null")) Then

        Beep

        MsgBox "Выберите тип валюты", vbOKOnly, "Внимание"

        Exit Sub

    End If

   

    If (Eval("[Forms]![Форма_Снятие_денег]![Ввод_Суммы] Is Null")) Then

        Beep

        MsgBox "Введите необходимую сумму  денег", vbExclamation, "Внимание"

        Exit Sub

    End If

 

Select Case [Forms]![Форма_Снятие_денег]![Группа1]

 

' белорусский рубль'''''''''''''''''''''''''''''

 

Case 1:

 

Set rec1 = CurrentDb.OpenRecordset("SELECT Клиент_Карта.НомерКарты, Клиент_Финансы.ТекущийСчет  " & _

" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _

" WHERE (Клиент_Карта.НомерКарты)=  " & Forms![Форма_Снятие_денег]![НомерКарты] & " ;")

   

    If (Forms!Форма_Снятие_денег!Ввод_Суммы  - rec1![ТекущийСчет] > 0) Then

        Beep

        MsgBox "На Вашем счету недостаточно средств, введите меньшую сумму денег", vbOKOnly, "Внимание"

        Forms!Форма_Снятие_денег!Ввод_Суммы = Null

        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("SELECT Клиент_Карта.НомерКарты, Клиент_Финансы.ТекущийСчет " & _

" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _

" WHERE (Клиент_Карта.НомерКарты)=  " & Forms![Форма_Снятие_денег]![НомерКарты] & " ;")

   

    rst1.Edit

    rst1![ТекущийСчет] = rst1![ТекущийСчет] - Forms![Форма_Снятие_денег]![Ввод_Суммы]

    rst1.Update

 

    DoCmd.OpenForm "Форма_Чек_Деньги", acNormal, "", "", , acNormal

    Forms![Форма_Чек_Деньги]![НомерКарты] = Forms![Форма_Снятие_денег]![НомерКарты]

    DoCmd.Close acForm, "Форма_Снятие_денег"

   

'доллар США

Case 2:

Set rec2 = CurrentDb.OpenRecordset("Валюты")

    rec2.MoveFirst

   

Set rec1 = CurrentDb.OpenRecordset("SELECT Клиент_Карта.НомерКарты, Клиент_Финансы.ТекущийСчет " & _

" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _

" WHERE (Клиент_Карта.НомерКарты)=  " & Forms![Форма_Снятие_денег]![НомерКарты] & " ;")

    

     If (Forms!Форма_Снятие_денег!Ввод_Суммы  * rec2![ДолларСША] - rec1![ТекущийСчет] > 0) Then

        Beep

        MsgBox "На Вашем счету недостаточно  средств, введите меньшую сумму  денег", vbOKOnly, "Внимание"

        Forms!Форма_Снятие_денег!Ввод_Суммы = Null

        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("SELECT Клиент_Карта.НомерКарты, Клиент_Финансы.ТекущийСчет " & _

" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _

" WHERE (Клиент_Карта.НомерКарты)=  " & Forms![Форма_Снятие_денег]![НомерКарты] & " ;")

  

    rst1.Edit

    rst1![ТекущийСчет] = rst1![ТекущийСчет] - Forms![Форма_Снятие_денег]![Ввод_Суммы] * rec2![ДолларСША]

    rst1.Update

 

    DoCmd.OpenForm "Форма_Чек_Деньги", acNormal, "", "", , acNormal

    Forms![Форма_Чек_Деньги]![НомерКарты] = Forms![Форма_Снятие_денег]![НомерКарты]

    DoCmd.Close acForm, "Форма_Снятие_денег"

  

 

'ЕВРО

Case 3:

Set rec2 = CurrentDb.OpenRecordset("Валюты")

    rec2.MoveFirst

   

Set rec1 = CurrentDb.OpenRecordset("SELECT Клиент_Карта.НомерКарты, Клиент_Финансы.ТекущийСчет " & _

" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _

" WHERE (Клиент_Карта.НомерКарты)=  " & Forms![Форма_Снятие_денег]![НомерКарты] & " ;")

    

     If (Forms!Форма_Снятие_денег!Ввод_Суммы  * rec2![ЕВРО] - rec1![ТекущийСчет] > 0) Then

        Beep

        MsgBox "На Вашем счету недостаточно  средств, введите меньшую сумму  денег", vbOKOnly, "Внимание"

       Forms!Форма_Снятие_денег!Ввод_Суммы = Null

        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("SELECT Клиент_Карта.НомерКарты, Клиент_Финансы.ТекущийСчет " & _

" FROM Клиент_Карта INNER JOIN Клиент_Финансы ON Клиент_Карта.КодКарты = Клиент_Финансы.КодКарты" & _

" WHERE (Клиент_Карта.НомерКарты)=  " & Forms![Форма_Снятие_денег]![НомерКарты] & " ;")

  

    rst1.Edit

    rst1![ТекущийСчет] = rst1![ТекущийСчет] - Forms![Форма_Снятие_денег]![Ввод_Суммы] * rec2![ЕВРО]

    rst1.Update

 

    DoCmd.OpenForm "Форма_Чек_Деньги", acNormal, "", "", , acNormal

    Forms![Форма_Чек_Деньги]![НомерКарты] = 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![Форма_Тип_Операции]![НомерКарты] = Forms![Форма_Снятие_денег]![НомерКарты]

    DoCmd.Close acForm, "Форма_Снятие_денег"

 

 

 

Снятие_Денег_Click_Exit:

    Exit Sub

 

Снятие_Денег_Click_Err:

    MsgBox Error$

    Resume Снятие_Денег_Click_Exit

 

End Sub

 

  1. “Форма_текущий_Счет”

 

Option Compare Database

 

'------------------------------------------------------------

' Текущий_счет_Да_Click

'

'------------------------------------------------------------

Private Sub Текущий_счет_Да_Click()

On Error GoTo Текущий_счет_Да_Click_Err

 

    DoCmd.OpenForm "Форма_Тип_Операции", acNormal, "", "", , acNormal

    Forms![Форма_Тип_Операции]![НомерКарты] = 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

 

 

  1. “Форма_транзакции”

 

Option Compare Database

'распечатать транзакции

Private Sub Кнопка10_Click()

 

If (Eval("[Forms]![Форма_транзакции]![НомерКарты] Is Null") Or Eval("[Forms]![Форма_транзакции]![Дата1] Is Null") Or Eval("[Forms]![Форма_транзакции]![Дата2] Is Null")) Then

MsgBox "Введите соответствующие  данные"

Exit Sub

End If

 

If (Eval("Forms!Форма_транзакции!Группа Is Null")) Then

MsgBox "Выберите тип отчета"

Exit Sub

End If

If (Forms!Форма_транзакции!Группа = 1) Then

DoCmd.OpenReport "Отчет_Транзакция_Телефон", acViewPreview

[Forms]![Форма_транзакции]![НомерКарты] = Null

[Forms]![Форма_транзакции]![Дата1] = Null

[Forms]![Форма_транзакции]![Дата2] = Null

Forms!Форма_транзакции!Группа = Null

DoCmd.RepaintObject acForm, "Форма_транзакции"

End If

 

If (Forms!Форма_транзакции!Группа = 2) Then

DoCmd.OpenReport "Отчет_Транзакция_Начисление", acViewPreview

[Forms]![Форма_транзакции]![НомерКарты] = Null

[Forms]![Форма_транзакции]![Дата1] = Null

[Forms]![Форма_транзакции]![Дата2] = Null

Forms!Форма_транзакции!Группа = Null

DoCmd.RepaintObject acForm, "Форма_транзакции"

End If

 

If (Forms!Форма_транзакции!Группа = 3) Then

DoCmd.OpenReport "Отчет_Транзакция_Деньги", acViewPreview

[Forms]![Форма_транзакции]![НомерКарты] = Null

[Forms]![Форма_транзакции]![Дата1] = Null

[Forms]![Форма_транзакции]![Дата2] = Null

Forms!Форма_транзакции!Группа = Null

DoCmd.RepaintObject acForm, "Форма_транзакции"

End If

 

End Sub

'отмена

Private Sub Кнопка11_Click()

[Forms]![Форма_транзакции]![НомерКарты] = Null

Информация о работе Система управления работой банка с пластиковыми карточками (бухгалтерии и вируального банкомата)