Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 как из VBA конвертнуть макрос в код VBA  [new]
Примкнувший
Member

Откуда: Москва
Сообщений: 90
Привет всем!
подскажите, как из VBA конвертнуть макрос в код VBA ?
на MS Access 97

p.s. знаю, что точно можно не через интерфейс
2 авг 05, 18:03    [1757190]     Ответить | Цитировать Сообщить модератору
 Re: как из VBA конвертнуть макрос в код VBA  [new]
Serge Gavrilov
Member

Откуда:
Сообщений: 3248
Посмотрите код формы mtm_frmMain в файле WZTOOL80.MDE, который можно взять здесь:
ACC97: Viewable Wztool80.mde Code Available in Download Center
2 авг 05, 18:33    [1757334]     Ответить | Цитировать Сообщить модератору
 Re: как из VBA конвертнуть макрос в код VBA  [new]
Примкнувший
Member

Откуда: Москва
Сообщений: 90
Serge Gavrilov
Посмотрите код формы mtm_frmMain в файле WZTOOL80.MDE, который можно взять здесь:
ACC97: Viewable Wztool80.mde Code Available in Download Center


увы, файл не качается с этой ссылки .(
2 авг 05, 18:47    [1757387]     Ответить | Цитировать Сообщить модератору
 Re: как из VBA конвертнуть макрос в код VBA  [new]
Примкнувший
Member

Откуда: Москва
Сообщений: 90
все скачал!
действительно есть тема конвертации.

СПАСИБО!
2 авг 05, 18:53    [1757417]     Ответить | Цитировать Сообщить модератору
 Re: как из VBA конвертнуть макрос в код VBA  [new]
Примкнувший
Member

Откуда: Москва
Сообщений: 90
Все делаем через DoMenuItem

Совсем забыл про метод DoMenuItem
он является аналогом апишного SendMessage и выполняет любое действие из меню.
Короче говоря эмулятор действий пользователя.

Круто!
2 авг 05, 18:57    [1757439]     Ответить | Цитировать Сообщить модератору
 Re: как из VBA конвертнуть макрос в код VBA  [new]
Serge Gavrilov
Member

Откуда:
Сообщений: 3248
Примкнувший
Все делаем через DoMenuItem

Совсем забыл про метод DoMenuItem
он является аналогом апишного SendMessage и выполняет любое действие из меню.
Короче говоря эмулятор действий пользователя.

Круто!

А говорили "не через интерфейс" ...
Тогда уж docmd.RunCommand acCmdConvertMacrosToVisualBasic
2 авг 05, 19:22    [1757543]     Ответить | Цитировать Сообщить модератору
 Re: как из VBA конвертнуть макрос в код VBA  [new]
Примкнувший
Member

Откуда: Москва
Сообщений: 90
Serge Gavrilov
Примкнувший
Все делаем через DoMenuItem

Совсем забыл про метод DoMenuItem
он является аналогом апишного SendMessage и выполняет любое действие из меню.
Короче говоря эмулятор действий пользователя.

Круто!

А говорили "не через интерфейс" ...
Тогда уж docmd.RunCommand acCmdConvertMacrosToVisualBasic


Предложенный вами пример конечно то что надо, но использовать его видимо нельзя, так как функция wlib_StUniqueDocName , которая и выполняет конвертацию недоступна для просмотра и копирования. Можно попробовать слинковать модуль, в котором лежит функция, но не могу вспомнить как я это раньше делал.

еще вариант - это экспортнуть в файл с примером все мои макросы, но это не верный подход. Хочется все же добраться до истины.


p.s. Выполнил конвертацию через цикл

For ie = 0 To CurrentDb.Containers("Scripts").Documents.Count - 1
sx = CurrentDb.Containers("Scripts").Documents(ie).Name
DoCmd.SelectObject acMacro, sx, True
DoCmd.DoMenuItem acFormBar, acFile, 5, , acMenuVer70
Next ie
все получилось,

но если в имени макроса есть символы типа ' , то он заменяется на '_'
если название макроса начинается с '_' , то к имени процедуры (прибавляется 'Proc')
И еще, если имя макроса совпадает с названием хоть какого-то оператора, то компиляции проекта не будет, возникнет сообщение об ошибке.
А еще рожденные из макросов 'модули' не понимает объект Module
Так что проблем тут уйма!
3 авг 05, 18:52    [1761549]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить