Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Для обеспечения эффективности работы со списками необходимо соблюдать следующие правила при их создании:
1. Каждый столбец должен содержать однородную информацию.
2. Одна или две верхние строки в списке должны содержать метки, описывающие назначение соответствующего столбца.
3. Необходимо избегать пустых строк и столбцов внутри списка.
Правило 1 предполагает, что, например, при создании списка персонала можно отвести один столбец для табельных номеров работников, другой – для их фамилий, третий – для их имен, четвёртый – для даты приёма на работу и т. д. Это же правило запрещает размещать в одном столбце разнородную информацию, например номер телефона и год окончания школы.
Правило 2 обеспечивает присвоение имён полям. Эти имена постоянно используются при обработке списков.
Правило 3 обеспечивает возможность работы со списком как с единым целым. В идеале на рабочем листе не должно быть ничего, кроме списка. Если это невозможно, то список нужно отделить от других данных по крайней мере одной пустой строкой и пустым столбцом.
Новые данные можно добавлять непосредственно в конец списка. Весьма удобным может оказаться построчное редактирование списка с помощью стандартной экранной формы.
Пример оформления лабораторной работы
Задание
Создайте программу, ведущую список сведений об отправлении поездов от станции Ухта. Информация должна содержать: номер поезда, название поезда, кол-во вагонов, название (скорый или пассажирский), дату отправления, время стоянки, по каким числам. В программе должны быть реализованы функции поиска и редактирования данных в таблице. Для ввода и вывода информации должны быть использованы стандартные элементы интерфейса Windows (кнопки, поля, списки, счётчики, переключатели и т. д.). Данные хранятся в таблице Excel.
1. Постановка задачи
Составить программу «Расписание движения поездов по станции Ухта», предоставляющую информацию о поездах. Данные о поездах (номер, станция отправления, станция назначения, время отправления, время прибытия, всего в пути) должны храниться в таблице Excel. В программе реализовать функции поиска, выбора информации по указанному признаку и редактирования данных таблицы. Для ввода и вывода информации использовать стандартные элементы интерфейса Windows 95/98/NT.
2. Исходные данные
Исходными данными для программы являются сведения о поездах, занесенные в Excel (см. рис.) и содержащие информацию:
§ номер поезда;
§ станция отправления;
§ станция назначения;
§ время отправления;
§ время прибытия;
§ всего в пути.
На рисунке 30 представлена таблица исходных данных.
Рисунок 30 – Исходная таблица в Excel
3. Перечень функций разработанной программы
Функция добавления поезда в исходную таблицу.
Функция корректировки данных.
Функция поиска по номеру поезда.
Функция поиска по станции назначения.
4. Описание
При нажатии кнопки «Редактировать» загружается следующая форма (рис. 31):
Рисунок 31 – Форма «Редактирование»
Редактирование данных
Чтобы выполнить редактирование данных, нужно нажать кнопку Изменить. На лист Excel выводится форма UserForm1 с заголовком Редактирование. Перед показом формы происходит занесение данных с листа Excel в форму UserForm1.
Событийная процедура кнопки Редактировать
Private Sub CommandButton1_Click()
'Процедура обработки при нажатии кнопки "Редактирование"
Load UserForm1 'Загрузить форму UserForm1
i = ActiveCell.Row
UserForm1.TextBox1.Text = Worksheets(1).Rows(i).Cells(1).Value
UserForm1.TextBox2.Text = Worksheets(1).Rows(i).Cells(2).Value
UserForm1.TextBox3.Text = Worksheets(1).Rows(i).Cells(3).Value
UserForm1.TextBox4.Text = Worksheets(1).Rows(i).Cells(4).Value
UserForm1.TextBox5.Text = Worksheets(1).Rows(i).Cells(5).Value
UserForm1.TextBox6.Text = Worksheets(1).Rows(i).Cells(6).Value
UserForm1.Show 'Показать форму UserForm1
End Sub.
На диалоговой форме UserForm1 разместить надписи: код, наименование, кол-во, цена; поля TextBox1, TextBox2, TextBox3, TextBox4; TextBox5, TextBox6, счётчик SpinButton1; кнопку CommandButton1 с заголовком Записать и кнопку CommandButton2 с заголовком Добавить.
Используя компонент Счётчик, найти нужную запись, выполнить редактирование данных и нажать кнопку Записать. Все изменения отразятся в таблице.
Событийная процедура кнопки Записать
Private Sub CommandButton1_Click()
Dim m As Integer
m = ActiveCell.Row
'Данные из полей записываются в таблицу
Worksheets(1).Cells(m, 1).Value = TextBox1.Text
Worksheets(1).Cells(m, 2).Value = TextBox2.Text
Worksheets(1).Cells(m, 3).Value = TextBox3.Text
Worksheets(1).Cells(m, 4).Value = TextBox4.Text
Worksheets(1).Cells(m, 5).Value = TextBox5.Text
Worksheets(1).Cells(m, 6).Value = TextBox6.Text
'Подсчёт числа кондитерских изделий
k = UserForm1.EndFind – 3
'Вывод вычисленного значения на экран
Worksheets(1).TextBox1.Text = Str(k) & " Обьектов"
End Sub.
Если необходимо ввести новые данные в таблицу, нужно нажать кнопку Добавить. На лист Excel выводится форма UserForm1 с пустыми полями. Ввести данные и нажать кнопку Записать.
Событийная процедура кнопки Добавить
Private Sub CommandButton2_Click()
'Поиск первой свободной строки в таблице
Worksheets(1).Rows(UserForm1.EndFind).Select
UserForm1.TextBox1.Text = ""
UserForm1.TextBox2.Text = ""
UserForm1.TextBox3.Text = ""
UserForm1.TextBox4.Text = ""
UserForm1.TextBox5.Text = ""
UserForm1.TextBox6.Text = ""
End Sub.
Процедуры для компонента Счётчик
Перемещение на строку вниз
Private Sub SpinButton1_SpinDown()
i = ActiveCell.Row + 1
If Worksheets(1).Rows(i).Cells(1).Value <> "" Then
Worksheets(1).Rows(ActiveCell.Row + 1).Select
UserForm1.TextBox1.Text = Worksheets(1).Rows(i).Cells(1).Value
UserForm1.TextBox2.Text = Worksheets(1).Rows(i).Cells(2).Value
UserForm1.TextBox3.Text = Worksheets(1).Rows(i).Cells(3).Value
UserForm1.TextBox4.Text = Worksheets(1).Rows(i).Cells(4).Value
UserForm1.TextBox5.Text = Worksheets(1).Rows(i).Cells(5).Value
UserForm1.TextBox6.Text = Worksheets(1).Rows(i).Cells(6).Value
End If
End Sub.
Перемещение на строку вверх
'Перемещение на строку вверх.
Private Sub SpinButton1_SpinUp()
i = ActiveCell.Row – 1
If i > 2 Then
Worksheets(1).Rows(ActiveCell.Row – 1).Select
UserForm1.TextBox1.Text = Worksheets(1).Rows(i).Cells(1).Value
UserForm1.TextBox2.Text = Worksheets(1).Rows(i).Cells(2).Value
UserForm1.TextBox3.Text = Worksheets(1).Rows(i).Cells(3).Value
UserForm1.TextBox4.Text = Worksheets(1).Rows(i).Cells(4).Value
UserForm1.TextBox5.Text = Worksheets(1).Rows(i).Cells(5).Value
UserForm1.TextBox6.Text = Worksheets(1).Rows(i).Cells(6).Value
End If
End Sub.
Функция поиска первой свободной строки в таблице
Public Function EndFind()
Dim i As Byte
i = 2
While Worksheets(1).Rows(i).Cells(2).Formula > ""
I = i + 1
Wend
EndFind = i
End Function.
Поиск информации
Чтобы осуществить поиск № поезда по заданному № поезда или станции назначения, нужно нажать кнопку Поиск. На экран выводится форма UserForm2 с заголовком Поиск.
Событийная процедура кнопки Поиск
Private Sub CommandButton2_Click()
Load UserForm2 ‘Загрузить форму UserForm2
UserForm2.Show ‘Показать форму UserForm2
End Sub.
Форма UserForm2
На рисунке 32 представлена форма поиска информации по № поезда.
Рисунок 32 – Поиск по признаку номера поезда
На диалоговой форме UserForm2 разместить: страницы Page1, Page2. На странице Page1 надпись Label1 с заголовком Введите № поезда, поле TextBox1, кнопку CommandButton1 с заголовком Найти. На странице Page2 надпись Label2 с заголовком Введите станцию назначения, поле TextBox2, кнопку CommandButton2 с заголовком Найти.
Выбрать страницу № поезда (Станция назначения), ввести код (Станция назначения) и нажать кнопку Найти. Если номер поезда с таким № поезда найден, то соответствующая строка выделяется. В противном случае выводится сообщение “ Не найдено ”.
Поиск информации по № поезда
Событийная процедура кнопки Найти
Private Sub CommandButton1_Click()
Dim j As Integer
Dim finder As String
On Error GoTo label
i = 2
finder = UserForm2.TextBox1.Text
'Поиск строки с заданным номером поезда
While finder <> Worksheets(1).Rows(i).Cells(1).Formula
i = i + 1
Wend
'Выделение строки
Worksheets(1).Rows(i).Select
UserForm2.Hide 'Скрыть форму UserForm2
Exit Sub
label:
MsgBox "Не найдено"
End Sub.
На рисунке 33представлена форма поиска информации по станции назначения.
Рисунок 30 – Поиск информации по станции назначения
Private Sub CommandButton2_Click()
Dim j As Integer
Dim finder As String
On Error GoTo label
i = 2
finder = UCase(UserForm2.TextBox2.Text)
'Поиск строки с заданной станцией назначения
While finder <> UCase(Worksheets(1).Rows(i).Cells(3).Formula)
i = i + 1
Wend.
'Выделение строки
Worksheets(1).Rows(i).Select
UserForm2.Hide
Exit Sub
label:
MsgBox "Не найдено"
End Sub.
Дата публикования: 2014-11-02; Прочитано: 387 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!