Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Копирование элемента формы в буфер с кодом! Возможно ли?
 
 автор: Аленка   (16.12.2008 в 10:29)   личное сообщение
 
 

Если я копирую, допустим кнопку, и переношу ее в пределах даже одной формы из одной вкладки в другую, то кнопка копируется без кода.
Если с копированием более или менее все понятно, так как при копировании кнопка получает иное наименование и соответственно код уже не будет работать на новой кнопке до тех пор, пока в коде не будут изменены все ссылки на новую кнопку.
Что касается перемещения, то здесь сложнее. Ясно, что причины те же. Если вдруг на форме, куда мы переносим кнопку окажется кнопка с таким же названием, то перемещаемая кнопка изменит свое наименование.

Но все равно, можно ли как-то кнопки и иные элементы формы переносить вместе с кодом? Код я согласна подправить. Это было бы удобнее, чем переносить кнопку, а потом в бейсике этот код переносить на новую кнопку. БОльше действий, неудобно.

Я почти понимаю, что я тут, наверное, снова не туда лезу. Но может меня кто поддержит в моей проблеме? Или даже кто подскажет, как быстро и просто переносить кнопку уже вместе с кодом?
Спасибо

  Ответить  
 
 автор: Мюллер   (16.12.2008 в 10:38)   личное сообщение
 
 

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

  Ответить  
 
 автор: Bellerofont   (16.12.2008 в 10:43)   личное сообщение
 
 

Не совсем понятна проблема.
Что мешает программно считать свойства контрола, создать контрол в другой форме и задать значения свойств (если необходимо перемещение, то в первой форме контрол удаляется)?

Можно и по другому: выбрать нужный контрол с помощью InSelection = True (не забыв сделать InSelection = False для других контролов) и выполнить
docmd.RunCommand accmdcopy
Все контрол скопирован в память.

Код тоже можно копировать: составляете список процедур - например список свойств, значение которых = "[Event Procedure]". Для правильного определения названия процедуры пригодится свойство EventProcPrefix.
Далее надо для каждой процедуры найти код.
Для этого можно использовать свойства объекта CodeModule: ProcStartLine (или ProcBodyLine надо уточнить) и ProcCountLines.
Теперь, зная начальную строку и число строк процедуры, находим текст процедуры, используя свойство Lines....

Если интересно, потом продолжу, сейчас дела .есть..

  Ответить  
 
 автор: Lukas   (16.12.2008 в 14:31)   личное сообщение
 
 

Аленка, посмотрите примочку "MZTools3VBA", может понравится.
тынц

  Ответить  
 
 автор: Аленка   (17.12.2008 в 17:28)   личное сообщение
 
 

Спасибо!!!!!!!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList