Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: АлексейЕ
Да уж, по изгаляться пришлось.

И этот код перестал работать корректно, когда добавил еще один контрол субформа.
А причина то в другом месте окопалась.
Оказывается, если использовать инструкцию On Error Resume Next, то если в условии инструкции If происходит ошибка, то она, по сути, интерпретируется как выполнение условие (True), так как код выполняется в прямом смысле со "следующей строки"

Вот на эти вилы то я и напоролся.

Вот два примера. (Forms("h").Controls("h") не существует)

On Error Resume Next
    If Forms("h").Controls("h") <> 0 Then
        MsgBox "True"
    Else
        MsgBox "False"
    End If
Зедсь выведет True


On Error Resume Next
    If Forms("h").Controls("h") <> 0 Then
    Else
        MsgBox "False"
    End If
А здесь ни чего не выведет

Так что, после такого If’а обязательно надо ловить ошибку.


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.