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.       В окне редактирования кода введите текст программы этой процедуры:

 Private Sub ЗаголовокРабочегоЛиста()

‘Активизируем рабочий лист

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

 9.       В процедуру обработки события Initialize элемента Форма с именем Вклад запишите код:

Private Sub Вклад_Initialize()

‘Изменим название в строке заголовка приложения

Application.Caption = "Регистрация. Бза данных Банк"

Закрываем строку формул

Application.DisplayFormulaBar = False

With Принять

.Default = True

‘Установка всплывающей подсказки

.ControlTipText = "Ввод данных в базу данных"

End With

With Отмена

.Cancel = True

.ControlTipText = "Кнопка отмены"

End With

ЗаголовокРабочегоЛиста

End Sub

 10.   В процедуру обработки события Click элемента кнопка с именем Принять введите код;

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

 End With

‘Записываем данные в ячейки рабочего листа

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

 13.   Перейдите в приложение Excel, активизируйте рабочий лист Меню и щелкните на кнопке Прием вклада. Программа должна активизироваться и на экране появится созданное диалоговое окно.

14.   Отладьте и проверьте работу программы во всех режимах.

15.   Сохраните проект  

Предыдущая   Следующая    В содержание темы
Hosted by uCoz