powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / несколько вопросов по Addin
25 сообщений из 25, страница 1 из 1
несколько вопросов по Addin
    #32460580
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понадобилось сделать ADDIn (mdb/mde/mda) для аксесса но вот натолкнулся на несколько сложностей:

1. как из кода ADDin`a обратиться к таблицам самого этого аддина?
пока сделал новое ADO соединение
cnn.open syscmd(acsyscmdaccesdir) & ИмяФайла
может можно проще?

наверное кроме current project.connection есть еще и другие ?

2. как делать вызовы форм проекта или аддина ?
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32460633
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное кроме currentproject.connection есть еще и другие ?

CodeProject, CodeDb

По остальному - не знаю - судьба миловала от написания аддинов.
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32460642
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1. как из кода ADDin`a обратиться к таблицам самого этого аддина?

Help по CodeDb
Например, не CurrentDb.OpenRecordset, а CodeDb.OpenRecordset

автор2. как делать вызовы форм проекта или аддина ?

Через функции...
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32460660
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЧерез функции...
загадочный ответ
и что же мне в функции написать?

1 нужно открыть форму AAA аддина вызов из модуля аддина
docmd.openform "AAA"

2 нужно открыть форму AAA ИЗ ПРОЕКТА вызов из модуля аддина
docmd.openform "AAA"

????????
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32460692
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Через функции...

загадочный ответ
и что же мне в функции написать?

Алексей, для не менее загадочен вопрос :-)

Варианты:
1. Открыть форму Addin-а из текущего проекта
2. Открыть форму Addin-а из addin-а
3. Открыть форму проекта из addin-а
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32460707
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе в Addins все также как и в обычной mdb, естественно токо CurrentProject и CurrentData возвращают данные текущей базы, а не самого аддына, для него как уже и говорили CodeProject, CodeDb

В деле открытия формы не очень понятна суть проблемы, docmd.openform "AAA" и вперед, все нормально откроется.

P.S. ты случаем не взялся писать addin по сохранению своих шаблонов форм/контролов ?
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32460828
Mike_LV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создать мда-файл. В нем таблицу USysRegInfo такой вот структуры:

Subkey | Type | ValName | Value
HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\Meklet For Cietums98 Wizard | 0 |
HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\Meklet For Cietums98 Wizard | 1 | Expression | =StartWiz()
HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\Meklet For Cietums98 Wizard | 1 | Library | C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\filename.mda
В общем модуле создать процедуру запуска, например:
Global WizDBAs Database
Function StartWiz()
Set WizDB= CodeDb
DoCmd.OpenForm "имя формы", acNormal, , , , acDialog
End Function
Через меню Сервис-Надстройки-Диспетчер надстроек-Добавить указать путь к своему мда-файлу.
В любой форме на кнопку повесить процедуру, в которой написать код:
Application.Run "Имя мда-файла.Имя процедуры", напрмер
Application.Run "filename.StartWiz". Имя файла указывается без расширения (.мда).
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32461009
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно вешают на кнопку на тулбаре, особенно удобно на General, тогда твой Addins всегда с тобой и под рукой даже в новых базах.

Такие еще дополнения:
Mike_LV
Через меню Сервис-Надстройки-Диспетчер надстроек-Добавить указать путь к своему мда-файлу.
В любой форме на кнопку повесить процедуру, в которой написать код:
Application.Run "Имя мда-файла.Имя процедуры", напрмер
Application.Run "filename.StartWiz". Имя файла указывается без расширения (.мда).

Работать не будет. Т.е. добавление через меню Сервис-Надстройки-Диспетчер надстроек-Добавить позволяет разместить твой Addins в ЛЮБОМ месте и вызывать его ЧЕРЕЗ МЕНЮ Сервис-Надстройки-Диспетчер надстроек

А вот для того чтобы вызывать твой addins таким макаром Application.Run "filename.StartWiz" необходимо обязательно разместить его рядом с файлами Acwztool.mde и иже с ними (...\Office10\). Соответсвенно что для этого способа абсолютно все равно добавлял ли ты свой addins в меню Сервис-Надстройки-Диспетчер надстроек.

