Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / null функция / 20 сообщений из 20, страница 1 из 1
29.06.2004, 09:57:36
    #32580355
aleks3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
Привет АЛЛ!
что бы просуммировать два поля в запросе и получить новое надо использовать
функцию isnull.А может есть вариант как обойтись без нее. Что-то в духе
val(p1 & "+" & p2).Но в данном случае не отображается дробная часть.
Как ее отобразить?
...
Рейтинг: 0 / 0
29.06.2004, 10:03:58
    #32580369
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
не совсем понял чем вам isnull в сочетании с iif не угодил?

ну не угодил - используйте nz

PS: для вычисление вырадения "1+2" функция val не подходит (ибо вернет 1), надо использовать функцию eval (ИМХО)
...
Рейтинг: 0 / 0
29.06.2004, 10:05:47
    #32580374
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
isnull надо использовать если поля могут содержать null, если поля имеют дифолты и не могут быть пустыми, то не стоит и волноваться. В противном случае можно воспользоваться функцией Nz - no zero Nz([Fld1],0).

А это: val(p1 & "+" & p2) галиматья
...
Рейтинг: 0 / 0
29.06.2004, 10:12:48
    #32580393
aleks3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
У меня в полях содержится null.Поэтому использую функцию isnull
...
Рейтинг: 0 / 0
29.06.2004, 10:17:04
    #32580404
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
aleks3У меня в полях содержится null.Поэтому использую функцию isnull
?

Что-то не понятно.
А что от форума хотите?
...
Рейтинг: 0 / 0
29.06.2004, 10:23:22
    #32580423
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
to paparome:
Наверно правды!
...
Рейтинг: 0 / 0
29.06.2004, 10:41:33
    #32580479
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
-матки
...
Рейтинг: 0 / 0
29.06.2004, 11:08:42
    #32580547
aleks3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
просто в faq по access почитал

A2: Если одно из сравниваемых значений Null, то любое выражение с ним вернет Null (который приравнивается к False). Чтобы этого избежать, можно пользоваться функцией IsNull, которая в соответствующем случае возвращает True.

Примечание. Операция & работает иначе. Если A - значение, которое может быть либо строкой, либо Null'ом (например, поле строкового типа), то:

A + "zzz" -> если в A сидит Null, то получится Null
A & "zzz" -> если в A сидит Null, то получится "zzz"

На этом основан следующий трюк:

(A + ",") & (B + ",") & (C + ",")

Если какое-то из значений A, B, C равно Null, то вся соответствующая скобка даст Null и соответствующая запятая будет уничтожена, а затем соединение через & возьмет только те слагаемые, где не Null.


решил проверить в запросе не работает
...
Рейтинг: 0 / 0
29.06.2004, 11:14:23
    #32580565
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
Что именно не работает? Этот фак писал я, я хочу понять. Есть пример выражения, которое не сработало? Чему были равны значения полей и что получилось в результате?
...
Рейтинг: 0 / 0
29.06.2004, 11:16:56
    #32580570
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
Что в запросе не рабоает?
В приведенной вами выдержке из FAQ речь идет о строковых переменных, а вы пытаетесь это к числовым применить (и это все относиться именно к запросам - ибо в VBA переменная типа String не может принимать значение Null)

PS: конкатенация от операции сложения отличается не только работой с Null
Код: plaintext
1.
2.
3.
4.
5.
Dim a As Integer
Dim b As Integer
  a =  1 
  b =  2 
  MsgBox a + b
  MsgBox a & b
Знак конкатенации приводит к неявному преобразованию типов!
...
Рейтинг: 0 / 0
29.06.2004, 11:21:53
    #32580585
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
paparomeв VBA переменная типа String не может принимать значение Null
Зато типа Variant может. :^)
...
Рейтинг: 0 / 0
29.06.2004, 11:23:48
    #32580595
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
Владимир СанычЗато типа Variant может. :^)Не вопрос :)
...
Рейтинг: 0 / 0
29.06.2004, 12:53:04
    #32580933
маяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
paparomeв VBA переменная типа String не может принимать значение NullЗато может стать пустой строкой, что тоже весьма неудобно. И напоминаю про апострофы, которые сделают невозможной работу большинства запросов.
...
Рейтинг: 0 / 0
29.06.2004, 12:54:15
    #32580937
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
маякЗато может стать пустой строкой, что тоже весьма неудобно. И напоминаю про апострофы, которые сделают невозможной работу большинства запросов.
А в чем проблема? Можно пример? Желательно к обоим утверждениям.
...
Рейтинг: 0 / 0
29.06.2004, 13:25:21
    #32581048
маяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
Владимир Саныч маякЗато может стать пустой строкой, что тоже весьма неудобно. И напоминаю про апострофы, которые сделают невозможной работу большинства запросов.
А в чем проблема? Можно пример? Желательно к обоим утверждениям.1. Про пустую строку ничего путного не скажу.

2. А вот про апострофы...

Код: plaintext
db.Execute "UPDATE [Table] SET [Field]='" & sVar1 & "' WHERE [Pole]='" & sVar2 & "'"

Теперь представим, что будет, если sVar1="Katsman's question" - вполне невинное значение...
...
Рейтинг: 0 / 0
29.06.2004, 13:26:52
    #32581055
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
авторТеперь представим, что будет, если sVar1="Katsman's question" - вполне невинное значение
Replace(sVar1, "'", "''")
?
...
Рейтинг: 0 / 0
29.06.2004, 13:27:30
    #32581058
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
маякТеперь представим, что будет, если sVar1="Katsman's question" - вполне невинное значение...
Ну так удваивание апострофов - это известная вещь, которая даже в факах упомянута...
...
Рейтинг: 0 / 0
29.06.2004, 13:30:23
    #32581075
маяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
paparome авторТеперь представим, что будет, если sVar1="Katsman's question" - вполне невинное значение
Replace(sVar1, "'", "''")
?И на хитрую ж@пу найдётся... В текстовом поле и апостроф, и кавычка. Согласен, пример нереальный.
...
Рейтинг: 0 / 0
29.06.2004, 13:33:06
    #32581085
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
авторИ на хитрую ж@пу найдётся... В текстовом поле и апостроф, и кавычка. Согласен, пример нереальный.
Плохо видно - согласен, но я не заменял апостроф на кавычку, а заменял апостроф на 2 апострофа :))
...
Рейтинг: 0 / 0
29.06.2004, 13:33:36
    #32581089
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
null функция
маякВ текстовом поле и апостроф, и кавычка. Согласен, пример нереальный.
Во всех примерах здесь только апостроф.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / null функция / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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