powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / чтобы нельзя было в форме в поле оставлять пустое значение?
20 сообщений из 20, страница 1 из 1
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32839716
MotoCV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во блин как извернулся :) Всем привет. Вопрос заключается в следующем. Есть форма, на ней несколько полей, доступ на изменение открыт только к двум полям, одно из этих полей является обязательным для заполнения.

Так вот, как сделать так, чтобы нельзя было перейти к другой записи не заполнив Обязательное поле???

Я пытался в свойствах поля/Данные/Условие на значение - Not(Is Null), не помогает :(
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32839778
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В событии Form_BeforeUpdate добавь проверку и Cancel=true
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32840427
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Штатное свойство поля в конструкторе таблиц.
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32840439
AnTT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно сделать кнопку "Переход к следующей записи" и:
Код: plaintext
1.
2.
3.
4.
5.
if not isnull(me.Обязательное_поле) then
'разрешить переход к следующей записи
else
'запретить переход к следующей записи
end if
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32840650
MotoCV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительШтатное свойство поля в конструкторе таблиц.

Так не подойдет, потому что до этого в таблице не было такого поля, а теперь есть и его необх. заполнять, т.е. получается что во всей таблице это поле пустое, а в новых записях должно быть не пустым...
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32840651
MotoCV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roma RВ событии Form_BeforeUpdate добавь проверку и Cancel=true

по подробнее напиши пожалуйста???
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32840658
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me!Имя) Then
MsgBox "Не заполнено поле Имя!", vbCritical, "А заполнять кто будет?"
Cancel = True
End If
End Sub
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32840892
Leenoox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Sub поле1_LostFocus ()
If IsNull(поле1) Or поле1 = "" Then
MsgBox "Заполните поле!"
Me!поле1.SetFocus
Else
Exit Sub
End Sub
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32840900
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Leenoox
хм. а если этот контрол и фокуса не получал?
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32840915
Leenoox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MotoCV
....
Так вот, как сделать так, чтобы нельзя было перейти к другой записи не заполнив Обязательное поле???...
:(

вообще можно поставить эту процедуру разные события по желанию. Например, на закрытие формы, на потерю фокуса формой. Главное чтобы в итоге несуразица не получилась.
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841207
MotoCV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander G
Код: plaintext
1.
2.
3.
4.
5.
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me!Имя) Then
MsgBox "Не заполнено поле Имя!", vbCritical, "А заполнять кто будет?"
Cancel = True
End If
End Sub


блин такую защиту тоже получается обойти :( Т.е. если я в это поле не навожу курсор, не пытаюсь чего-нить вставить то и не срабатывает защита. В других полях меняю и закрываю форму и опять нужное поле остается пустым
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841265
MotoCV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeenooxPrivate Sub поле1_LostFocus ()
If IsNull(поле1) Or поле1 = "" Then
MsgBox "Заполните поле!"
Me!поле1.SetFocus
Else
Exit Sub
End Sub

так тоже не срабатывает, вернее срабатывает, но только после того как я перевожу курсор в это поле :( Попробую подробнее объяснить что мне нужно:
Есть таблица1:
ФИО////////согласен///дата///реакция
Петров////да////////// /////
Сидоров//нет///////// /////

Есть запрос, котрый выбирает все записи из таблицы, в котрой в поле "согласен" = "да". По этому запросу сделана табличная форма. Пользователь запускает эту форму, видит все записи кто согласен и забивает "дату" и "реакцию". Так вот, пользователь дату-то забивает, т.е. он для того и открывает форму чтобы дату забить, а теперь еще добавил поле "реакция", но его никто не забивает. Надо, чтобы нельзя было перейти к другой записи не забив в предыдущей записи "реакцию"...
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841277
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841293
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем тебя Form_BeforeUpdate не устраивает?
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841294
Leenoox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Sub поле_Дата_LostFocus ()
Me!поле_Реакция.SetFocus
End Sub

На поле_Реакция используем процедуру которую я написал выше.
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841341
MotoCV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот эта БД, то что Вы пишете имеет тот же эффект, как если бы я просто написал узловие на значение: Is Not Null. Т.е. все это проверяется только после того как я перешел на это поле.
Посмтрите на бд...
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841384
Leenoox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я все и так понял. Но ведь должна быть какая-нибудь отправная точка? Вы говорите, что пользователь открывает форму для того чтобы забить ДАТУ. Тоесть это выполняется ОБЯЗАТЕЛЬНО. IMHO, нет смысла заполнять поле Реакция, если не забита ДАТА в данной записи таблицы (строке формы). Разве не так?
Как только забьют ДАТУ и нажмут либо ENTER, либо куда-нибудь щелкнут мышью, фокус автоматом перейдет на поле РЕАКЦИЯ и засядет на нем.
Я думаю с точки зрения рациональной логики мое решение вам подходит.

Щас посмотрю базу...
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841413
MotoCV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeenooxЯ все и так понял. Но ведь должна быть какая-нибудь отправная точка? Вы говорите, что пользователь открывает форму для того чтобы забить ДАТУ. Тоесть это выполняется ОБЯЗАТЕЛЬНО. IMHO, нет смысла заполнять поле Реакция, если не забита ДАТА в данной записи таблицы (строке формы). Разве не так?
Как только забьют ДАТУ и нажмут либо ENTER, либо куда-нибудь щелкнут мышью, фокус автоматом перейдет на поле РЕАКЦИЯ и засядет на нем.
Я думаю с точки зрения рациональной логики мое решение вам подходит.

Щас посмотрю базу...

Пользователь запустил форму:
1. Щелкает мышкой в запись - 1, поле - "дата", забивает дату
2. Щелкает мышкой в запись - 2, поле - "дата"

и как же фокус перейдет в поле реакция????



Отлавливать как-то надо по переходу по записям, только вот как это реализовать я не знаю :(
Алгоритм такой, когда пользователь переходит к записи 2, процедурка проверяет забито ли значение РЕАКЦИЯ в записи 1, если нет, то ругается...
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841643
Leenoox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переделал базу. Теперь все работает.
Алгоритм такой:
1. Пользователь указывает дату (обязательное условие, так как нет смысла блокировать Реакцию если нет Даты. правильно?)
2. При потере фокуса на Дате, проверяется поле Дата (может пользователь просто "гулял" по полям и не забил Дату), если есть значение, то фокус передается в реакцию. Если нет - произвольно.
3. При потере фокуса на Реакции, проверяется на наличие значения этого поля.
4. Если поле пустое, а поле Дата заполненое, то курсор с него (поле Реакция) не сходит.

Можно сделать более жесткие условия, но думаю так лучше и удобней.
...
Рейтинг: 0 / 0
чтобы нельзя было в форме в поле оставлять пустое значение?
    #32841659
MotoCV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VERY VERY VERY big THANKS!!!
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / чтобы нельзя было в форме в поле оставлять пустое значение?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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