Основы программирования

Офисное программирование - Конструирование пользовательского интерфейса
Индекс материала
Офисное программирование
Осноные седения о программироании на VBA
Определения
Обзор типов данных VBA
Переменные
Константы
Математические функции
Операторы и выражения
Логические операторы
Повторение действий: циклы
Объект UserForm
Использование форм
Задачи на закрепление материала
Массивы, процедуры, функции
Работа с различными типами данных
Функции работы со строками
Процедуры и функции VBA
Макросы
Создание VBA-программ
Элементы управления ComboBox, OptionButton и Frame
Элементы управления MultiPage, ScrollBar, SpinButton
Набор страниц MultiPage
Полоса прокрутки ScrollBar
Объект DataObject
Реализация технологии DragAndDrop
Программирование на VBA в Word
События объекта Document
Объекты Range и Selection
Работа с буфером
Форматирование документа
Создание кнопки или панели в Word
Автоматизация стандартных документов
Задачи на закрепление материала
Создание VBA-программ
Создание модуля Печать
Создание модулей работы кнопок
Особенности использования VBA в Excel
Метод AutoFilter
Метод Sort
Использование метода GoalSeek
Использование методов AutoFill
Математическая модель решения задачи
Разработка интерфейса пользователя
Финансовые функции
Построение диаграмм средстами VBA
Базы данных в Excel
Конструирование пользовательского интерфейса
Конструирование интерфейса. Презентация
Создание собственного головного меню
Добавление подменю
Добавление выпадающих меню
Все страницы

 

Microsoft Excel содержит встроенные средства по созданию и управлению базами данных. Это:

создание таблицы базы данных (осуществляется при заполнении заголовков полей таблицы);

заполнение таблицы базы данных (меню <Данные> <Форма>);

сортировка записей таблицы (меню <Данные> <Сортировка>);

фильтрация записей таблицы по определенному признаку или группе признаков (меню <Данные> <Фильтр>) и др.

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

Пример 59. Создать приложение с пользовательским интерфейсом по заполнению и обработке базы данных туристической фирмы «Балашов-Тур». База данных состоит из двух рабочих листов: «База Данных» и «Фильтр».

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

Технология выполнения

Первое диалоговое окно уже существует (пример 57), оно реализует заполнение базы данных. С помощью второго диалогового окна будет реализовываться сортировка записей таблицы.

Примечание. Пересохраните работу Пример57 как Пример59.

Второе диалоговое окно (UserForm2, рис. 113) позволяет осуществлять сортировку записей таблицы (рис. 114) по одному из двух критериев:

продолжительности тура;

фамилии.

 

 

Рис. 113. Форма 2 для примера 59

 

Также предоставляется выбор сортировки по возрастанию или по убыванию. Интересной особенностью этого диалогового окна является название второй кнопки. При появлении на экран кнопка носит название «Отмена», а после осуществления сортировки получает название «Закрыть».

Для облегчения написания кода сортировки следует воспользоваться макрорекордером. После включения записи выполните следующие шаги:

1) выделите записи базы данных;

2) выберите в меню <Данные> <Сортировка>;

3) при появлении диалогового окна выберите поле, по которому осуществляется сортировка, а также ее направление;

4) нажмите Enter;

5) выключите макрорекордер.

При просмотре полученного макроса можно обнаружить несколько операторов, которые станут шаблоном для кода. Это выделение области сортировки (записей базы) и собственно сама процедура сортировки. Примерно так:

 

Range(«A2:H5»).Select

Selection.Sort Key1:=Range(«A2»), Order1:=xlAscending, Key2:=Range(«B2»), Order2:=xlAscending, Key3:=Range(«E2»), Order3:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

 

Что придется корректировать:

1) область сортировки. Необходимость корректирования вполне ясна: количество записей может быть меньше либо больше, чем в данный момент. Для определения числа записей воспользуемся известным приемом (см. пример 57);

2) поле, по которому осуществляется сортировка. Необходимо предусмотреть выбор поля перед самой сортировкой (в элементе управления «Поле со списком» (ComboBox1));

3) направление сортировки. Также нужно предусмотреть выбор одного варианта из двух (переключатель OptionButton1 или OptionButton2).

Создайте форму UserForm2. Затем в окне ее кода создайте процедуру для кнопки ОК.

 

Private Sub CommandButton1_Click()

КоличествоСтрок =

Application.CountA(ActiveSheet.Columns(1))

'Количество записей в базе

Range(Cells(2, 1), Cells(КоличествоСтрок, 8)).Select

'выделение области сортировки

If ComboBox1.Value = «фамилии» Then

KeySort = «A2»

'ключ сортировки – поле с фамилией

Else

KeySort = «H2»

'ключ сортировки – поле со сроком поездки

End If

'Сортировка

If OptionButton1.Value Then

'по возрастанию

Selection.Sort Key1:=Range(KeySort), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Else

'по убыванию

Selection.Sort Key1:=Range(KeySort),

Order1:=xlDescending,Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End If

Range(«A2»).Select

'установка активной ячейки с первой фамилией

CommandButton2.Caption = «Закрыть»

'изменение названия второй кнопки

End Sub

 

Вторая кнопка закрывает форму и возвращает свое исходное имя.

 

Private Sub CommandButton2_Click()

CommandButton2.Caption = «Отмена»

UserForm2.Hide

End Sub

 

Для инициализации формы UserForm2 откройте Модуль1 и вставьте процедуру инициализации формы.

 

Public Sub UserForm2_Initialize()

' обратите внимание, что процедура глобальная!

UserForm2.ComboBox1.List = Array(«фамилии», «продолжительности тура»)

UserForm2.ComboBox1.ListIndex = 0

UserForm2.Show

End Sub

 

 

Рис. 114. Вывод данных на лист excel

 



 
Одежда из Милана, новый showroom - одежда оптом женская в москве.