LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Подскажите отли...
 Подскажите отличие:
 
 26.05.2008 19:24:53
Alex N
9 сообщения


Подскажите отличие:

Здравствуйте!

Подскажите отличие

Function TTT(p1, p2, p3)
    If p1 = "" Then TTT = "444" Else TTT = "555"
End Function

И

Function TTT(p1, p2, p3)
    If p1 <> "" Then TTT = "444" Else TTT = "555"
End Function

В первом случае при любом р1 всегда 555

Во втором - всё как книга пишет.

Главное чтобы условия выполнялись - не принципиально какие

Спасибо!


С уважением, Бабий Александр
 27.05.2008 19:14:04
Admin1
731 сообщения
1-ый


Re: Подскажите отличие:

Переменные должны быть определены, иначе им может быть присвоет статус объекта или variant, а объекты математическими операторами (=, <>) не сравнивают. Пример

Private Function TTT(p1 As String, p2 As Variant, Optional p3 As Long)
    If p1 = "" Then
        TTT = "444"
    Else
        TTT = "555"
    End If
End Function

 27.05.2008 23:38:23
Alex N
9 сообщения


Re: Подскажите отличие:
Таблица1 Запрос
Код Поле1 Поле2 Поле3 Выражение1
1 Тест
1 555
3 777 fgh
#Ошибка
4 888 vvvvvvvvvvvvv
#Ошибка
5 Тест2

#Ошибка
6 вапв впав вап #Ошибка
7 vfgh
fhg #Ошибка

С уважением, Бабий Александр
 28.05.2008 12:12:54
Admin1
731 сообщения
1-ый


Re: Подскажите отличие:
 Измененный Admin1  на 28.05.2008 12:13:13)

Поля пропущены, поэтому и идет ошибка. Для контроля используют nz или On Error GoTo

Private Function TTT(p1 As Variant, p2 As Variant, Optional p3 As Long) As Variant
On Error GoTo 999
    If Nz(p1, "") = "" Then
        TTT = "444"
    Else
        TTT = "555"
    End If
    Exit Function
999:
    TTT = "0"
End Function

  Программирование  Microsoft Access. Файлы mdb и accdb  Подскажите отли...
ПоискПоиск  Список форумовСписок форумов  
right