Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Сравнение с Null


Автор: Zahny 3.5.2005, 16:33
Добрый день! Скажите пожалуйста, почему не работает сравнение с Null.
UPass1 - текстовое поле. Если сравнивать текст с пустой строкой, как в строках 3,4, то Access говорит, что не может прочитать значение поля. Подозреваю, что это из-за того, что формат поля - пароль. Есть ли еще способы узнать, не пусто ли поле?

Код

Dim flag As Boolean

flag = True
Form_AddUser.UName.SetFocus 
If (Form_AddUser.UName.Text = "") Then flag = False

If (Form_AddUser.UGroup.Value <> 11) Then
      If (Form_AddUser.UPass1.Value = Null) Then flag = False
End If

Автор: Zahny 3.5.2005, 16:45
Проблему решила: меняю формат ввода перед сравнением с пустой строкой. Но почему не работает сравнение с NULL, всё равно не понимаю.

Код

    Form_AddUser.UPass1.SetFocus
    Form_AddUser.UPass1.InputMask = ""
    If (Form_AddUser.UPass1.Text = "") Then flag = False
    Form_AddUser.UPass1.InputMask = "Password"

Автор: Akina 3.5.2005, 18:28
Zahny
TextBox.Value по определению не может содержать Null. Только пустую строку ( "" ). Конструктор-то отрабатывает? непременно... а он всегда явно присваивает значение, пусть и пустую строку...

Null может иметь только СОЗДАННЫЙ, НО НЕ ИНИЦИАЛИЗИРОВАННЫЙ объект (переменная, ссылка, поле записи БД). И то не каждый...

Автор: Zahny 4.5.2005, 10:31
Сравнение Form_AddUser.UPass1.Value с "" точно также не проходит. А если в пошаговом режиме навести мышку на Form_AddUser.UPass1.Value, то значение равно Null. Почему?

Автор: Akina 4.5.2005, 11:30
Цитата(Zahny @ 4.5.2005, 11:31)
если в пошаговом режиме навести мышку на Form_AddUser.UPass1.Value, то значение равно Null. Почему?

Любопытно... впрочем ему в конструкторе начальное значение не задавалось? все одно странно...

Цитата(Zahny @ 4.5.2005, 11:31)
Сравнение Form_AddUser.UPass1.Value с "" точно также не проходит.

Код

Private Sub Form_Load
.....
Form_AddUser.UPass1.Value = Form_AddUser.UPass1.Value & ""
.....
End Sub

и нет проблемы... smile

Автор: Zahny 4.5.2005, 12:25
Я тут вспомнила, что есть такая штука IsNull(). Мои проблемы с текстовым полем она сразу решила. А то я уже который день, мягко говоря, злюсь, от того что он мне в Ifы не заходит. Теперь заходит.
Всё равно спасибо. smile
Добавлено @ 12:28
И зачем у меня звездочка тепрь? Я ж только вопросы задаю. Никому, кроме себя, пока не помогла!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)