Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / чтобы нельзя было в форме в поле оставлять пустое значение? / 20 сообщений из 20, страница 1 из 1
22.12.2004, 16:19:50
    #32839716
MotoCV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтобы нельзя было в форме в поле оставлять пустое значение?
Во блин как извернулся :) Всем привет. Вопрос заключается в следующем. Есть форма, на ней несколько полей, доступ на изменение открыт только к двум полям, одно из этих полей является обязательным для заполнения.

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

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

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

по подробнее напиши пожалуйста???
...
Рейтинг: 0 / 0
23.12.2004, 08:15:30
    #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
23.12.2004, 10:36:27
    #32840892
Leenoox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтобы нельзя было в форме в поле оставлять пустое значение?
Private Sub поле1_LostFocus ()
If IsNull(поле1) Or поле1 = "" Then
MsgBox "Заполните поле!"
Me!поле1.SetFocus
Else
Exit Sub
End Sub
...
Рейтинг: 0 / 0
23.12.2004, 10:40:02
    #32840900
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтобы нельзя было в форме в поле оставлять пустое значение?
2 Leenoox
хм. а если этот контрол и фокуса не получал?
...
Рейтинг: 0 / 0
23.12.2004, 10:49:28
    #32840915
Leenoox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтобы нельзя было в форме в поле оставлять пустое значение?
MotoCV
....
Так вот, как сделать так, чтобы нельзя было перейти к другой записи не заполнив Обязательное поле???...
:(

вообще можно поставить эту процедуру разные события по желанию. Например, на закрытие формы, на потерю фокуса формой. Главное чтобы в итоге несуразица не получилась.
...
Рейтинг: 0 / 0
23.12.2004, 12:16:17
    #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
23.12.2004, 12:29:25
    #32841265
MotoCV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтобы нельзя было в форме в поле оставлять пустое значение?
LeenooxPrivate Sub поле1_LostFocus ()
If IsNull(поле1) Or поле1 = "" Then
MsgBox "Заполните поле!"
Me!поле1.SetFocus
Else
Exit Sub
End Sub

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

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

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

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

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

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

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



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

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


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