2012-03-15 3 views
1

У меня проблема со связанным текстовым полем. Поле находится в поле и не разрешает Null в базе данных.Удалить обязательное/не пустое связанное текстовое поле

Это создает проблему, когда я хочу очистить текстовое поле. Например, если я что-то ввел и удалил, тогда правило проверки ударит и не позволит мне покинуть поле. Я могу оставить поле только в том случае, если я нажму ESC, чтобы сбросить его в исходное (неизмененное) состояние.

Я попытался установить поле Nothing и DefaultValue в событии _After-/_BeforeUpdate(), но это не сработает.

Благодарим за помощь.

+2

Итак, что бы вы хотели, чтобы поведение было? Прошло некоторое время с тех пор, как я разработал MS Access, но я всегда использую Unbound-формы, а затем SQL-скрипты, которые запускаются при нажатии кнопки Save. Эффективно отделяет интерфейс от данных. – markblandford

+2

В чем смысл не иметь нулевого значения, если вы не хотите, чтобы он работал? Правильное поведение - вернуть исходное значение. Если вы хотите nulls, установите его таким образом. – Fionnuala

+1

Точно так же, как говорит Remou, вы не можете сказать ему, чтобы он не разрешал null, а затем попытался проверить его терпение с ними^_^Что бы вы хотели, чтобы конечный результат был таким, как тогда мы можем посоветовать лучший вариант? –

ответ

0

Способ, которым я решил, благодаря комментариям, использовал несвязанное текстовое поле, а затем скопировал правило проверки из базы данных в форме On Load.

Private Sub Form_Load() 
    Me.MyTextbox.ValidationRule = CurrentDb.TableDefs("SomeTable").Fields("SomeColumn").ValidationRule & " Or Is Null" 
    Me.MyTextbox.ValidationText = CurrentDb.TableDefs("SomeTable").Fields("SomeColumn").ValidationText 
End Sub 

Примечание я добавил «Или Is Null» правилу иначе я бы застрял в текстовом поле, если я удалил свой вход. Правила проверки в базе данных:> = 1 И < = 10

Надеется, что это помогает кто-то :)

0

Я встретил эту проблему тоже. Я нахожу Me.Undo работ, в которых Me относится к форме.

Если вам нужно выполнить некоторую связанную операцию с Undo, например. для удаления файла с жесткого диска, подобного мне, используйте событие Form_Undo.

Смежные вопросы