Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Интересная штука / 11 сообщений из 11, страница 1 из 1
12.05.2003, 09:42
    #32157138
Kriven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
Делал надысь отчет с вычисляемыми полями.
В ряд полей данные брал из комбиков к примеру: поле1. = Nz(список1.column(0),""), поле2= Nz(список2.column(0),""), поле3= поле1+поле2.
И вот проблемма начинается с полем3, почему то 1+2<>3, а равно 12?
Использовал для решения этой проблемки поле3= поле2/1+поле1/1 - складывает нормально, мне так и придется делить на единицу или есть другие варианты?
...
Рейтинг: 0 / 0
12.05.2003, 09:47
    #32157144
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
Юзай функцию Val для поле1 и поле2
...
Рейтинг: 0 / 0
12.05.2003, 09:49
    #32157146
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
Ха, так у тебя Nz() возвращает что-то непонятно какого типа. Вот аксес и считает это строкой. Соответственно не суммирует, а конкатенирует. Когда делишь на 1 - ну число у него в итоге получается, тогда он и складывать начинает.
Надо хотя бы так:
поле3 = CDbl(поле1) + CDbl(поле2)
...
Рейтинг: 0 / 0
12.05.2003, 09:50
    #32157148
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
На не явное преобразование типов понадеялся? Зря.

Лучше используй NZ(Number,0), а в свойствах поля выстави формат для нуля "", тогда не будешь гадать что выйдет при ""+"5" , "1"+"2"
...
Рейтинг: 0 / 0
12.05.2003, 09:52
    #32157151
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
апаздал

(с) Лоха Позорного
...
Рейтинг: 0 / 0
12.05.2003, 09:52
    #32157152
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
апаздал

(с) Лоха Позорного
...
Рейтинг: 0 / 0
12.05.2003, 09:54
    #32157153
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
2 Лоху

>поле3 = CDbl(поле1) + CDbl(поле2)
Чему молодежь учишь?

Cdbl(Значение=Null)
Будет Error 13. Type mismatch
...
Рейтинг: 0 / 0
12.05.2003, 10:09
    #32157165
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
Хрен там, CDbl(Null) не случится, у него сначала Nz стоит (для поля1 и 2)
А вот CDbl("") выдаст ашипку 13
Так что надо
Код: plaintext
поле1 = Nz(список1.column( 0 ), 0 )

Но это ты уже написал, так что теперь я апаздал.
...
Рейтинг: 0 / 0
12.05.2003, 10:37
    #32157194
Kriven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
Итак получается:
поле1 = Nz(список1.column(0),0)
и в конце:
поле3 = CDbl(поле1) + CDbl(поле2) ?
...
Рейтинг: 0 / 0
12.05.2003, 10:47
    #32157202
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
Да, так и получается.
Или, если тебе в поле1/2 так надо пустоту видеть вместо нуля, то
Код: plaintext
1.
2.
поле1 = список1.column( 0 )
поле2 = список2.column( 0 )
поле3 = CDbl(Nz(поле1, 0 )) + CDbl(Nz(поле2, 0 )) 
...
Рейтинг: 0 / 0
12.05.2003, 10:57
    #32157212
Kriven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересная штука
Большое прибольшое...
<p><img border="0" src="filehttp://www.sql.ru/images/happy.gif" ></p>
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Интересная штука / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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