|
|
|
| Здравствуйте!
Есть форма, в ней поле, в которое пользователь вводит данные по маске (допускается ввод 6 цифр), затем пользователь должен нажать одну из кнопок "ОК" и "Отмена" (соответственно дальше выполняется определенный код или форма закрывается).
Обнаружилась такая неприятная особенность Акса - если введено меньше 6 цифр, то выскакивает стандартное аксовое сообщение об ошибке, типа, данные не соответствуют маске и ля-ля-ля... Причем форму нельзя даже закрыть, пока не удалишь все цифры или не введешь корректные данные.
Конечно с одной стороны терпимо и можно приноровится, но все же криво. Пробовал повесить на поле и кнопки обработку ошибок (на количество символов), но все равно она не срабатывает, потому что Акс умудряется проверить маску ввода до того как обработчик до нее доберется (на поле без маски все работет).
Как перехватывать это стандартное сообщение об ошибке и подменять своим? Или может быть есть альтернативный способ реализации задачи - аналог маски ввода?
Спасибо | |
|
| |
|
|
|
| Попробуйте здесь перехватить:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
End Sub
|
| |
|
| |
|
|
|
| Спасибо за наводку! Сейчас да, первым на ошибку реагирует обработчик, но следом все равно вылезает стандартное сообщение Акса :-((( | |
|
| |
|
|
|
| Response для этого надо пользовать | |
|
| |
|
|
|
| Еще раз огромное спасибо!
Вставил в код строку "Response = acDataErrContinue" и все заработало как надо. | |
|
| |
|
|
|
| На афтерАпдэйт поля аналилровать что именно туда введено. Если не соответствует - сообщение и заставить заново водить. | |
|
| |
|
|
|
| афтерАпдэйт не должен наступить, если маске не соответствует. | |
|
| |
|
|
|
| Имелось ввиду, что маску вааще убрать нафиг. Жутко неудобная штука для пользователей.
Если поставишь курсор на середину, то вааще не введешь то, что нужно.. | |
|
| |
|
|
|
| Дело в том, что эти 6 цифр должны выглядеть так 000-000. Если убрать маску ввода, то придется пользователя заставлять тыкать на "минус" | |
|
| |
|
|
|
| что мешает после третьго знака программно запихнуть минус | |
|
| |
|
|
|
| Наверное, мешает бедное воображение и отсутствие опыта в программировании ((( Но я учусь! | |
|
| |
|
|
|
| А что мешает при получении фокуса установить курсор в начало | |
|
| |
|
|
|
| С этим проблем нет, при получении фокуса курсор устанавливается на 1-ую позицию поля. Глюк был только если количество цифр было меньше положенного | |
|
| |
|
|
|
| Mid(str, 1, 3) & "-" & Mid(str, 4) | |
|
| |
|
|
|
| Зачем хранить в базе лишние символы?
Тем более добавлять их программно?
Надо отобразить с дефисом - форматируй отображаемое значение как хочется(нужно) в отчете. | |
|
| |