Как сделать меню в access?

Как в Access сделать верхнее меню или панель инструментов

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

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

Пример реализации верхнего меню в Access

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

Данный пример реализован путем создания настраиваемой панели инструментов, и сейчас я покажу, как это можно сделать.

Создаем верхнее меню в Access

Для того чтобы создать такое меню, открываем Access в режиме конструктора и жмем в меню Сервис->Настройка Переходим на вкладку «Панели инструментов» и жмем «Создать»

Вводим название нашей панели инструментов, но так как мы ее будем использовать в качестве меню, так, и назовем «Верхнее меню» и жмем ОК.

Затем у Вас появится вот такая панель

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

Теперь осталось заполнить эту панель пунктами меню и назначить им ссылки на необходимые объекты (формы или отчеты). Для этого в окне «Настройка» переходим на вкладку «Команды» и опускаемся в самый низ, где мы увидим пункт «Новое меню»

Далее мы просто перетаскиваем это этот пункт на нашу панель инструментов. Это делается путем нажатия левой кнопки мыши и передвижение его в соответствующее место. После у Вас получится вот так

А для того чтобы переименовать данный пункт меню просто жмем правой кнопки мыши по данному пункту и вводим необходимое название, например «Справочники»

И таким образом добавляем столько пунктов сколько необходимо. Например, вот так

Теперь осталось добавить под пункты с назначенными ссылками на объекты, для этого в окне «Настройка» вкладка «Команды» находим пункт «Все формы», вы, конечно, можете назначать все что угодно (отчеты, запросы), делается все также, но сейчас для примеры выбираем «Все формы». После чего у Вас отобразятся все формы, созданные в данном проекте (подразумевается, что они у Вас уже есть), выбираем нужную и перетаскиваем в необходимое место.

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

А если Вы хотите сделать, чтобы подпункт в меню раскрывался также как и основной пункт меню, т.е. получается третий уровень меню, то просто находим снова в окне «Настройка» пункт «Новое меню» и добавляем его в качестве подпункта.

Я думаю понятно, как можно конструировать меню, в общем, делаем до конца наше меню, и в конце сделаем, тип нашей панели инструментов, настоящим меню, для этого открываем меню, настройка, находим нашу панель и жмем ее свойства

Где выбираем тип «Строка меню»

А теперь, ну я думаю Вам известно, чтобы пользователи видели только те панели, которые им необходимы, в нашем случае это «Верхнее меню» заходим в Сервис->Параметры запуска

Где мы можем ввести название нашего приложения и задать меню по умолчанию, также пользователям лучше не видеть «окно базы данных». Кстати здесь же можно задать открытие формы при старте приложения, но мы пока этого не будем делать.

Теперь при запуске у пользователей будет отображаться только наше меню, а чтобы запустить Access и в частности наше приложение в режиме конструктора, я думаю не для кого, не секрет что это делается путем открытия Access с зажатой клавишей Shift.

Вот в принципе и все, наше меню готово и если Вы все сделали правильно, то у Вас все будет также как на самой первой картинке в начале статьи. На этом все удачи!

Читать еще:  Как сделать чтобы access не округлял?

Создание меню в Access

Для создания меню в Access проделайте следующие действия:

  1. Откройте окно Настройка (Customize), например, щелкнув правой кнопкой мыши по панели инструментов и выбрав команду Настройка (Customize). Таким способом осуществляется переход в режим настройки панелей команд.
  2. По умолчанию открывается вкладка Панели инструментов (Toolbars). Если у вас открылась другая вкладка, раскройте именно эту вкладку. Пока в списке на этой вкладке отображаются только стандартные панели команд. К этому списку нужно добавить новую панель команд типа Строка меню (Menu Bar). Нажмите кнопку Создать (New).
  3. В диалоговом окне, запрашивающем имя создаваемой панели команд, введите название: Главное меню (рис. 14.23) и нажмите кнопку ОК.

Рис. 14.23. Создание новой панели команд

  1. Появится маленькая пустая панель, которая по умолчанию является панелью инструментов. Чтобы превратить ее в строку меню, необходимо изменить ее тип. Для этого выделите элемент Главное меню в списке на вкладке Панели инструментов (Toolbars) (он добавляется в конец списка) и нажмите кнопку Свойства (Properties). Откроется диалоговое окно Свойства панели инструментов Properties (рис. 14.24).
  2. В раскрывающемся списке тип (Туре) выберите значение Строка меню (Menu Bar).

Рис. 14.24. Диалоговое окно Свойства панели инструментов

Кроме типа, для данной панели команд можно задать еще ряд свойств:

  • закрепление (Docking). Можно задать расположение панели команд на экране: в любом месте, только по горизонтали, только по вертикали или вообще запретить его изменять.
  • отображение в меню (Show on Toolbars Menu). Установите этот флажок, если вы хотите, чтобы название этой панели команд отображалось в списке, появляющемся при выполнении команды меню Вид, Панели инструментов (View, Toolbars).
  • настройка (Allow Customizing). Сброс этого флажка запретит изменение данной панели команд.
  • изменение размера (Allow Resizing). Если этот флажок не установлен, изменение размеров данной панели команд будет не возможно.
  • перемещение (Allow Moving). Сбросьте этот флажок, если нужно запретить перемещение панели команд по экрану.
  • отображение и скрытие (Allow Showing/Hiding). Когда этот флажок сброшен, пользователь не будет иметь возможности скрывать и снова отображать панель команд на экране.

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

Пока наша строка меню пустая. Теперь в нее можно добавить меню — списки команд, раскрывающиеся при выборе меню в строке меню или на панели инструментов. Чтобы добавить меню на панель команд:

  1. Раскройте вкладку Команды (Commands) в диалоговом окне Настройка (Customize).
  2. Выделите в списке Категории (Categories) значение Новое меню (New Menu).
  3. Перетащите элемент Новое меню (New Menu) из списка Команды (Commands) на новую панель.

Теперь вы увидите на ней элемент Новое меню (New Menu) (рис. 14.25).

Рис. 14.25. Создание пользовательского меню

Изменить название созданного меню можно в окне свойств. Для этого необходимо щелкнуть правой кнопкой мыши по меню и выбрать в контекстном меню команду Свойства (Properties). Появится диалоговое окно Свойства элемента Главное меню (Control Properties) (рис. 14.26).

Рис. 14.26. Диалоговое окно Свойства элемента Главное меню

В этом окне можно задать следующие значения:

  • В поле подпись (Caption) введите название меню: Клиенты.
  • В поле всплывающее сообщение (ScreenTip) можно ввести текст всплывающей подсказки.
  • Поле действие (On Action) следует оставить пустым. Обычно оно определяет действие, выполняемое при выборе данного элемента панели команд. При выборе меню Клиенты должен раскрываться список команд данного меню. Это будет выполняться автоматически, т. к. в качестве элемента строки меню мы добавили меню.
  • Поле стиль (Style) позволяет определить вид элемента панели команд, в данном случае — меню. Раскрывающийся список имеет следующие значения:
    • По умолчанию (Default Style) — на элементе меню выводятся одновременно значок и надпись;
    • Только текст (всегда) (Text only (Always)) — и на элементе меню и на кнопке выводится только надпись;
    • Только текст (в меню) (Text only (In Menus)) — выводится надпись на элементе меню и значок на кнопке;
    • Рисунок и текст (Image and Text) — и на элементе меню и на кнопке выводится как значок, так и надпись.
  • Два поля — файл справки (Help File) и идентификатор справки (HelpContextlD) — позволяют связать с данным элементом панели команд раздел из справочной системы приложения, который будет отображаться при нажатии клавиши , если данный элемент выделен.
  • Поле параметр (Parameter) связано с полем действие (On Action) и определяет значение аргумента функции, если в поле действие (On Action) определен вызов функции. В данном случае оно тоже остается пустым.
  • В поле дополнительные сведения (Tag) можно ввести информацию, которая может быть доступна из процедуры VBA.
  • Установленный флажок Создать группу (Begin a Group) означает, что данный элемент панели команд является началом группы и слева от него (в этом случае в строке меню) будет отображаться разделительная линия.
Читать еще:  Как сделать перекрестный запрос в access 2010?

Закройте окно Свойства элемента меню и будем добавлять в меню команды. Для этого можно использовать ту же вкладку Команды (Commands) диалогового окна Настройка (Customize). Выбрав категорию, а затем команду из выбранной категории, можно перетащить ее в данное меню. Например:

  1. Выберите категорию Все формы (All Forms).
  2. Перетащите в меню те формы, которые мы использовали при создании кнопочной формы в предыдущем разделе: «Клиенты» (Customers), «Наклейки для клиентов» (Customer Label Dialog), «Телефоны клиентов» (Customer Phone List), «Заказы клиентов» (Customer Orders) (рис. 14.27).

Рис. 14.27. Добавление команд в меню

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

Чтобы добавить в строку меню следующее меню со списком команд, нужно снова выбрать на вкладке Команды (Commands) диалогового окна Настройка (Customize) категорию Новое меню (New Menu), затем элемент Новое меню (New Menu) и перетащить его в данное меню, поместив его справа от первого элемента. Чтобы изменить вид меню или подменю, щелкните по соответствующему элементу правой кнопкой мыши. Можно использовать команды появившегося при этом контекстного меню или открыть окно Свойства элемента (Control Properties).

Удаление меню выполняется очень просто. Достаточно в режиме настройки панелей команд перетащить соответствующий элемент в пустую область окна Microsoft Access. Аналогично можно перетаскивать подменю и команды меню из одних меню в другие, также можно команду меню превратить в кнопку на панели инструментов и наоборот. Поскольку меню и панели инструментов являются разными типами одного объекта — панели команд, на панели инструментов можно размещать меню, а в строку меню можно добавлять кнопки.

Замечание

Выполнять все описанные действия можно только в режиме настройки панелей команд, т. е. при открытом окне Настройка (Customize).

Чтобы окончательно придать меню профессиональный вид (как в стандартном меню Access), необходимо каждому меню и команде меню назначить клавиши доступа. Буквы, соответствующие этим клавишам, выделяются в названии элемента подчеркиванием. Клавиши доступа используются следующим образом. Для того чтобы раскрыть меню, нужно при нажатой клавише нажать клавишу, соответствующую подчеркнутой букве в названии этого меню. Например, комбинация клавиш +«Ф» (+ ) раскрывает меню Файл (File). Далее, чтобы выбрать команду меню, достаточно просто нажать клавишу, соответствующую подчеркнутой букве в названии команды.

Чтобы указать символ, который будет определять клавишу доступа, нужно в имени команды (в поле подпись (Caption) окна свойств элемента меню) вставить перед этим символом знак &, например «&Товары». При этом в разных командах одного меню должны быть использованы обязательно разные символы, определяющие клавиши доступа, хотя в разных меню символы могут совпадать.

Studhelper IT

Разработка приложений, переводы книг по программированию

четверг, 20 февраля 2014 г.

Пользовательская лента меню Access 2007

Оформление пользовательской ленты меню в MS Access 2007 — задача не такая простая, как в Access 2003. Примеры из руководства к Office на сайте Microsoft содержат ошибки и не срабатывают. Создадим ленту на примере демонстрационной базы данных.

В демо-базе находятся пока одна таблица и одна форма. Тематика – медицина (учет пациентов в больнице). Перейдем к формированию ленты.
1. Путь первый. Создаем ленту с системными рисунками.
Настройки ленты будут храниться в системной таблице – USysRibbons. По умолчанию, системные объекты не видны. Чтобы их включить, переходим Пуск -> Параметры Access -> Текущая база данных. Спускаемся в раздел Переходы и нажимаем кнопку «Параметры переходов». Устанавливаем галочку «Показывать системные объекты».

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

Необходимо проверить, чтобы имена полей точно совпадали с указанными на рисунке. Поле ID – ключевое.
Сохраняем таблицу под именем USysRibbons.
Вот такая получилась база данных.

Что как бы подразумевается в этой базе. Справочник пациентов, справочник МКБ (это международная классификация болезней), документы госпитализации и выписки, отчет по статистике. На каждый объект (справочник и документ) должна быть форма. На каждую форму и отчет должен быть макрос (или функция в модуле). Создать макрос легко – в разделе «Создание» нажать кнопку «Макрос» выбрать из выпадающего меню «ОткрытьФорму» или «ОткрытьОтчет», затем в аргументах выбрать название формы или отчета.
Заполним таблицу с настройками ленты. В поле RibbonName запишем название нашей будущей ленты, допустим, MedStat.
В поле RibbonXml введем текст:

Читать еще:  Как сделать базу данных в access 2010 пошагово?

Пояснения по тексту:
Строчка ribbon startFromScratch=»true» показывает, что мы создаем свою ленту «с нуля», то есть остальных акцессовских менюшек не будет.
Затем описываем вкладки “tabs”. У каждой пишем название и id. Затем идут группы кнопок – Справочники, Документы и Отчеты. Затем описываем каждую кнопку, в параметре OnAction пишем название макроса, отвечающего за это действие. imageMso – это рисунок на кнопке. В этом варианте мы берем системные рисунки. Их можно посмотреть, если открыть Пуск -> Параметры Access -> Настройка. Видим список команд, выбираем из поля со списком пункт «Все команды» и ищем подходящий по смыслу значок. Если на строчку навести курсор, то всплывет строчка, в которой видно название рисунка (imageMso)