И третье: в случае использования Application.Run "filename.StartWiz" можно столкнуться с таким эффектом что StartWiz будет выполняться ДВА раза. Этот забавный эффект происходит тогда, когда функция StartWiz числится в таблице USysRegInfo как стратующая функция Addin'а. В результате она сначала отрабатывает после подгрузки mda, а потом еще после токо как ее вызывает Access следуя иструкции .Run "filename.StartWiz". (В этом случае конечно можно просто писать .Run "filename"). А конструкцию .Run "filename.StartWiz" удобно использовать если надо запустить другие вспомогательные функции из mda.
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32461036
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
P.S. ты случаем не взялся писать addin по сохранению своих шаблонов форм/контролов ?


да, посидел вчера немножко, пока все получается.

мало информации "о примемчиках и хитростях"
в хелпе послали на MSDN а с MSDN на примеры из комплекта девелопера

а где я возьму девелопер??


заодно обнаружил что кнопки в меню addin можно задать фиксировано для компа
не регистрируя библиотеку через мастера и не занося в таблицу
USysRegInfo записи о ключах реестра и не создавая пользовательские тулбары

а зарегистрировав несколько ключей реестра
сделал шаблон для теста диалогового окна - все работает
теперь дело техники настроить шаблоны в конфигурационной табличке

сергей гаврилов предостерег (немного подумав я соглашаюсь с ним) от использования формы в качестве шаблона - вот я и делаю хранение данных в табличке. (так как только некоторые прописанные явно свойства будут применяться к форме)

немного запарно будет сделать форму настройки своих шаблонов - для каждого типа свойств свои енумы...
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32461082
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот тоже все выходные крутил в голове эту идею и пришел к мысле что хорошо бы:
1. разделить свойства контролов и формы. Т.е. чтобы можно было применить шаблон к форме, а также к контролам на ней
2. в качестве создания своего шаблона удобно указывать мастеру addin уже готовую форму, что он брал свойства с нее, ну и процессе еще можно выбирать какие свойства сдирать с нее (разделить их например на группы, определить наиболее востребованные и общие свойства, ну в идела можно вообще конечно такое дерево со всеми свойствами забабахать)...
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32461256
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дерево думаю здесь незачем
а вот эмуляцию окна свойств формы сделать - неплохо чтоб галочки поставить напротив свойств которые нужно использовать как шаблонные а остальные не трогать
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32461317
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, я это и имел ввиду,..... было бы удобно
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32462640
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще проблема

надстройки сделанные для mdb не годятся для ADP - не появляется в меню

видимо другие ключи реестра.
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\10.0\Access\Menu Add-Ins

это для мдб. а для ADP?
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32462948
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы указать, где AddIn должен работать надо добавить четвертую запись в USysRegInfo

HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\AddInName | 1 | Version | 3
Т.е. поле Valname имеет значение Version, а значение поля Value указывает область применения:
1 - mdb
2 - adp
3 - mdb и adp

Можете почитать об этом здесь
How to Create USysRegInfo Table for Installing Add-ins
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32463326
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Serge Gavrilov

спасибо огромное!
уж и не знаю чем буду рассчитываться...

уже который раз так получается что если ситуация действительно сложная, никто не знает - появляется сергей и помогает
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32465216
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавляю на менюбар свои кнопки
Код: plaintext
1.
2.
3.
4.
Set Btnmain = Application.CommandBars( "Menu Bar" ).Controls.Add(msoControlPopup)
Btnmain.Caption =  "DevTools" 
Set btn = Btnmain.Controls.Add(msoControlButton)
btn.Caption =  "Стиль формы" 
btn.OnAction =  "=Application.Run("  "devtools.Form_Styles"  ")" 


файл сохранен в системной папке офиса


