![]() |
|
Модераторы: Akina |
![]()
|
|
| LeRatO |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.8.2007 Репутация: нет Всего: нет |
Подскажите, пожалуйста, можно ли узнать не версию MS Office, а язык пакета - RUS или ENG.
Это жизненно важно, потому как делаю перенос данных в MS Excel, очень активно испольузю формулы, но название excel'евских отличается в RUS и ENG версиях. Если знать язык пакета, можно еще как-то покрутиться... Кто нибудь решал такую проблему? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
В формуле хранится не имя использованной функции, а ее номер. Перенос файлов между разноязыкими версиями абсолютно прозрачен.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| LeRatO |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.8.2007 Репутация: нет Всего: нет |
Если я Вас правильно поняла, то надо чем-то заменять присвоения типа:
Чем??? И как пользователю задавать формулу - кодами не удобно, ненаглядно... Напоминаю, формиуется excel-таблица целиком из Access'а, формулы задает сам пользоватиель программы. И еще... язык офиса-таки важен, потому что из-за него возникает проблема с программной установкой ширины граф списка! Например, а ENG-офисе код
также вызывает ошибку. Проблема в том, что вариант сетевой, а Access установлен локально, то есть... программа должна опозновать язык и проавильно срабатывать - меняя единицы для ширины и формулы. |
||||||
|
|||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Так бы сразу и сказала, что программа на VBA... а то "формулы"...
ДЛя начала - косвенным признаком того что офис (вернее Эксель) русский, служит присутствие файла %Program Files%\Microsoft Office\OFFICE11\1049\FUNCS.XLS". Кстати,Ю оттуда можно взять соответствие имен функций. Затем - можно попробовать посмотреть на текущую локаль, вернее на наличие в системе русской локали. Но это тоже косвенно. Можно посмотреть HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options\LastUILang - это, правда, язык интерфейса, но зато для текущего пользователя. Можно посмотреть HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Registration\{90110419-6000-11D3-8CFE-0150048383C9}\ProductName и там же ProductNameBrand, и вообще не убежден что англицкий Офис будет иметь ЭТОТ ЖЕ CLSID. Наиболее надежно - взять оттуда же или из HKLM\S\M\W\CV\Uninstall\Office CLSID Product ID - но кто же его расшифрует-то... Добавлено @ 23:29 А аглицкая версия в русском офисе - тоже? Добавлено @ 23:34 О! не все так плохо...
Добавлено @ 23:37 Так что аглицкий Офис имеет CLSID, который начинается на ХХХХХ409, а русский - на ХХХХХ419. Есть правда одна маленькая деталь - при удалении (особенно не сильно корректном) не все ветви реестра чистятся. Т.е. придется чекать не только наличие CLSID, но и его валидность. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| LeRatO |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.8.2007 Репутация: нет Всего: нет |
Да-да, тоже ошибку... Из-за единиц изменения ширины (английская не понимает "см", русская - англицкого аналога). Лишний раз убеждаюсь, что стремление переводить все в интерфейсе вплоть до имен функций только проблемы создает. В реестре откопала ключик (HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Common\SKULanguage) в котором сидит уже чистый год, а не сам CLSID. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Хорошо... правда, сработает только при условии, что версия Офиса - не ниже 2002 (ХР).
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| LeRatO |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.8.2007 Репутация: нет Всего: нет |
Нашла более простой способ...
Из access создается excel-объект, соотвественно открывается новый файл, книга Excel, с несколькими листами... Чтобы установить язык, нужно понять как называются листы... Вся хитрость в том, что в русской версии личты называются "Лист№", в английской - "Sheet№". А вариант с ID не проходит, например, если на англискую версию установлен либо патч русификации, либо на компе используется MUI... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Я могу привести минимум 3 разных ситуации, когда это не сработает. Но мне просто лень - по причине вполне очевидной. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |