powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Заменить станд. сообщение на пользовательское
11 сообщений из 11, страница 1 из 1
Заменить станд. сообщение на пользовательское
    #34553033
Abrakadabra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Субформа с несколькими полями, ввод в первое поле обязательный.
Пользователь при входе в субформу пользуется в основном мышью и
чаще всего ставит фокус сразу во второе поле, наиболее значимое
для него, заполняет (выбирает значение) и пытается выйти из
субформы, забывая (очень часто) заполнить первое обязательное
поле. БД не дает ему это сделать, пишет: Поле "в данном случае первое"
не может иметь значение Null..., что не всегда понятно пользователю.
Как заменить стандартное сообщение на пользовательское?
Спасибо.
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553044
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OnError и обработать ошибку?
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553048
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно для этого поля в форме задать свойства:
1. "Условие на значение" - например, если нельзя NULL, то напишите там Is Not Null
2. "Сообщение об ошибке" - ваш текст сообщения при нарушении этого условия

Либо можно написать свою процедуру обработки штатного события OnError в форме:
Код: plaintext
Private Sub Form_Error(DataErr As Integer, Response As Integer)
И там уже программно разобраться - что за ошибка (DataErr), в каком контроле находитесь, и т.п. Выдать нужное сообщение, задать ответный Response.

Пробуйте
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553106
Abrakadabra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KarfaqenМожно для этого поля в форме задать свойства:
1. "Условие на значение" - например, если нельзя NULL, то напишите там Is Not Null
2. "Сообщение об ошибке" - ваш текст сообщения при нарушении этого условия

Вы имеете ввиду первое поле. С ним все понятно.. Но речь шла о том, что пользователь
это поле пропускает и мышью кликает сразу второе поле, так что этот вариант не проходит.
Уже испытано..:)
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553117
Фотография ruprext
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделайте поля недоступными пока не введено первое
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553121
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ruprextсделайте поля недоступными пока не введено первоеЭто неудобно. Лучше вариант Karfaqen с Form_Error.
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553162
Фотография ruprext
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_worldЭто неудобно. Лучше вариант Karfaqen с Form_Error.так проще, но решать автору в любом случае
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553174
на кнопке применить (он же выход)
Код: plaintext
1.
2.
3.
4.
5.
if not (isnull(Pole1) and IsNull(Pole2)) then
      docmd.close
else
      Pole2.SetFocus
      if isnull(Pole1) and Not IsnUll(Pole2) then Pole1.SetFocus
end if
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553177
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем перехват ошибки в самых прна кнопке применить (он же выход)
Код: plaintext
1.
2.
3.
4.
5.
if not (isnull(Pole1) and IsNull(Pole2)) then
      docmd.close
else
      Pole2.SetFocus
      if isnull(Pole1) and Not IsnUll(Pole2) then Pole1.SetFocus
end if
Там кнопки может и не быть, это в подформе, а не в отдельной форме. Пользователь просто выходит в главную, а тут ему сюрприз в виде непонятного сообщения.
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553276
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbrakadabraВы имеете ввиду первое поле. С ним все понятно.. Но речь шла о том, что пользователь это поле пропускает и мышью кликает сразу второе поле, так что этот вариант не проходит. Уже испытано..:)Ну да, первый вариант - это для инвалидации значения при вводе в поле . Если у вас речь об ошибке, которая вызывается штатным механизмом инвалидации значений перед сохранением записи , то тогда конечно нужен не первый, а второй вариант, который я вам предлагал.

Можно проверить в Form_Error субформы правильность заполнения своего поля, и если что-то не так, сделайте DoCmd.CancelEvent, выдайте свое понятное сообщение, а штатное сообщение подавите (Response = acDataErrContinue).
...
Рейтинг: 0 / 0
Заменить станд. сообщение на пользовательское
    #34553511
Abrakadabra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Karfaqen AbrakadabraВы имеете ввиду первое поле. С ним все понятно.. Но речь шла о том, что пользователь это поле пропускает и мышью кликает сразу второе поле, так что этот вариант не проходит. Уже испытано..:)Ну да, первый вариант - это для инвалидации значения при вводе в поле . Если у вас речь об ошибке, которая вызывается штатным механизмом инвалидации значений перед сохранением записи , то тогда конечно нужен не первый, а второй вариант, который я вам предлагал.

Можно проверить в Form_Error субформы правильность заполнения своего поля, и если что-то не так, сделайте DoCmd.CancelEvent, выдайте свое понятное сообщение, а штатное сообщение подавите (Response = acDataErrContinue).

Спасиьо, все получилось.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Заменить станд. сообщение на пользовательское
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]