Пример: Заполнение таблицы базы данных

ПРАКТИЧЕСКОЕ ЗАДАНИЕ №8. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ.

Элемент управления Поле со списком. Поле со списком применяется для хранения списка значений и сочетает в себе функциональные возможности списка и поля ввода. В отличие от списка, в нем отображаются только один элемент списка, а режим выделения нескольких элементов отсутствует. Свойства аналогичны свойствам элемента Список. Дополнительные свойства:

Свойство Описание
DropButtonStyle Устанавливает вид поля со списком. Допустимые значения: FmdropButtonStylePlain – кнопка без символов FmdropButtonStyleArrowdisplays – кнопка со стрелкой FmdropButtonStyleReduce – кнопка с линией FmdropButtonStyleEllipsis – кнопка с линией
ListRows Устанавливает число элементов , отображаемых в поле со списком
MatchRequired Лог.свойство – true – в поле ввода нельзя ввести значения, отличные от перечисленных в списке, false – иначе.
MatchFound Лог.свойство – true – среди элементов поля со списком имеется элемент, который совпадает с элементам в поле ввода, false – иначе.

Пример: Заполнение таблицы базы данных .

В Excel существует встроенное средство – форма, диалоговое окно, с помощью которого можно заполнять и редактировать записи в таблице базы данных. Большим неудобством средства меню Данные/Форма является то, что каждому полю записи в нем соответствует только одно поле ввода. Но чаще при заполнении баз данных часто значения некоторых полей выбираются из некоторого списка. Лучше при наличии альтернативных значений использовать списки, переключатели, флажки, а не ограничиваться полями для ввода, как этот имеется в средстве Форма. Это во первых, позволит ускорить процесс заполнения таблицы, а во-вторых, избавит от опечаток.

Создадим свою пользовательскую форму для заполнения базы данных некоторой туристической фирмы.

Сначала создайте новую рабочую книгу, и на первом листе введите заголовки столбцов для базы данных.

Фамилия Имя Пол Выбранный тур оплачено фото паспорт срок
               

Затем посмотрите форму, которую создает MS Excel для заполнения, для этого нажмите Данные/Форма.

Нас не устраивает данная форма, создаем свою. Зайдите в VBA и создайте новую форму и вставляем элементы управления в соответствии с рис.

Пример: Заполнение таблицы базы данных - student2.ru

Используя свойства настройте следующие значения свойств Name элементов управления :

Элемент управления Свойство Name Предназначение
Поле ввода Textsurname Ввод фамилии клиента
Поле ввода Textname Ввод имени клиента
Поле ввода Textdays Продолжительность тура можно вводить либо с клавиатуры либо с помощью счетчика
Счетчик SpinDays Вводит продолжительность тура
Поле со списком Tour Выбор из предложенных туров
Переключатели Male Female Выбор пола
Флажки Payment Photo Passport Флажки : оплата Фото Паспорт
Кнопка Cmdok Ввод записи
Кнопка Cmdcancel Закрытие окна

Надписи и названия кнопок дайте самостоятельно согласно приведенному рис. c помощью свойства Caption .

Введите следующий код в модуле формы:

' описание типа клиент , в который будет входить следующая информация:

' фамилия, имя, и т.д.

Private Type klient

familiya As String

imy As String

pol As String

tur As String

oplacheno As String

foto As String

pasport As String

srok As String

End Type

Private Sub UserForm_Initialize()

' задание параметров раскрывающегося списка

With tour

.List = Array("Лондон", "Париж", "Берлин", "Карибы", "Малибу", "Мадрид")

.ListIndex = 0

End With

End Sub

Private Sub cmdok_Click()

' процедура считывания информации из диалогового окна и ее записи в базу данных

Dim newklient As klient

Dim stroca As Integer

' строка- номер первой строки из диалогового окна в переменную

stroca = WorksheetFunction.CountA(Range("A:A")) + 1

'считывание информации из диалоговго окна в переменную

With newklient

.familiya = Textsurname.Text

.imy = Textname.Text

.srok = Textdays.Text

.tur = tour.Text

If male.Value = True Then .pol = "Муж"

If female.Value = True Then .pol = "Жен"

If payment.Value = True Then .oplacheno = "Да" Else .oplacheno = "Нет"

If photo.Value = True Then .foto = "Да" Else .foto = "Нет"

If passport.Value = True Then .pasport = "Да" Else .pasport = "Нет"

End With

' ввод данных в строку с номером строка рабочего листа

With newklient

Cells(stroca, 1).Value = .familiya

Cells(stroca, 2).Value = .imy

Cells(stroca, 3).Value = .pol

Cells(stroca, 4).Value = .tur

Cells(stroca, 5).Value = .oplacheno

Cells(stroca, 6).Value = .foto

Cells(stroca, 7).Value = .pasport

Cells(stroca, 8).Value = .srok

End With

End Sub

Private Sub cmdcansel_Click()

'процедура закрытия окна

Unload Me

End Sub

Private Sub Spindays_Change()

'процедура ввода числа со счетчика в поле ввода

Textdays.Text = CStr(Spindays.Value)

End Sub

Private Sub Textdays_Change()

' процедура установки значения счетчика из поля ввода

If Not IsNumeric(Textdays.Text) Then Exit Sub

Spindays.Value = CInt(Textdays.Text)

End Sub

Теперь запустите модуль на выполнение и введите 5 записей.

Наши рекомендации