|
Референс Офиса
|
|||
---|---|---|---|
#18+
Добрый день ! Подскажите решение, пожалуйста. Создал базу в Access 2003. На моей машине стоит Офис 2010. Офис - 15 версия. Там где будет работать Офис 2007. Офис - 12 версия. С вордом и экселем справился поздним связыванием. А как быть с самим офисом ?! У меня с его омощью сделаны меню. Само меню меняется программно. Есть, конечно, запасной вариант: меняю референс на машине с 2003 офисом, пересохраняю файл. И тогда на машине с более поздним все работает. Но хотелось бы как-то упростить процедуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 11:39 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Павел Жданов, я вот не совсем понял зачем ссылки на библиотеки. Что значит Павел Ждановкак быть с самим офисом ?! Где у Вас меню создаются? Сам по себе Офис - это набор приложений: Excel, Word, Access и т.д. В нем нельзя создать меню - оно создается в отдельном его приложении. Поэтому напишите из какого приложения в каком Вы чего создаете и как. Тогда можно будет подумать как помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 12:50 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
The_Prist, Вот код: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
В референсах - "Microsoft Office 15.0 Object Library" Без этой ссылки не работает. Или другой версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 12:58 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Вот такое меню получается: ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 13:08 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Павел Жданов, а зачем здесь референс? Вы внутри одного приложения ведь все это делаете? Другой момент, что может влиять отсутствие ссылки на родителя: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 13:10 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Попробовал без ссылки, заменив Объектом. Заменил часть определений цифрами. Все равно не "пашет" :( В строке "Set MyMenuBar =" уже ошибку выдает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 13:43 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Павел Жданов, А что за ошибка? Вы перед созданием удаляете это меню? Вдруг в первый раз создалось, а Вы потом еще пытаетесь создать с таким же именем? Application. добавили? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 14:14 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Павел Жданов, а константы msoBarTop, msoBarNoMove и др. кто при отключении ссылки будет определять? Поэтому и ошибка (в зависимости от наличия Option Explicit одна или другая). Ссылка на библиотеку (сильно) нужна, если надо обрабатывать события. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 14:58 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Константы не определяет. События есть - тыки по меню, добавления меню и удаления. Есть ли хитрый споособ обойти ссылку ? По примеру с Word и Excel: Код: vbnet 1. 2.
Если без ссылки не обойтись, то, видимо, как-то ее нужно изменить. Одну версию на другую... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 15:08 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Павел Жданов, Давайте все же с самого начала. Какое это приложение вообще? Чему принадлежит Application? Откуда запускается код? Откуда уверенность, что есть вообще возможность создания приведенным выше способом панелей? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 15:17 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
The_Prist, хорошо, начнем с начала :)) Какое это приложение вообще? Приложение - Access 2003 Программа создана для учета видеокассет в Архиве. Чему принадлежит Application? У меня на рабочем компе админы поставили Офис 2010 (лицензия и т.п.) В кабинете Архива стоит комп с Офисом 2007 Откуда запускается код? Файл MDB запускается на компе с Офисом 2007. При запуске происходит создание меню, состояние меню зависит от текущих данных. Также меню меняется в процессе работы программы. Откуда уверенность, что есть вообще возможность создания приведенным выше способом панелей? На моём компе все прекрасно работает. Если вручную на машине с Офисом 2007 поменять ссылку, то тоже всё прекрасно работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 15:46 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Вот, можете поэкспериментировать. Создаётся меню с одной кнопкой - "Kassets". По клику на ней появляется окно "Clic on Menu". Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 16:05 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
вам бы в форуме по акцесу уже давно бы объяснили,что 2007 и 2010 - это две большие разницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 16:09 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Павел Жданов, Не совсем понятно все же, зачем ссылку-то менять? Если мне не изменяет память, то ссылка на приложение, из которого запущен проект ставится автоматом. Зачем она у Вас вообще установлена? Без неё не работает? Попробуйте ссылку эту снять и скомпилировать проект: Debug-Compile VBAProject Если нормально скомпилируется без ссылки - то нечего и заморачиваться. Только при этом все же мой совет про добавление Application учтите. Ссылка на офис дает возможность как раз к объектам самого приложения обращаться без указания ссылки на него. А если отключить - то обязательно указывать родителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 16:10 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Все большое СПАСИБО ! Пойду спрашивать в другом форуме. Простите, оБшибся местом :) The_Prist, без ссылки ничего не компилируется и не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 16:18 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Павел Жданов, можно вытащить библиотеку типов из Офиса 2003 в отдельный файл .tlb, и делать ссылку на него (см. приложение). Попробуйте, попытка-не пытка. P. S. Да, люди "гонят", но это не значит, что не хотят помочь. А вот если человек не хочет себе помочь сам - то не стоило и начинать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 16:35 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Павел Ждановбез ссылки ничего не компилируется и не работаетЧто значит не работает? Какая ошибка? 91? Вы Applicaton везде где надо добавили? Я вот тестовый проект сделал, добавил туда все, что надо. Снял галку со ссылки. Все работает. Только если убирать Application не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 16:41 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
13-й квартал, Ураааааааааааааа !!! Заработалоооо ! Спасибо !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 16:48 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
The_Prist, поясни, пожалуйста, куда поставить Applicaton ? У меня не работает без ссылки. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 17:37 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 17:45 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
The_PristСсылка на офис дает возможность как раз к объектам самого приложения обращаться без указания ссылки на него. А если отключить - то обязательно указывать родителя.Загадочные фразы сами по себе. И библиотеке типов приписываются свойства, которыми она не обладает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 17:46 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Konst_One, зачем там явный Application? У Application выставлен атрибут appobject , все методы и свойства попадут в global namespace. В том числе CommandBars. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 17:58 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
это ответ куда его вставлять, а зачем это не ко мне. я уже не помню, что там в акцессе накручено в объектной модели. тем более, что ТС уже применил tlb и у него всё ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 18:08 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
13-й квартал, Коллекция CommandBars относится к Application. А отношение это прописано в библиотеке "Microsoft Office XX.0 Object Library". Если она подключена - то запись CommandBars.Add будет работать и VBA по умолчанию припишет CommandBars к Application, как прописано в типах(как using в C). Но если убрать ссылку на библиотеку "Microsoft Office XX.0 Object Library", то коллекция CommandBars ни к кому не будет отнесена и VBA сочтет её необъявленной процедурой или переменной. И если установлена директива Option Explicit - VBA честно об этом ошибкой и скажет. Если не установлена вышеупомянутая директива - то при попытке создать новую панель получим ошибку отсутствия метода для объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 18:14 |
|
Референс Офиса
|
|||
---|---|---|---|
#18+
Итак, методом проб и ошибок разобрался ! Переменные заменил Объектами. Все константы - цифрами. Ошибка вылезала из-за вот этого - "Option Explicit" ! Как только убрал - перестал Access ругаться :) И без апликейшена тоже работает. Осталось заменить чем-то Office.FileDialog ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2015, 18:35 |
|
|
start [/forum/topic.php?fid=60&startmsg=38952466&tid=2155947]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 167ms |
0 / 0 |