- •1. Операторы, процедуры, типы данных vba
- •Основные типы данных в vba
- •Преобразование типов данных
- •Is (оператор)
- •Функция IsArray
- •IsArray (Имя переменной)
- •IsDate (функция)
- •IsEmpty (функция)
- •IsError( функция)
- •IsMissing(функция)
- •IsNull (функция)
- •IsNumeric (функция)
- •IsNumeric(выражение)
- •IsObject(функция)
- •2. Работа с объектами
- •3. Применение процедур vba
- •Модель программирования в Access
- •Типы процедур
- •Поле со списком
- •Вызов процедур
- •Запуск процедур-функций
- •Запуск процедур-подпрограмм
- •4. Операторы vba
- •Логические операторы Логические операторы
- •Некоторые функции в vba
- •5. Объявление переменных, констант в vba
- •Создание пользовательских типов данных
- •Dim c As клиент
- •Cоздание массивов постоянной длины
- •Cоздание массива из списка значений
- •Создание динамических массивов
- •6.Организация ввода-вывода данных с помощью функций InputBox и MsgBox
- •7. Управляющие структуры
- •Структура If … Then
- •Структура If … Then … Else
- •Вторая группа операторов]
- •Второй блок операторов]
- •Алгоритм
- •Переход по метке
- •10: Программный код Cтруктура Select Case
- •8. Циклы в vba Cтруктура For ….Next
- •Операторы
- •Структура For Each … Next
- •Структура Do… Loop
- •Структура Do While … Loop
- •Структура Do ….While Loop
- •Cтруктуры Do Until … Loop и Do … Loop Until
- •9. Операторы Exit
- •Функции для работы со строковыми переменными
- •11. Классические задачи программирования: сортировка, поиск
- •If IsNull(массив(X)) Then Exit Function
- •12. Управление базами данных
- •Основные понятия базы данных
- •Установка значений свойств
- •Считывание свойств
- •Вызов методов
- •Объект.Метод
- •Присваивание значений возвращаемых из методов
- •13. Объект Database –база данных
- •Cвойства объекта Database
- •Методы объекта Database
- •14. Объект TableDef
- •Свойства объекта TableDef
- •Методы объекта TableDef
- •Использование свойства Fields объекта TableDef
- •Использование свойства TableDefs объекта Database
- •15. Объект Form –экранная форма Свойства объекта Form
- •Применение некоторых свойств oбъекта Form Свойство Me
- •Cвойство ActiveControl
- •Свойство CurrentRecord
- •Свойство Visible
- •Свойства OrderBy и OrderByOn
- •Методы объекта Form
- •Список и поле со списком
- •Глава 16. Объект DoCmd и его методы
- •Глава 17. Объект Recordset
- •Свойства объекта Recordset
- •Свойства bof и eof
- •Создание объекта Recordset
- •Глава 18. Применение объекта Debug
- •Глава 19. Применение свойства RecordCount
- •Применение свойства Fields
- •Применение метода GetRows объекта Recordset
- •Глава 21. Объекты QueryDef
- •Свойства объектов QueryDef
- •Использование метода Execute
- •Глава 22. Применение языка sql
- •Использование выражения select
- •Простые формы select
- •Фильтрация данных с помощью предложения where
- •Сортировка данных
- •Объединение таблиц
- •Глава 23. Объект Report События
- •Некоторые свойства объекта Report
- •Методы объекта Report
- •Применение свойств объекта Report
- •Глава 24. Настройка пользовательского интерфейса
- •Глава 25. Создание и изменение панелей команд
- •Глава 26. Создание и удаление контекстных меню
- •Приложение
- •Этапы реализации задачи:
- •If IsNull(.Fields!цена) Then Exit Do
Глава 26. Создание и удаление контекстных меню
Создание контекстных меню очень похоже на создание обычных строк меню.
Только в окне Свойства панели инструментов в раскрывающемся списке Тип (Type) должно быть выбрано значение Контекстное меню. При этом пользователь получает предупреждение, что данное контекстное меню исчезнет с экрана.
Чтобы посмотреть или изменить контекстные меню, нужно выбрать (установить флажок) Контекстные меню из списка панелей команд на вкладке Панели инструментов диалогового окна настройки панелей команд.
Тогда на экране появится панель контекстных меню.
Создаваемые пользователем контекстные меню отображаются в меню Настраиваемый.
Добавлять команды в контекстное меню нужно точно так же, как в обычное меню.
Чтобы удалить контекстное меню:
1. Удалите все команды из этого меню, перетаскивая их по очереди на свободное место в окне Microsoft Access.
2. Раскройте вкладку Панели инструментов в диалоговом окне Настройка и нажмите кнопку Свойства.
3. В раскрывающемся списке Выбранная панель выберите нужное контекстное меню.
4. В раскрывающемся списке Тип выберите элемент Панель инструментов, чтобы изменить тип удаляемого объекта, и нажмите кнопку Закрыть.
5. Выделите в списке Панели инструментов соответствующее название панели команд и нажмите кнопку Удалить.
Изменение меню и панелей инструментов с помощью VBA
Меню и панелями инструментов можно программно управлять. В этом возникает необходимость, когда:
1. Сделать недоступным меню, команду меню или кнопку на панели инструментов
2. Скрыть или показать меню, команду меню или кнопку панели инструментов.
3. Скрыть или показать строку меню или панель инструментов
Чаще всего приходится изменять панели команд, разрешая или запрещая доступ к отдельным их элементам — командам меню или кнопкам.
Это может быть связано либо с разграничениями прав доступа, либо с невозможностью в текущей ситуации выполнить определенную команду. Это позволяет сделать функция СommandBars(), которая в качестве аргумента использует имя панели команд и возвращает ссылку на эту панель.
Пример :
Эта функция позволяет изменить свойство Доступ (Enabled) элемента панели команд.
Function SetEnabled (barName As String, index As Integer, state As Boolean)
Dim char As Object
Set cbar = CoinmandBars (barName)
cbar.Controls(index).Enabled = state
SetEnabled = True
End Function
В качестве параметров в функцию передаются имя панели команд barName, индекс элемента панели index и значение свойства state.
Переменная char будет содержать ссылку на нужную панель, возвращаемую
функцией CommandBars.
Семейство Controls содержит все элементы панели. Для доступа к конкретному элементу используется индекс, соответствующий номеру элемента в семействе.
В отличие от других семейств объектной модели VBA в семействе controls элементы нумеруются не с нуля, а с единицы.
Это означает, что для ссылки на первый элемент семейства нужно использовать выражение
CommandBar.Controls(1) вместо ожидаемого CommandBar.Controls (0).
Аналогичная функция может быть использована для того, чтобы скрыть или показать отдельные меню или кнопки на панели команд, только изменяться должно свойство visible того же самого семейства controls:
Function SetEnabled (barName As String, index As Integer, state As Boolean)
Dim char As Object
Set char = CommandBars(barName)
char.Controls(index).Visible = state
SetEnabled = True
End Function
Созданные вами меню и панели инструментов должны в нужное время появляться на экране.
В большинстве случаев это обеспечивается тем, что создается одна общая строка меню и одна общая панель инструментов, которые выводятся на экран при запуске приложения и заменяются в нужное время меню и панелями инструментов, связанными с формами и отчетами (если, конечно, вы отключили встроенные меню и панели инструментов Access, задав соответствующие параметры запуска).
Тем не менее, существует возможность программно управлять выводом на экран строк меню и панелей инструментов.
Чтобы задать свою собственную строку меню в качестве главной строки меню в приложении можно либо изменить параметр Строка меню в окне Параметры запуска.
Для того чтобы показывать или прятать панели инструментов в процессе работы программы, можно использовать макрокоманду панельИнструментов. Эта макрокоманда имеет два аргумента: имя панели инструментов и значение Показать.
Поле Показать на панели инструментов позволяет определить три значения:
1. Да (Yes) — панель инструментов будет всегда отображаться на экране.
2. В обычном режиме (Where Appropriate) — панель инструментов будет отображаться только при необходимости. Этот режим используется для встроенных панелей инструментов.
3. Нет (No) — панель инструментов будет скрыта.
Вместо макроса можно использовать метод showToolbar объекта DoCmd.
Это будет выглядеть в коде VBA следующим образом:
DoCmd ShowTooibar "Главное меню", acToolbarYes,
где acToolbarYes — встроенная константа.