ник: Bellerofont
Не совсем понятна проблема.
Что мешает программно считать свойства контрола, создать контрол в другой форме и задать значения свойств (если необходимо перемещение, то в первой форме контрол удаляется)?
Можно и по другому: выбрать нужный контрол с помощью InSelection = True (не забыв сделать InSelection = False для других контролов) и выполнить
docmd.RunCommand accmdcopy
Все контрол скопирован в память.
Код тоже можно копировать: составляете список процедур - например список свойств, значение которых = "[Event Procedure]". Для правильного определения названия процедуры пригодится свойство EventProcPrefix.
Далее надо для каждой процедуры найти код.
Для этого можно использовать свойства объекта CodeModule: ProcStartLine (или ProcBodyLine надо уточнить) и ProcCountLines.
Теперь, зная начальную строку и число строк процедуры, находим текст процедуры, используя свойство Lines....
Если интересно, потом продолжу, сейчас дела .есть..