Вот его и указываем.
После ввода данных идем в параметры Access -> Текущая база данных и в параметрах ленты указываем нашу ленту

Если ее в списке нет, то базу нужно закрыть, снова открыть и выбрать ленту. И еще не забываем убрать галочку «Область переходов». Затем снова закрываем и открываем базу. Результат

2. Путь второй. Лента с пользовательскими рисунками
Как быть, если хочется, чтобы рисунки на кнопках были свои, подходящие к теме?
Скачаем набор иконок (или нарисуем) для своей базы. Все картинки нужно перевести в формат bmp, а то в итоге получится ошибка 481 – invalid picture, короче, неверный формат рисунка.
Закрываем базу, зажимаем кнопку Shift и, держа ее нажатой, запускаем базу снова. Появляется стандартное меню Access.
Здесь у нас опять распутье – можно загружать рисунки из папки на диске, можно хранить в базе данных. Первый способ предполагает постоянное расположение рисунков в одном месте и копирование их вместе с базой. Вместо ImageMso=”идентификатор” нужно писать
getImage=»onGetImage» И еще нужно создать функцию VBA
Function onGetImage(control As IRibbonControl, ByRef image)
Select Case control.ID
Case «myControl»:
Set image = LoadPicture(«c:imagesMyImage.bmp»)
End Select
End Function Лучше выбрать второй способ и хранить рисунки в базе данных. Но тут необходимо создать еще три объекта – таблицу для хранения рисунков, форму для их выбора и функцию VBA.
Есть два варианта хранения рисунков – в одной записи все рисунки и в каждой записи по рисунку. В первом случае код проще, но масштабируемость хуже. Если в базе много рисунков, возникнут сложности. Поэтому сразу выбираем второй вариант, потому что код все равно готовый и придумывать не нужно.
Создаем системную таблицу USysRibbonImages с полями:
ControlId – текстовое (идентификатор рисунка) – ключевое.
Images – вложение (Attachment) – один или несколько рисунков
Description – текстовое (описание).
Сейчас создаем форму. Выделяем эту таблицу, переходим на вкладку Создание и нажимаем кнопку «Форма». Сохраняем форму с тем же именем.
Вносим все нужные картинки, записывая для каждой уникальный идентификатор (такой же, как и идентификатор кнопки, например, frm1, если взять мой пример).
Создаем модуль в редакторе Visual Basic, в модуле пишем функцию
Public Function OnGetImage(control As IRibbonControl, ByRef image)
Static frmRibbonImages As Form
Static rsForm As DAO.Recordset2
Dim rsAttachments As DAO.Recordset2
If frmRibbonImages Is Nothing Then
DoCmd.OpenForm «USysRibbonImages», WindowMode:=acHidden
Set frmRibbonImages = Forms(«USysRibbonImages»)
Set rsForm = frmRibbonImages.Recordset
End If

rsForm.FindFirst «ControlId='» & control.Id & «‘»
If rsForm.NoMatch Then
‘ No image found
Set image = Nothing
Else
Set image = frmRibbonImages.Images.PictureDisp
End If
End Function Пояснение. Скрыто открывается форма с рисунками, определяется ее RecordSet. В этом RS по полю идентификатора ищется нужный рисунок. Если такой рисунок найден, то он присваивается по ссылке параметру Images.
Если приложение выдает ошибку, что какой-то объект not defined, то, возможно, не подключена библиотека с компонентом IRibbonControl. Нужно зайти в меню Tools -> References и поставить там галочку в строке Microsoft Office

Сохраняем. Сейчас нужно изменить таблицу с параметрами ленты. В поле RibbonXml вместо ImageMso пишем
getImage=»OnGetImage» То есть, например, получится такая строчка для первой кнопки:
button id=»frm1″ size=»large» label=»Пациенты» screentip=»Пациенты» supertip=»Пациенты» getImage=»OnGetImage» onAction=»mPatient» /> Сохраняем, перезапускаем базу. Если все нормально, то нужно еще загрузиться с шифтом и убрать из доступа системные объекты, а то мало ли пользователь доберется.
Вот итоговый результат:

Ссылка на основную публикацию
Adblock
detector