Разработка программы для
выполнения операций по вкладам
Постановка задачи. Разработать программу для выполнения
операций по вкладам, сведения о которых содержатся в базе данных, создаваемой
программой разработанной в упражнении 15. В программе необходимо предусмотреть
следующие функции:
· поиск нужной записи в базе данных на рабочем листе с именем “База”;
· Выполнение операции по приему на счет и снятие со счета суммы денег;
· Отмену операции по вкладу.
Разработка.
Разработка формы пользователя. Учитывая требования, изложенные в постановке задачи, возможный вариант формы пользователя может быть таким, как изображено на рис. 9.3
Рис. 9.3. Форма пользователя для программы Операции со
вкладами
Выполните следующие действия:
1. Создайте форму пользователя и разместите в ней элементы управления как показано на рис.9.3.
2. Элементам управления присвойте имена и свойства в соответствии с таблицей, приведенной ниже.
Элемент |
Имя |
Свойства |
События | |
Форма |
Опер |
Caption Операции со вкладом |
Initialize 1.
Устанавливает один из переключателей. 2.
Устанавливает количество элементов списка и присваивает ему
значения. 3.
Активизирует рабочий лист с именем
“База” |
|
Поле |
Фам |
По умолчанию |
|
|
Поле |
Величина |
По умолчанию |
|
|
Поле |
Остаток |
По умолчанию |
|
|
Поле |
Получ |
По умолчанию |
|
|
Поле |
Дата |
По умолчанию |
|
|
Поле со списком |
Тип |
По умолчанию |
|
|
Переключатель |
Сев |
Caption Северное |
|
|
Переключатель |
Центр |
Caption Центральное |
|
|
Переключатель |
Вост |
Caption Восточное |
|
|
Кнопка |
Найти |
Caption Найти |
Click 1.
Вычисляет количество записей в таблице. 2.
Находит в таблице нужную строку по заданной фамилии, типу
вклада и названию отделения. 3.
Выводит величину остатка в поле Остаток, а в поле Дата –
текущую дату. |
|
Кнопка |
Принять |
Caption Принять |
Click 1.
Проверяет корректность числовой информации в поле
Величина. 2.
Записывает в базу данных “База” новую вычисленную
сумму. 3.
Активизирует рабочий лист
“Операции”. 4.
Записывает в базу данных “Операции” данные о проведенной
операции. |
|
Кнопка |
Отменить |
Caption Отменить |
Click 1.
Восстанавливает в текущей строке таблицы “База” данные, которые были до операции.
|
|
Кнопка |
Выдать |
Caption Выдать |
Click 1. Проверяет корректность числовой информации в поле Величина. 2. Вычисляет остаток и записывает его в базу данных “База”. 3. Активизирует рабочий лист “Операции” и записывает в таблицу сведения о проведенной операции |
|
Кнопка |
Выход |
Caption Выход |
Click 1.
Активизирует рабочий лист с именем “Меню”. 2.
Завершает
выполнение программы |
|
4.
На
рабочем листе с именем “Меню” поместите
Элемент управления Кнопка панели элементов Visual Basic и поместите на
ней надпись “Операции”.
С помощью этой кнопки будет вызываться разрабатываемое диалоговое
окно.
5.
Для процедуры обработки события Click этой кнопки в модуле рабочего
листа запишите код:
Private Sub
Операции_Click()
‘ активизируем форму с именем Опер
Опер.Show
End Sub
6.
На
рабочем листе “Операции” в первой строке напишите заголовки колонок
таблицы в следующей последовательности: Фамилия владельца вклада, Дата операции,
Фамилия получателя, Тип вклада, Выдано, Принято, Отделение,
примечание.
7. В программном модуле формы в общей области запишите текст объявления переменных:
Option Explicit
Dim Фамилия As String
Dim ТипВклада As String
Dim СуммаВклада As Double
Dim Отделение As String
Dim Примечание As String
Dim Количество As Integer
Dim Номер As Integer
Private Sub UserForm_Initialize()
With Опер
‘ Устанавливаем переключатель
.Сев.Value = True
‘ Количество элементов в Поле со списком
.Тип.ListRows = 3
‘Значения элементов списка
.Тип.List = Array("Срочный", "Депозит", "Текущий")
‘Устанавливаем фокус кнопке Найти
.Найти.SetFocus
‘ Активизируем рабочий лист “База”
Application.Worksheets("База").Activate
End With
End Sub
Private Sub Найти_Click()
‘ Активизируем рабочий лист База
Worksheets("База").Activate
‘ Вычисляем количество заполненных строк
Количество = Application.CountA(ActiveSheet.Columns(1))
Фамилия = Фам.Text
ТипВклада = Тип.Value
If Сев.Value = True Then Отделение = "Северное"
If Центр.Value = True Then Отделение = "Центральное"
If Вост.Value = True Then Отделение = "Восточное"
With ActiveSheet
For Номер = 1 To Количество
‘ Поиск нужной записи по заданным параметрам
If .Cells(Номер, 1) = Фамилия And
.Cells(Номер, 2) = _
ТипВклада And .Cells(Номер, 4) = Отделение Then Exit For
Next
‘ Отображаем остаток вклада в поле Остаток
Остаток.Text = .Cells(Номер, 3)
End With
If Номер = Количество + 1 Then
MsgBox "Такого счета в базе нет", vbInformation
End If
‘ Отображаем текущую дату в поле Дата
Дата.Text = Date
End Sub
Private Sub Принять_Click()
‘ проверяем корректность данных
If IsNumeric(Величина.Text) = False Then
MsgBox "Ошибка в поле Суммы", vbInformation, "БАНК"
Exit Sub
End If
With ActiveSheet
‘ записываем в ячейку новое значение остатка
.Cells(Номер, 3) = CStr(CDbl(.Cells(Номер, 3)) + _
CDbl(Величина.Text))
End With
‘ Ативизируем рабочий лист Операция
Worksheets("Операции").Activate
‘ Вычисляем номер первой пустой строки
Количество = Application.CountA(ActiveSheet.Columns(1)) + 1
With ActiveSheet
‘ Записываем в ячейки данные о проведенной операции
.Cells(Количество, 1) = Получ.Text
.Cells(Количество, 2) = Дата.Text
.Cells(Количество, 3) = Фам.Text
.Cells(Количество, 4) = Тип.Text
.Cells(Количество, 6) = Величина.Text
.Cells(Количество, 7) = Отделение
.Cells(Количество, 8) = Прим.Text
End With
End Sub
Private Sub Выдать_Click()
‘ Проверяем корректность введенного числа
If IsNumeric(Величина.Text) = False Then
MsgBox "Ошибка в поле Суммы", vbInformation, "БАНК"
Exit Sub
End If
With ActiveSheet
‘ Записываем в ячейку новый остаток
.Cells(Номер, 3) = CStr(CDbl(.Cells(Номер, 3)) - _
CDbl(Величина.Text))
End With
‘ Активизируем раюочий лист Операции
Worksheets("Операции").Activate
‘ Вычисляем номер первой свободной строки
Количество = Application.CountA(ActiveSheet.Columns(1)) + 1
With ActiveSheet
‘ Записываем данные о проведенной операции
.Cells(Количество, 1) = Получ.Text
.Cells(Количество, 2) = Дата.Text
.Cells(Количество, 3) = Фам.Text
.Cells(Количество, 4) = Тип.Text
.Cells(Количество, 5) = Величина.Text
.Cells(Количество, 7) = Отделение
.Cells(Количество, 8) = Прим.Text
End With
End Sub
Private Sub Отменить_Click()
With ActiveSheet
‘ Восстанавливаем прежний остаток в БД База
.Cells(Номер, 3) = Остаток.Text
End With
Worksheets("Операции").Activate
‘ Удаляем данные о проведенной операции
With ActiveSheet
.Cells(Количество, 1) = ""
.Cells(Количество, 2) = ""
.Cells(Количество, 3) = ""
.Cells(Количество, 4) = ""
.Cells(Количество, 6) = ""
.Cells(Количество, 7) = ""
.Cells(Количество, 8) = ""
End With
End Sub
‘ Активизируем рабочий лист “Меню”
Worksheets("Меню").Activate
End
End Sub
15. Отладьте и проверьте работу программы во всех режимах.
16. Сохраните проект
Задание 1. Разработайте программу с диалоговым окном для создания на рабочем листе базы данных по учету выданных кредитов. Вид диалогового окна приведен на рис.13. Таблица базы данных должна содержать: фамилию, имя, адрес заемщика, срок кредита, сумму кредита, пол заемщика, сведения о залоге и его сумме.
Рис. 9.4. Форма программы для создания базы данных по учету
кредитов
Разработайте программу с диалоговым окном
для расчета величины постоянных периодических выплат при погашении кредита.
Исходными данными для расчета являются:
·
Величина кредита;
·
Количество выплат за год;
·
Срок
кредита (в количестве годов);
·
Годовая процентная ставка.
В программе предусмотрите проверку корректности
вводимых данных и выдачу сообщения пользователю в случае некорректных
данных.