9.
Разработка программ для рабочего листа
Упражнение 15.
Разработка
программы для
создания базы данных
Страхование
Постановка задачи. Разработать программу для создания базы данных по учету страхователей и вида страхования с диалоговым окном.
В базе данных должны отражаться следующие
сведения:
·
фамилия и имя страхователя;
·
адрес (город, улица, дом, квартира);
·
пол страхователя;
·
срок страхования;
·
вид страхования.
Разработка.
Разработка формы пользователя.
Форма пользователя с элементами управления для создания базы данных
может иметь вид, как изображено на рис.9.1. Для удобства ввода данных кроме
элементов Поле в форме предусмотрены: элемент Счетчик –
для установки срока страхования; элемент Поле со списком – для ввода вида
страхования.
Рис.9.2. Форма диалогового окна для программы регистрации вкладов
Выполните следующие действия:
1. Создайте форму пользователя и разместите в ней элементы управления как показано на рис.9.2.
2. Элементам управления присвойте имена и свойства в соответствии с таблицей, приведенной ниже.
Элемент |
Имя |
Свойства |
События |
Форма |
UserForm |
|
1.
Initialize 2. Устанавливает количество элементов в списка. 3.
Присваивает значения элементам списка. |
Форма |
Вклад |
Caption Прием вклада |
4. Изменяет текст в строке заголовка приложения. 5.
Закрывает строку
формул. 6.
Устанавливает
всплывающие подсказки. 7. Формирует заголовки столбцов таблицы обращаясь к специально созданной процедуре. |
Кнопка |
Принять |
Caption
Принять |
Click 1. Вычисляет номер первой свободной строки. 2. Проверяет, введены ли данные в поля формы. 3. Записывает данные из элементов управления Формы в ячейки рабочего листа |
Кнопка |
Отмена |
Caption Отмена |
Click 1. Вычисляет номер последней строки таблицы. 2. Удаляет содержимое из ячеек этой строки. |
Кнопка |
Выход |
Caption Выход |
Click Завершает выполнение программы |
Поле |
Фамилия |
|
|
Поле |
СуммаВклада |
|
|
Поле со списком |
ТипВклада |
|
|
Переключатели |
Северное Центральное Восточное |
|
|
Поле |
Примечание |
|
|
3. Рабочему листу с именем “Лист2” присвойте имя “База”, а рабочему листу “Лист1” – “Меню”.
4. На рабочем листе с именем “Меню” поместите Элемент
управления Кнопка панели элементов Visual Basic и поместите
на ней надпись “Прием вклада”. С помощью этой кнопки будет вызываться
разрабатываемое диалоговое окно.
5. Для процедуры обработки события Click этой кнопки запишите код:
Private Sub ПриемВклада_Click()
‘Вызываем процедуру формирования заголовков БД
ЗаголовокРабочегоЛиста
End Sub
6. Для формирования заголовков столбцов базы данных
создайте процедуру Sub пользователя, которая будет вызываться из
процедуры обработки кнопки рабочего листа Прием вклада. Для этого выполните
команду меню Visual
Basic
Вставка, Процедура и присвойте ей имя
ЗаголовокРабочегоЛиста. Процедура выполняет следующие действия:
· Проверяет, заполнена ли первая строка – строка заголовков столбцов (по значению ячейки А1), если заполнена, то не выполняет никаких действий и завершает работу и передает управление в точку вызова;
· Если первая строка не заполнена, то в ячейки первой строки рабочего листа записывает названия граф таблицы базы данных, комментарии к ним, закрепляет первую строку и завершает работу, передавая управление в точку своего вызова.
7. В окне редактирования кода введите текст программы этой процедуры:
‘Активизируем рабочий лист
Application.Worksheets("База").Activate
‘Проверяем, есть ли названия столбцов БД
With ActiveSheet
If .Range("A1").Value =
"Фамилия" Then
.Range("A2").Select
Else
‘Очищаем рабочий лист
ActiveSheet.Cells.Clear
‘Записываем названия столбцов
Range("A1:E1").Value = Array("Фамилия",
"Тип", _
"Сумма", "Отделение", "Примечание")
‘Фиксируем первую строку
.Range("2:2").Select
ActiveWindow.FreezePanes = True
.Range("A2").Select
‘Вставляем комментарии
.Range("A1").AddComment
.Range("A1").Comment.Visible = False
.Range("A1").Comment.Text
Text:= "Фамилия клиента"
.Range("B1").AddComment
.Range("B1").Comment.Visible = False
.Range("B1").Comment.Text
Text:= "Тип
вклада"
.Range("C1").AddComment
.Range("C1").Comment.Visible = False
.Range("C1").Comment.Text
Text:= "Сумма
вклада"
.Range("D1").AddComment
.Range("D1").Comment.Visible = False
.Range("D1").Comment.Text
Text:= "Отделение банка"
End If
End With
‘Вызываем элемент Форма с именем Вклад
Вклад.Show
End Sub
8. В процедуру обработки события Initialize формы введите код:
Private Sub
UserForm_Initialize()
With Вклад
.Северное.Value = True
‘Установим длину элемента Список
.ТипВклада.ListRows = 3
‘Присвоим значения элементам списка
.ТипВклада.List = Array("Срочный", "Депозит", "Текущий")
‘Установмс фокус элементу Кнопка с именем Принять
.Принять.SetFocus
End With
End Sub
Private Sub Вклад_Initialize()
‘Изменим название в строке заголовка приложения
Application.Caption = "Регистрация. Бза данных Банк"
‘Закрываем строку формул
Application.DisplayFormulaBar = False
With Принять
.Default = True
‘Установка всплывающей подсказки
.ControlTipText = "Ввод данных в базу данных"
End With
With Отмена
.Cancel = True
.ControlTipText =
"Кнопка
отмены"
End With
ЗаголовокРабочегоЛиста
End Sub
Private Sub Принять_Click()
' Декларация переменных
Dim Фамилия As String
Dim ТипВклада As String
Dim
СуммаВклада As Double
Dim Отделение As String
Dim Примечание As String
Dim
НомерСтроки As Integer
‘Вычисление номера первой свободной строки
НомерСтроки = _
Application.CountA(ActiveSheet.Columns(1)) + 1
With Вклад
If .Фамилия.Text = "" Then
MsgBox "Вы забыли
указать фамилию ", vbExclamation
Exit Sub
End If
If .ТипВклада.Value = ""
Then
MsgBox "Вы забыли указать тип вклада ", vbExclamation
Exit Sub
End If
Фамилия =
.Фамилия.Text
ТипВклада = .ТипВклада.Value
If .Северное.Value = True Then Отделение = "Северное"
If .Центральное.Value = True Then Отделение = "Центральное"
If .Восточное.Value = True Then Отделение = "Восточное"
If
IsNumeric(.СуммаВклада.Text) = False Then
MsgBox
"Введена
неверная
сумма", vbExclamation
Exit Sub
End If
СуммаВклада =
CDbl(.СуммаВклада.Text)
Примечание = .Примечание.Text
‘Записываем данные в ячейки рабочего листа
With ActiveSheet
.Cells(НомерСтроки, 1).Value =
Фамилия
.Cells(НомерСтроки, 2).Value =
ТипВклада
.Cells(НомерСтроки, 3).Value =
СуммаВклада
.Cells(НомерСтроки, 4).Value = Отделение
.Cells(НомерСтроки, 5).Value = Примечание
End With
End Sub
11. В процедуру обработки события Click элемента Кнопка с именем Отмена поместите код:
Private Sub
Отмена_Click()
Dim
НомерСтроки As Integer
' Вычисляем номер последней строки
НомерСтроки =
Application.CountA(ActiveSheet.Columns(1))
‘ Удаляем содержимое ячеек строки
With ActiveSheet
.Cells(НомерСтроки, 1).Value = ""
.Cells(НомерСтроки, 2).Value = ""
.Cells(НомерСтроки, 3).Value = ""
.Cells(НомерСтроки, 4).Value = ""
.Cells(НомерСтроки, 5).Value = ""
End With
End Sub
12. В процедуру обработки события Click элемента Кнопка с именем Выход введите код:
Private Sub Выход_Click()
‘ Активизируем рабочий лист с именем Меню
Sheets("Меню").Activate
‘ Завершаем выполнение программы
End
End Sub
14. Отладьте и проверьте работу программы во всех режимах.
15. Сохраните проект
Предыдущая Следующая В содержание темы