Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Ввод новой записи в форме, обработка записей

Поиск

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

Дополним исходную таблицу двумя полями: Пол и Дата поступления на работу.

В редакторе VBA отобразим окно проекта и окно свойств (View / Project Explorer и View / Properties Window), создадим пользовательскую форму (Insert / Userform), введем в нее элементы управления – пять надписей (Label), пять полей ввода (TextBox), две кнопки (CommandButton). Изменим свойства объекта форма – заголовок (Caption), шрифт (Font).

Добавим в проект Модуль (Insert / Module).

 

Процедура, активизирующая форму, содержит только одну команду

UserForm1.Show ‘активизировать форму

 

Процедура, закрепленная за кнопкой Ввести

Private Sub CommandButton1_Click() ‘личная процедура первой

командной кнопки формы

i = 1 ‘переменной, отвечающей за номер строки, присваиваем значение 1

While Cells(i, 1) <> Empty ‘цикл, до тех пор, пока в ячейке i строки и первого столбца не будет пусто

i = i + 1 ‘увеличить номер анализируемой строки на 1

Wend ‘закончить цикл

With UserForm1 ‘действия с объектами формы

Cells(i, 1) =.TextBox1.Text ‘ячейке текущей строки и первого столбца присвоить значение первого текстового поля формы

Cells(i, 2) =.TextBox2.Text

Cells(i, 3) =.TextBox3.Text

Cells(i, 4) =.TextBox4.Text

Cells(i, 5) =.TextBox5.Text

.Hide ‘удалить форму с экрана

End With ‘закончить действия с формой

End Sub ‘конец процедуры

Рис. 4

 

Процедура, закрепленная за кнопкой Отмена

Private Sub CommandButton2_Click()

UserForm1.Hide

End Sub

 

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

Для этого создадим форму (рис. 5), в которой для ввода пола сотрудника используем переключатели (OptionBytton), для ввода должности – поле со списком (ComboBox), оклада – счетчик и поле ввода (SpinButton и TextBox). Для удобства пользователя в качестве даты, заданной по умолчанию, примем текущую дату.

Рис. 5

Sub ввод_форма ()

With UserForm2

.TextBox2 = Date ‘второму полю ввода присвоить значение текущей даты

‘Второй лист содержит справочник должностей, заполняющий поле ‘ввода со списком

i = 1

While Sheets("Лист2").Cells(i, 1) <> Empty ‘

.ComboBox1.AddItem Sheets("Лист2").Cells(i, 1)

i = i + 1

Wend

.Show

End With

End Sub

 

‘Процедура очищает элементы управления формы или присваивает ‘им первоначальные значения для дальнейшего ввода

Sub clear_form()

With UserForm2

.TextBox1 = Empty ‘очищается поле с фамилией

.OptionButton1.Value = True ‘включается первая опция

.TextBox2 = Date ‘устанавливается текущая дата

.TextBox3 = 1000 ‘первоначальное значение оклада присваивается полю ввода

.ComboBox1.ListIndex = 0 ‘в списке активизируется первый элемент

.SpinButton1.Value = 1000 ‘первоначальное значение оклада присваивается счетчику

End With

End Sub

‘Процедура закреплена за кнопкой Ввести

Private Sub CommandButton1_Click()

‘осуществляется поиск первой пустая ячейки в первом столбце

‘текущего листа

i = 1

While Cells(i, 1) <> Empty

i = i + 1

Wend

Cells(i, 1) = TextBox1

‘если включена первая опция, в ячейку текущей строки второго ‘столбца записывается “м”, в противном случае “ж”.

If OptionButton1.Value = True Then

Cells(i, 2) = "м"

Else

Cells(i, 2) = "ж"

End If

Cells(i, 3) = TextBox2.Text

Cells(i, 4) = ComboBox1.Text

Cells(i, 5) = TextBox3.Text

clear_form

End Sub

 

Процедура, закрепленная за кнопкой Отмена

Private Sub CommandButton2_Click()

UserForm2.Hide

End Sub

 

Две ниже представленные процедуры позволяют «связать между собой» поле ввода, отражающее оклад, и счетчик.

Private Sub SpinButton1_Change()

TextBox3.Text = SpinButton1.Value

End Sub

 

Private Sub TextBox3_Change()

SpinButton1 = CCur(TextBox3.Text)

End Sub

 

Задание № 9. Создать программы по вводу новой записи и обработке с использованием пользовательских форм и различных элементов управления (см. табл. 5 и 6).

Задание № 10. Создать процедуру по поиску записей по символьному полю. Вывод найденных записей осуществить в пользовательской форме с возможностью перехода по записям вперед и назад.

Задание № 11. Создать процедуру по поиску записей из диапазона дат. Начальная и конечная даты вводятся на разных страницах формы, для ввода дня и года использовать счетчик, для ввода месяца – список (рис. 6). (* Предусмотреть проверку правильности ввода дат*).

Рис. 6

 

Задачи для самостоятельной работы приведены в прил. 1. В них необходимо разработать алгоритм решения задачи и создать процедуры, позволяющие заполнять часть рабочего листа Excel согласно таблице. Исходным данным является размер квадратной заполняемой области n, вводимой с помощью счетчика в пользовательской форме.

 

ТЕМА № 5



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 175; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.244.92 (0.006 с.)