powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Небольшой FAQ по ribbons (лента)... как это было у меня..
9 сообщений из 34, страница 2 из 2
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39953258
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я гуглил и в курсе, что Оператор Option Compare Database может использоваться только в Microsoft Access
как код в 1-м посте переделать под Ворд?
...
Рейтинг: 0 / 0
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39953287
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,по ссылке всё есть - Ribbon XML Editor
...
Рейтинг: 0 / 0
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39953368
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
всё есть

я лично не увидел ответа на вопрос как генерировать ленту
...
Рейтинг: 0 / 0
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39953409
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа, ну плохо тебе.
...
Рейтинг: 0 / 0
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39953551
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа
я лично не увидел ответа на вопрос как генерировать ленту
Генерировать легко ленту - есть платный софт
Из бесплатного - Ribbon XML Editor
Но для его использования нужны, минимум, базовые знания по структуре ленты (2007, 2010 и +)
Потому и тяжеловато.
Поищите книгу по Ribbon
катастрофа
это макросом? подскажите как, каким кодом?
В коде. Когда то сюда сбрасывал. Но там полуручная сборка, тоже требующая некоторых знаний + что то там глючное было...
Больше для анализа и перепила под себя, если вдруг..
катастрофа
я получаю ошибку 91
Не инициируется лента. Я на стартовую форму прописываю в свойствах имя ленты + в свойствах БД, и все подхватывается.
Но если использовать таблицу с неким спец названием...(не помню название)...то все происходит без дополнительных усилий

И помнить
любая ошибка в структуре xml ленты, своя лента не загрузится.
Ничего, ни сообщения, ни валится ничего. Тупо молчит и игнорит вашу ленту
...
Рейтинг: 0 / 0
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39970852
ial52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа!

Знает ли кто как можно переключиться между двумя риббонами?

Вроде простой вопрос, а понять никак не могу

Всем спасибо заранее!
...
Рейтинг: 0 / 0
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39987147
NTGAMember
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток всем! Подскажите, а с картинками для пунктов меню ленты как быть, это что в атрибуте imageMso, где они хранятся, откуда все эти имена, что автор темы указал в своем xml?
...
Рейтинг: 0 / 0
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39990001
ПавелЖд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NTGAMember,

9206304 в этом посте, внизу, указан файлик со всеми картинками и кодами к ним.
...
Рейтинг: 0 / 0
Небольшой FAQ по ribbons (лента)... как это было у меня..
    #39990008
ПавелЖд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот как было у меня ...
Второй день я пытаюсь "прикрутить" свою ленту к программе. Прочитал кучу постов, попробовал несколько готовых наработок. Но меня не покидало подлое чувство, что где-то что-то не договаривают или я чего-то не понимаю, потому что постоянно ... не работало.

Итак, история о том КАК получилось:

Вооружаемся инструментами:
  • Чтоб сделать XML код - Ribbon XML Editor . Ссылка в посте 22125723
  • Для проверки ленты - Excel . Начиная с 2007 версии.
--------------------------------------------------------------------------
Для начала создадим пустой файл Excel с расширением xlsm.
Затем запускаем Ribbon XML Editor.
После загрузки жмем ctrl+O. Открываем созданный файл. В нем будем проверять сделанную ленту!
--------------------------------------------------------------------------
Нам нужна совершенно неприметнейшая кнопка в левом верхнем углу! Жмем.



После нажатия появляется базовый набор строк.
--------------------------------------------------------------------------
К примеру, сделаем две группы, в каждой по одной кнопке.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
	<ribbon startFromScratch="true">
		<tabs>
			<tab id="id_tab" label="НАЗВАНИЕ ВКЛАДКИ НА ЛЕНТЕ">
				<group id="gr1" label="подпись под контролами в группе 1">
					<button id="but1" size="large" label="название кнопки1" imageMso="TranslationToolTip" onAction="rib_run"/>
				</group>
				<group id="gr2" label="подпись под контролами в группе 2">
					<button id="but2" size="large" label="название кнопки2" imageMso="ControlLayoutRemove" onAction="rib_run"/>
				</group>
			</tab>
		</tabs>
	</ribbon>
</customUI>


На что обратить внимание:
<ribbon startFromScratch="false">
true - вкладка будет единственной на ленте
false - системные тоже будут отображаться

button id="but1" size="large" label="название кнопки1"
У каждого элемента свой id - нужен для обращения к нему в коде. Давайте осмысленные названия :)
size - два размера= normal и large
imageMso="" иконки. Чтоб вставить иконку:
ставим курсор между кавычек и жмем кнопку:



Откроется окошко с выбором из более 6 000 иконок. Можно выбрать по картинке, а можно по названию.

onAction="rib_run"
"rib_run" - название программы, срабатывающей по нажатию кнопки.
Можно сделать обработку одну на всех или каждой кнопке свою. Как хотите.
--------------------------------------------------------------------------
Когда с xml закончено, то надо проверить работу ленты. Жмем F5
Будет сообщено об ошибках или соответствии стандарту.
Затем жмем F9. Запустится Excel со сделанной лентой!


--------------------------------------------------------------------------
Если всё устраивает, то переходим к следующему этапу.
Закрываем Excel. Перед нами окно редактора. Жмём - ALT + F11
В появившемся окошке появиться код обработчика нажатий кнопок.
Далее можем нажать кнопку с иконкой VBA. Код запишется в файл Excel-я.



Если у всех кнопок название программы указанной после onAction="" одно, то и обработчик будет один.
Если разные, то, соответственно обработчиков будет больше.
Код: vbnet
1.
2.
3.
Private Sub rib_run(control As IRibbonControl)
    MsgBox "Сработала процедура, заданная в onAction элемента " + control.ID
End Sub


В данном случае "control.ID" это тот самый "but1" в обозначении кнопки "<button id="but1" ........" Так что пишите понятные id.
--------------------------------------------------------------------------
"Едем дальше ..."
Переходим к нашему Access.
Теперь надо эту поделку вкрячить в базу...
Как обычно всё сложное просто. Всего лишь надо знать КАК!

1. Везде пишут, что табличку с xml кодом надо назвать "UsysRibbons", но так и не поясняют - зачем?
Это название Access воспринимает как системное и скрывает. Чтоб увидеть СВОЮ таблицу надо в настройках базы поставить галку "Показывать системные объекты". И вместе со своей увидеть еще кучу не нужных таблиц. Оно вам надо?!

2. Исходя из проделанных безуспешных попыток загрузить свою ленту, с большой долей уверенности скажу, что Access АВТОМАТИЧЕСКИ подгружает ленты из таблицы с системным названием "UsysRibbons"!
Типичная ошибка:
В автозагрузке в макросе "Autoexec" указана функция которая грузит ленту, но Access выдаёт ошибку "Такая настройка уже загружена".
Это потому что он ленту уже сам загрузил из СИСТЕМНОЙ таблицы! А в коде вы еще раз пытаетесь её подгрузить.

Решение:
Итак, рабочий XML код у нас есть.

Создаём таблицу с любым названием. Да. Например,"T_ribbon".
2 обязательных поля: название ленты (текст) и код xml (memo). Можно и счетчик прилепить. Например, "RibbonName" и "RibbonXml".
Если будет несколько лент(а вдруг), то надо сделать еще и "правильную" таблицу "UsysRibbons" и туда сложить ленты, которые буду использоваться потом.

В референсах ставим ссылки - Microsoft Office.

В модуле с названием "Module1" пишем функцию автозагрузки ленты. Например, "Start":
Код: vbnet
1.
2.
3.
4.
5.
Function Start()
With CurrentDb.OpenRecordset("T_ribbon", dbOpenSnapshot)
    Application.LoadCustomUI .Fields("RibbonName").Value, .Fields("RibbonXml").Value
End With
End Sub


Создаём макрос "Autoexec" с командой "ЗапускПрограммы" указываем функцию с автозагрузкой ленты: Start()

Сохраняем. Запускаем. Типа, ничего не произошло :)
Заходим в Параметры --> Текущая база данных. И там выбираем свою ленту - она уже будет в списке.
Сохраняем. Запускаем - и вот она наша лента :))

Теперь сделаем обработку нажатия кнопок:
В том же модуле пишем код, который нам сделал Ribbon XML Editor
Код: vbnet
1.
2.
3.
Sub rib_run(control As Object)  ' IRibbonControl
MsgBox "Нажата кнопка с id=" & control.id
End Sub


На "IRibbonControl" Access ругался, поэтому я его на заменил на "Object". Прекрасно работает.
Вот и всё :))
--------------------------------------------------------------------------
Полезная информация:

Порядок запуска в Access таков: даже если в автоэкзеке с лентой ничего не делается, то она всё равно грузится ПОСЛЕ него.

В верхнюю строку XML кода можно добавить onLoad=""
<customUI ....... onLoad="какаятофункция">
"какаятофункция" сработает перед загрузкой ленты. Может понадобиться для инициализации чего-то.

Если у вас задумано несколько лент для разных форм, то:
Первая у вас грузиться в автоекзеке, остальные Access подгрузит сам из "UsysRibbons".

Сопоставить ленту с формой можно двумя способами:
    В окошке "Окно Свойств" во вкладке "Другие" (4-ая строка сверху) указать в раскрывающемся списке какую ленту грузить.
    Указать в коде при загрузки формы
Код: vbnet
1.
2.
3.
Private Sub Form_Load()
  Me.RibbonName = "MyRibbon2"
End Sub


Здесь "MyRibbon2" = имя ленты указанное в таблице "UsysRibbons" в поле "RibbonName".
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Небольшой FAQ по ribbons (лента)... как это было у меня..
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]