1 почему-то при нажатии на кнопку функция вызывается дважды
2 если аддин сохранен в MDB то при вызове из другого файла - ничего не происходит если компилировать в MDE / MDA то работает но тогда проблемы с совместимостью с другими версиями аксесса кроме той в которой скомпелировал....
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32465301
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК1 почему-то при нажатии на кнопку функция вызывается дважды

SergeySV это уже объяснил
И третье: в случае использования Application.Run "filename.StartWiz" можно столкнуться с таким эффектом что StartWiz будет выполняться ДВА раза. Этот забавный эффект происходит тогда, когда функция StartWiz числится в таблице USysRegInfo как стратующая функция Addin'а. В результате она сначала отрабатывает после подгрузки mda, а потом еще после токо как ее вызывает Access следуя иструкции .Run "filename.StartWiz". (В этом случае конечно можно просто писать .Run "filename"). А конструкцию .Run "filename.StartWiz" удобно использовать если надо запустить другие вспомогательные функции из mda.

АлексейК2 если аддин сохранен в MDB то при вызове из другого файла - ничего не происходит если компилировать в MDE / MDA то работает но тогда проблемы с совместимостью с другими версиями аксесса кроме той в которой скомпелировал....
По моему, достаточно переименовать в mda
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32465550
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я как бы тоже пытался все сохранить в mda, но в Acc2000 такой пункт вообще убрали и наскоко я понял, просто из-за того что нет никакой разницы между mdb и mda.
В итоге я просто поменял расширение и Access воспринимает этот как файл как нормальный Addin и наоборот, если хочется посмотреть содержимое Addins (если он конечно с кодом), то просто меняем mda на mdb и уже нормально открываем его.

С другой стороны я не пробовал брать mde файл и его обзывать mda, но думаю тут не должно никаких различий, просто у этого mda не будет кода и его уже не отредактируешь и все.

P.S. 2АлексейК: а ты кнопки на какую панель бросаешь, хорошо бы чтобы Addin свою собств. панель создавал
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32466003
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот забавный эффект происходит тогда, когда функция StartWiz числится в таблице USysRegInfo как стратующая функция Addin'а. В результате она сначала отрабатывает после подгрузки mda, а потом еще после токо как ее вызывает Access следуя иструкции .Run "filename.StartWiz".

надо же ведь была такая мысль, но прибил ее на стадии зарождения...

SergeySV а ты кнопки на какую панель бросаешь, хорошо бы чтобы Addin свою собств. панель создавал

наоборот очень удобно на менюбар - всегда под рукой и инсталируется только на локальный комп а не уходит с копией базы клиенту

сделал инсталяшку - копируешь файл в системную папку офиса, один раз открываешь :
в стартовой форме кнопка добавить кнопки на меню бар и собственно все.

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

если хочешь пошлю что есть
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32480490
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как меня достал уже "Этот забавный эффект" с двойным запуском !

и в таблицу аддина ставил другую стартовую функцию и вообще убрал оттудова все и переименовал в мда один хрен запускается два раза

сделал небольшой код - чтоб блокировать второй вызов - но это же не дело...


Посмотрите в чем беда кто имел дело с аддинами?

RAR (45 КБ)

загрузить лучше отсюда (дурацкий народ не дает возможности напрямую закачивать)

прямая ссылка на файл : http://kozin1.narod.ru/down_files/devtools.rar
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32480843
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкак меня достал уже "Этот забавный эффект" с двойным запуском !
Да уж.... Статическую переменную завели?

Попробуйте убрать Application, т.е.:
=("devtools.Form_Styles")
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32480849
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, вместе с Application и ребенка (т.е. Run) выплеснул
=Run("devtools.Form_Styles")
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32480886
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогло!!!!

надо же... а я две недели колбасился ...
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32481848
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, что описания этого глюка я нигде не нашел ...
Может плохо искал
...
Рейтинг: 0 / 0
несколько вопросов по Addin
    #32482159
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по идее все что запускается без указания объекта
то относится либо к
Access.Application
или
Ассess

поэтому вроде логично считать

Access.Application.Run() <=> Run()

глюк однако..
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / несколько вопросов по Addin
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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