Как создать меню с раскрывающимся списком?

Программирование на Visual Basic for Applications
NadinLip
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 24.06.2009 (Ср) 13:02

Как создать меню с раскрывающимся списком?

Сообщение NadinLip » 24.06.2009 (Ср) 13:24

Помогите, плиз!!!

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

Заранее, спасибо!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как создать меню с раскрывающимся списком?

Сообщение Хакер » 24.06.2009 (Ср) 14:30

NadinLip писал(а):Помогите, плиз!!!

Чем?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как создать меню с раскрывающимся списком?

Сообщение Dimen » 24.06.2009 (Ср) 14:44

Для VBA на форуме есть другой раздел viewforum.php?f=7
Íå óïóñêàéòå øàíñ!

dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский

Re: Как создать меню с раскрывающимся списком?

Сообщение dormouse » 25.06.2009 (Чт) 7:16

разберёмся в терминалогии :)
NadinLip писал(а): меню пользователя с раскрывающимся списком.

меню - это текстовая портянка, которые всплывает на форме при щелчке правой кнопкой мыши или, левой кнопкой - по соответсвующему пункту в строке меню программы. меню пользователя... а какое там ещё меню может быть? меню разработчика?.. Ну с этим ладно.. Раскрывающийся список - это вложенное меню? как-то усложняет только.. Может быть, всё таки имелось обычное поле со списком (в терминалогии акцесса) на форме?

NadinLip писал(а): Чтобы при выборе одного из пунктов этого меню обеспечить переход в любую другую форму или отчёт.
Ну так это просто. Делаем поле со списком. в свойствах "тип источника строк" = "Список значений", "источник строк" - перечисляем названия форм в кавычках, разделяя точкой с запятой. в событии "после обновления" делаем макрос или процедуру, которая будет открывать форму по имени из этого списка
VBA, MSA97

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как создать меню с раскрывающимся списком?

Сообщение Денис » 25.06.2009 (Чт) 8:01

NadinLip
В акцессе есть возможность делать свои панели меню и панели инструментов. Да, они не будут появляться в вашей форме, а в основном окне акцесса. Но это самый правильный вариант. Я точно не помню уже, как это делается, читайте справку, смотрите объекты по клавише F2.
Кроме того, в акцессе предусмотрено выводить в заголовке главного окна Ваш текст, Вашу иконку, отключать системные меню и меню разработчика. Вы можене полностью превратить акцесс в некое подобие 1С (например) и скрыть от пользователя вообще сам факт его работы в акцесс.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

NadinLip
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 24.06.2009 (Ср) 13:02

Re: Как создать меню с раскрывающимся списком?

Сообщение NadinLip » 25.06.2009 (Чт) 9:03

С полем со списком все понятно. А мне нужно именно меню, что бы оно было вверху формы, и открывалось при наведение курсора.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как создать меню с раскрывающимся списком?

Сообщение Денис » 25.06.2009 (Чт) 9:07

NadinLip
Игнорируешь? Меня??? :lol:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

GDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 23.10.2008 (Чт) 16:15

Re: Как создать меню с раскрывающимся списком?

Сообщение GDK » 25.06.2009 (Чт) 10:33

НДа, похоже игнорирует. А здря. По моему стандартными средствами VBA меню на VBA-шной форме не сделать. Зато можно наверное панель с меню таскать за формой и подгонять её размеры под размеры формы. И ещё можно попробовать с API поработать, хотя это всё же сомнительно, что получится. Да, кстати, меню и панели вроде как - это объекты не Access, Excel и т.п., а объекты Office.
Последний раз редактировалось GDK 25.06.2009 (Чт) 11:47, всего редактировалось 1 раз.

dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский

Re: Как создать меню с раскрывающимся списком?

Сообщение dormouse » 25.06.2009 (Чт) 10:39

меню делаются мышкой. без всякого VBA. командами там служат объекты базы. можно через меню открыть кокретный запрос, таблицу, форму, отчёт, запустить макрос. через макросы можно запускать функции из глобальных модулей. Всё это делается через меню Сервис->Настройка. После перечисления стандартных менюшек идут объекты базы

строка меню может быть глобальной для базы. После того, как её создашь, в "Параметрах запуска" базы можно её задать, как глобальную. У каждой формы и отчёта есть ещё свои собственные панели иснтрументов и меню. задаются в свойствах на вкладке "Другие".

Ещё программно на VBA можно создать динамичную панель инструментов. http://www.sql.ru/forum/actualthread.aspx?tid=519361 Для этого надо подключать (Сервис-ссылки) библиотеку Microsoft Office ## Object Library
Последний раз редактировалось dormouse 25.06.2009 (Чт) 10:59, всего редактировалось 1 раз.
VBA, MSA97

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как создать меню с раскрывающимся списком?

Сообщение Денис » 25.06.2009 (Чт) 10:42

GDK
Да, действительно Office, исправляюсь, чтобы не вводить путаницу.
я бы накинул примерчик, да к сожалению у меня офис 2007, там все по-другому.
dormouse
Да-да. Очень важное примечание. Сначала все делается мышкой. А потом созданные менюшки привязываются к конкретным формам, так, что при вызове формы открывается необходимый набор меню и панелей.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

NadinLip
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 24.06.2009 (Ср) 13:02

Re: Как создать меню с раскрывающимся списком?

Сообщение NadinLip » 25.06.2009 (Чт) 12:34

Совсем не игнорирую. :)

Вот и у меня офис 2007 и там все по другому.
А не глобально можно сделать, на конкретной форме?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как создать меню с раскрывающимся списком?

Сообщение Денис » 25.06.2009 (Чт) 13:10

NadinLip
Строку меню сделать из Label'ов. Заюзать API-функции типа CreateMenu. поискать рабочие примеры создания меню на API..
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

NadinLip
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 24.06.2009 (Ср) 13:02

Re: Как создать меню с раскрывающимся списком?

Сообщение NadinLip » 25.06.2009 (Чт) 13:39

То, что строку надо сделать из Label'ов это я уже поняла, только как сделать чтобы при наведении на первый - появлялись все остальные?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как создать меню с раскрывающимся списком?

Сообщение Денис » 25.06.2009 (Чт) 14:01

NadinLip писал(а):То, что строку надо сделать из Label'ов это я уже поняла, только как сделать чтобы при наведении на первый - появлялись все остальные?


Заюзать API-функции типа CreateMenu. поискать рабочие примеры создания меню на API..
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

GDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 23.10.2008 (Чт) 16:15

Re: Как создать меню с раскрывающимся списком?

Сообщение GDK » 25.06.2009 (Чт) 14:45

Меню из лабелов - это жесть, по моему. А разве прокатит CreateMenu на дочерних формах? Я сам не знаю, интересно просто.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как создать меню с раскрывающимся списком?

Сообщение Денис » 25.06.2009 (Чт) 14:49

GDK писал(а):Меню из лабелов - это жесть, по моему.

Тсссс! Не мешай. :lol:
GDK писал(а):А разве прокатит CreateMenu на дочерних формах? Я сам не знаю, интересно просто.

Как обычно. Если hWnd есть, то прокатит, если нет, что ж, просто больше апишек заюзать.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

GDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 23.10.2008 (Чт) 16:15

Re: Как создать меню с раскрывающимся списком?

Сообщение GDK » 25.06.2009 (Чт) 18:18

Ну зачем издеваться то?
А насчёт менюшек на дочерней форме - это проверено опытом или просто утверждение. Если проверено, то я наверное буду искать типа обёртки к API для VB по работе с меню. А если не найду постараюсь сам нацарапать через :eye: год-другой.

NadinLip
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 24.06.2009 (Ср) 13:02

Re: Как создать меню с раскрывающимся списком?

Сообщение NadinLip » 26.06.2009 (Пт) 7:25

Послушала я тут Вас, Вы конечно красиво говорите, а как мне все таки сделать это д... меню все равно не понятно :(

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как создать меню с раскрывающимся списком?

Сообщение Денис » 26.06.2009 (Пт) 8:09

NadinLip
Тебе готовый код нужен, так нету. Рекомендую пройтись поиском по форуму на предмет наличия следующих фраз CreateMenu, AppendMenu, TrackMenu
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33

    TopList