Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменить код програмным методом 
:(
    Опции темы
Devourer
Дата 18.12.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.8.2008

Репутация: нет
Всего: нет



Подскажите пожалуйста каким образом возможно изменить VBA код одного макроса при помощи другого.

Или по другом-Я хочу на свою Access базу делать птчи, которые будут вносить дополнения и исправлять ошибки.

Я не знаю возможно ли это вообще и если возможно то не подкинете пару строк кода? 
Скажем есть modul1 а в нем код:
Код


sub hello()

msgbox("HI to all!")

end sub


и я хочу заменить "HI to all!" на "Превед!"...
PM MAIL ICQ   Вверх
Romikgy
Дата 18.12.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(Devourer @  18.12.2008,  11:36 Найти цитируемый пост)
хочу заменить "HI to all!" на "Превед!"... 

в данном случае можно эти слова внести в туже БД и брать динамически что отображать ,
а вот с полным изменением кода наверное сложнее будет 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
bopoha
Дата 18.12.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Devourer, такое возможно. НО!!! Перед этим очень хоршо подумайте, как вы будетет писать эти патчи. Например, у вас прошло 100 изменнеий, в 20-и объектах. И поменялся не только код, но и формы. Это же застрелится.

Есть более простое решение. Разделить код и данные на разные файлы. Файл с кодом конвертируется в mde (в mde код менять нелья). При обновлении вы вносите в свой файл mdb изменений, опять формируете mde и отдаете его пользователю. Проверено! Работает!
PM MAIL WWW ICQ Skype GTalk   Вверх
Romikgy
Дата 18.12.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(bopoha @  18.12.2008,  12:10 Найти цитируемый пост)
такое возможно

пример


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Devourer
Дата 18.12.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.8.2008

Репутация: нет
Всего: нет



Или ссылку на страничку где расписывается и показывается разделение на mde файлы... smile 
PM MAIL ICQ   Вверх
bopoha
Дата 18.12.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Devourer, разжевать и в рот положить?

Ладно:
1. Разделить БД. 
РУКАМИ!!! Для автоматизации можно воспользоваться импортом. Т.е. создаем новую mdb и ипортируем туда таблички.

2. Открываем пункт меню Сервис->Database Utilites (у меня английский, не знаю как по русски, сразу после Анализа) 
Находим там, мастер связанных таблиц и добавляем связь на таблицы из новой mdb.
И там же находим создание mde.

Кода диспетчер надоест и захочется автоматизировать, то см. Help по DoCmd.TransferDatabase или RefreshLinks (для общего развития). Если с английским туго, то ставим в отдельный каталог русский Access 97 со справкой.

Когда покажется, что DoCmd.TransferDatabase  работает медленно, то изучаем класс TableDef.
PM MAIL WWW ICQ Skype GTalk   Вверх
Romikgy
Дата 18.12.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



неее пример кода который модифицирует текст VBA 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
bopoha
Дата 18.12.2008, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Romikgy, я когда-то делал документатор mdb. Но уже с трудом вспоминаю, как я реализовывал поиск по коду, только дома. С собой естественно кода нет.

Все что вспомнилось:
Код

Sub tst4()
    Debug.Print Application.Modules(0).Lines(1, 20)
End Sub


Думаю, что как отправная точка для поиска подойдет. У класса Module очень много "вкусных" методов.
PM MAIL WWW ICQ Skype GTalk   Вверх
Romikgy
Дата 18.12.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Lines(1, 20) это менять можно или только читабельно ?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
bopoha
Дата 18.12.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Romikgy, "№;%:?*()_, кнопка F1 потеряла популярность или ее вообще нет на вашей клавиатуре? А также "умной подставновкой" тоже не умеем пользоваться? Object Browser еще есть, кнопкой F2 вызывается, надеюсь она есть на вашей клавиатуре,  и окошко для поиска там тоже есть.

Цитата

The Lines property returns a string containing the contents of a specified line or lines in a standard module or a class module. Read-only String.

PM MAIL WWW ICQ Skype GTalk   Вверх
Romikgy
Дата 18.12.2008, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(bopoha @  18.12.2008,  14:55 Найти цитируемый пост)
кнопка F1 потеряла популярность или ее вообще нет на вашей клавиатуре? 

поломалась от частого использования...
Цитата(bopoha @  18.12.2008,  14:55 Найти цитируемый пост)
кнопкой F2 вызывается, надеюсь она есть на вашей клавиатуре

испортилась от близкого расположения к Ф1

у мя чисто академический интерес  , у мя и офис коцнутый стоит
Цитата(bopoha @  18.12.2008,  14:55 Найти цитируемый пост)
The Lines property returns a string containing the contents of a specified line or lines in a standard module or a class module. Read-only String.

спасибо за этот ответ ,
но для решения поднятого автором вопроса он не подходит :( 
а было бы интересно что бы было по аналогии с перлом исполнение кода из переменой


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
bopoha
Дата 18.12.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Romikgy @  18.12.2008,  16:36 Найти цитируемый пост)
но для решения поднятого автором вопроса он не подходит :( 

Подходит, лишь только заюзать нужный метод.


Цитата(Romikgy @  18.12.2008,  16:36 Найти цитируемый пост)
а было бы интересно что бы было по аналогии с перлом исполнение кода из переменой 

Eval в помощь и удачи в отладке.
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 18.12.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код процедуры/функции модуля программно изменить не получится. А вот код метода класса (как встроенного, так и своего) можно (пере)направить на (другую) процедуру.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0710 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.