Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2011, 20:40   #1
wolf05632
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 25
По умолчанию Как передать управление из одного объекта в другой?

Народ, нужен хелп! Поясню: есть форма. на форме календарь и командная кнопка. При инициализации формы присваиваю календарю текущую дату(соответственно, кнопочка с числом на календаре нажата). НО! если выбрать другой месяц, то кнопочка с числом на календаре отожмется и программа выдаст ошибку(из-за того, что дата календаря = фэлс). Так вот. Нужно проверить после нажатия командной кнопки(соответственно, объект команд баттон, событие клик), что дата календаря = тру(это легко). Но как теперь передать управление из команд баттон клик в начало инициализации формы (объект юзерформ инициализ...), что б программа, как бы, заново стартовала?????
Я еще дурак. ТАк что не сильно пинайте. Думаю, объяснил ситуацию понятно.
wolf05632 вне форума Ответить с цитированием
Старый 04.04.2011, 23:00   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

инициализацию календаря вывести в отдельную процедуру и вызывать её и при загрузке формы и при клике на кнопке.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 05.04.2011, 06:46   #3
wolf05632
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 25
По умолчанию

Спасибо, но боюсь, что не покатит. В коде (команд баттон клик) после нажатия кнопки в ворд выводится текст. Ну переинициализируется календарь после нажатия на кнопку, но код все равно продолжит выполняться, соответственно выведется и текст, а мне этого не надо, т.к. он будет не правильный (с нулями и пробелами вместо даты).
wolf05632 вне форума Ответить с цитированием
Старый 05.04.2011, 19:48   #4
wolf05632
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 25
По умолчанию

Ну что ж... Сам спросил, сам и отвечу: форму-то мы инициализировали и она от нас никуда не денется(если специально не закроем). Поэтому, в коде, который выполняется при клике, надо прописать:
Код:
private sub com_but click()
if calendar.day = false then goto error
.....
строки кода(вывод текста)
.....
exit sub
error:
msgbox("Ошибка")
end sub
Вот и усе!

ЗЫ: кстати, а что нужно прописать в кнопке "выход", чтоб при ее нажатии закрылась форма?

Последний раз редактировалось wolf05632; 05.04.2011 в 20:01.
wolf05632 вне форума Ответить с цитированием
Старый 05.04.2011, 19:59   #5
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Unload Me 'оператор Unload убирает указанный объект из памяти. Объект с именем Me, имеет в VBA специальный смысл. В данном случае оно означает форму и весь её про-граммный код
зачем goto error
а если msgbox("Ошибка") и на выход??
Ципихович Эндрю вне форума Ответить с цитированием
Старый 05.04.2011, 20:56   #6
wolf05632
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 25
По умолчанию

Дык не надо на выход)) Надо день на календаре выбрать! про закрытие формы я ради любопытства спросил.
wolf05632 вне форума Ответить с цитированием
Старый 06.04.2011, 08:23   #7
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

как не надо, посмотрите в Ваш код, после msgbox("Ошибка")
что идёт? - end sub
А Вы говорите не надо
Ладно проехали
Ципихович Эндрю вне форума Ответить с цитированием
Старый 06.04.2011, 20:35   #8
wolf05632
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 25
По умолчанию

Как же Вам объяснить?.. Давайте хронологически: Сначала инициализируется форма календарем и кнопкой (и с формой ничего не происходит, если специально ее не закрыть), затем, если при выборе даты мы сменим месяц, то кнопочка с днем отожмется(то есть даты в программе, как бы нет), затем, если нажмем на кнопку(она выводит текст в зависимости от даты), то получим ошибку.
ТАК ВОТ, что б текст не печатался, если нет даты, то мы просто пропускаем ВЕСЬ код, который должен был бы выполняться. Соответственно, выскакивает месаджбокс с сообщением "установите день". Мы его закрываем по крестику. НО ФОРМА С КАЛЕНДАРЕМ ВСЕ ЭТО ВРЕМЯ ВИСЕЛА И ПРОДОЛЖАЕТ ВИСЕТЬ С ОТЖАТОЙ КНОПКОЙ ДНЯ НА КАЛЕНДАРЕ!!! Соответственно, мы, исправляя ошибку, выбираем день на календаре и ОПЯТЬ ЖМЕМ КНОПКУ "выполнить". ТЕКСТ ПЕЧАТАЕТСЯ - ВСЕ ДОВОЛЬНЫ)))
wolf05632 вне форума Ответить с цитированием
Старый 07.04.2011, 07:11   #9
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Я бы менял активность кнопки (Enable) в зависимости от того выбрана дата или нет. У календаря, (кстати, какой именно календарь вы используете?) должно быть событие DateChange или как-то так. Так вот в это событие и нужно прописать, что если даты нет, то кнопка не активна.
Код:
com_but.Enabled = calendar.day
В этом случае пользователь просто не сможет нажать кнопку, если дата не выбрана. Можно для ясности ещё и подсказку для кнопки сделать, что нужно выбрать дату. Как-то так.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 07.04.2011, 12:09   #10
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

если это в Офисе, файл прикрепите пжл
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как дописать данные из одного MemoryStream в другой? iiunbreakableii Общие вопросы Delphi 2 01.04.2011 08:17
Как скопировать строку из одного Stringgrida в другой? Pinkygirl Общие вопросы Delphi 1 16.01.2010 23:25
Необходимо передать переменную из одного класса в другой. scray PHP 4 27.12.2009 13:01
как из макроса передать управление пользователю, а потом опять макросу? Тупой Microsoft Office Excel 5 03.09.2009 23:01
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта User>lia Общие вопросы Delphi 4 16.01.2009 16:37