Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Меню 2003 - 2007 / 15 сообщений из 15, страница 1 из 1
07.09.2011, 13:25
    #37428898
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
Скажите пожалуйста. Формирую меню в 2007 с помощью xml, но код обрабатывающий загрузку меню в 2007 не компилируется в 2003. Другие библиотеки. А приложение используется и 2003 и в 2007.

Как это победить?

Заранее благодарен.
...
Рейтинг: 0 / 0
07.09.2011, 14:21
    #37429029
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
dim b as boolean
b=(val(application.version)>=12)
#if b then
application.LoadCustomUI ....
#else
CurrentProject.Properties.add "StartUpMenuBar", "menu2003"
#end if
...
Рейтинг: 0 / 0
07.09.2011, 15:13
    #37429192
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
Хотя наврал. Не расчетное значение д.б.,а константа

#const b=true
...
Рейтинг: 0 / 0
07.09.2011, 15:23
    #37429216
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
Senin ViktorХотя наврал. Не расчетное значение д.б.,а константа

#const b=true

А можно сделать такое условие на весь модуль?
...
Рейтинг: 0 / 0
07.09.2011, 15:30
    #37429235
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
Senin ViktorХотя наврал. Не расчетное значение д.б.,а константа

#const b=true


А как можно записать такое?

Код: plaintext
1.
2.
#Const b = (Val(Application.Version) >=  12 )

#If b Then
...
Рейтинг: 0 / 0
07.09.2011, 15:30
    #37429236
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
vah,

чуть поискал оказывается (слова "условная компиляция" есть константа новая vba7
наверное,можно ее юзать -для отличия 2003 (и ниже) от 20 10
http://msdn.microsoft.com/ru-ru/library/ee691831.aspx

#if vba7 then
application.LoadCustomUI ....
#else
CurrentProject.Properties.add "StartUpMenuBar", "menu2003"
#end if
...
Рейтинг: 0 / 0
07.09.2011, 15:32
    #37429238
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
пардон за ошибки.

Код: plaintext
1.
чуть поискал оказывается (слова "условная компиляция") есть константа новая vba7
наверное,можно ее юзать -для отличия 2007 (и ниже) от 2010
...
Рейтинг: 0 / 0
07.09.2011, 15:35
    #37429248
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
Senin Viktorпардон за ошибки.

Код: plaintext
1.
чуть поискал оказывается (слова "условная компиляция") есть константа новая vba7
наверное,можно ее юзать -для отличия 2007 (и ниже) от 2010


Спасибо Вам огромное. Мне бы отличить 2007 от меньших версий...
...
Рейтинг: 0 / 0
07.09.2011, 15:45
    #37429281
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
Как при условном компилировании опознать Acctss 2007?
...
Рейтинг: 0 / 0
07.09.2011, 15:49
    #37429298
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
vahКак при условном компилировании опознать Acctss 2007?

да никак - см. хэлп.
Придется делать два файла с разными #Const b=true/false

либо распространять приложение с runtime'ом нужной версии акеса
...
Рейтинг: 0 / 0
08.09.2011, 12:08
    #37430419
T_Alex_G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Application.SetOption "Conditional Compilation Arguments", "AccessVersion_ = " & Val(Application.SysCmd(acSysCmdAccessVer))
#If AccessVersion_ =  11  Then
    MsgBox "код для Acc2003 "
#ElseIf AccessVersion_ =  14  Then
    MsgBox "код для Acc2010"
#else
    msgbox "прочие версии"
#End If
...
Рейтинг: 0 / 0
08.09.2011, 13:40
    #37430640
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
чуда не случилось,код, конечно, работает, только не работает :) должным образом
Верней работает правильно, но только после двух запусков.
Первый запуск (установка свойства) не вызывает инициализацию вновь добавленной константы AccessVersion_ , а юзается либо ее ранее существовавшее значение, либо выполняется #else

Проверил. Запустил пару раз в акесе 2010. Свойство стало "AccessVersion_ = 14"
Открыл в акесе 2003 - выдало,что это акес 2010, повторный запуск - выдало 2003.
...
Рейтинг: 0 / 0
08.09.2011, 13:53
    #37430669
T_Alex_G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
а если вынести функцию с кодом
Код: plaintext
Application.SetOption "Conditional Compilation Arguments", "AccessVersion_ = " & Val(Application.SysCmd(acSysCmdAccessVer))
в autoexec ?
...
Рейтинг: 0 / 0
16.09.2011, 08:49
    #37442876
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
T_Alex_Gа если вынести функцию с кодом
Код: plaintext
Application.SetOption "Conditional Compilation Arguments", "AccessVersion_ = " & Val(Application.SysCmd(acSysCmdAccessVer))
в autoexec ?

Идея хорошая, НО когда я делаю mde и запускаю его в 2007, то вылезает ошибка:
"Ошибка записи параметров модуля"
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
30.01.2017, 12:35
    #39394518
ser_volk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню 2003 - 2007
Если надо скомпилировать конструкцию
Application.LoadCustomUI strRibbonName, strRibbonXML

под Access 2003, то можно сделать это так:
CallByName Application, "LoadCustomUI", VbMethod, strRibbonName, strRibbonXML
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Меню 2003 - 2007 / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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