Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поле в области данных отчета
 
 автор: bel   (16.01.2008 в 09:57)   личное сообщение
15 Кб.
 
 

Почему не считается в поле отчета?
Выходит ошибка - см.файл.
Пишу в поле:
= TimeValue(Format(TimeValue(Nz(Variant, #12:00:00 AM#)) - TimeValue(Nz(Variant3, #12:00:00 AM#)), "hh:nn"))

  Ответить  
 
 автор: bel   (16.01.2008 в 10:05)   личное сообщение
 
 

В общем, пишу вот так:
=TimeValue(Format(TimeValue(Nz([Variant];#0:00:00#))-TimeValue(Nz([Variant3];#0:00:00#));"hh:nn"))
И при просмотре отчета на некоторых строчках выходит Ошибка. На тех строчках, где Vriant3=0

  Ответить  
 
 автор: ГлазастыйМышь   (16.01.2008 в 10:34)   личное сообщение
 
 


=TimeValue(Format(TimeValue(Nz([Variant];"#0:00:00#"))-TimeValue(Nz([Variant3];"#0:00:00#"));"hh:nn"))

а может так

=TimeValue(Nz([Variant];0)-Nz([Variant3];0))

  Ответить  
 
 автор: bel   (16.01.2008 в 10:52)   личное сообщение
 
 

не не подходит, с нулями не считает. А вот строчка:
=TimeValue(Format(TimeValue(IIf(Nz(Variant;0)=0; #12:00:00 AM#, Variant)) - TimeValue(IIf(Nz(Variant3;0)=0; #12:00:00 AM#, Variant3)); "hh:nn"))

Только вот ошибку выдает типа: "ошибка синтаксиса во ввденном выражении"

  Ответить  
 
 автор: osmor   (16.01.2008 в 10:54)   личное сообщение
 
 

у ВАс Variant3 - это текст или число?

  Ответить  
 
 автор: bel   (16.01.2008 в 10:57)   личное сообщение
 
 

ну если я до этого совершала с этим математические действия. то число.
Да и вообще это формат - Дата/время

  Ответить  
 
 автор: Анатолий (Киев)   (16.01.2008 в 11:08)   личное сообщение
 
 

TimeValue принимает значение типа Date.
TimeValue(0) приводит к ошибке.
TimeValue(CDate(0)) возвращает 0:00:00

Можно так:
=Format(TimeValue(CDate(NZ([Variant];0)))-TimeValue(CDate(NZ([Variant3];0)));"hh:nn")

если в полях только время, то можно проще:
=Format(NZ([Variant];0)-NZ([Variant3];0);"hh:nn")

  Ответить  
 
 автор: bel   (16.01.2008 в 11:19)   личное сообщение
 
 

я написала вот так:

=TimeValue(Format(TimeValue(cdate(Nz(Variant, #12:00:00 AM#))) - TimeValue(cdate(Nz(Variant3, #12:00:00 AM#))); "hh:nn"))

Но только теперь там в любом случае появляется положительное число. А мне нужно, чтоб было так:
если Variant=0, то в итоге получилось бы отрицательное число.
Ну тож спмое если 0-3=-3

  Ответить  
 
 автор: osmor   (16.01.2008 в 11:20)   личное сообщение
 
 

TimeValue принимает значение типа Date.
Анатолий, ничго не путаешь?
вот из Help


TimeValue(time)

The required time argument is normally a string expression representing a time from 0:00:00 
(12:00:00 A.M.) to 23:59:59 (11:59:59 P.M.), inclusive. However, time can also be any expression 
that represents a time in that range. If time contains Null, Null is returned.

Remarks

You can enter valid times using a 12-hour or 24-hour clock. For example, "2:24PM" and "14:24" are 
both valid time arguments.

If the time argument contains date information, TimeValue doesn't return it. However, if time 
includes invalid date information, an error occurs

  Ответить  
 
 автор: bel   (16.01.2008 в 12:30)   личное сообщение
 
 

написала вот так:

=TimeValue(Format(TimeValue(cdate(Nz(Variant, #12:00:00 AM#))) - TimeValue(cdate(Nz(Variant3, #12:00:00 AM#))); "hh:nn"))

Но только теперь там в любом случае появляется положительное число. А мне нужно, чтоб было так:
если Variant=0, то в итоге получилось бы отрицательное число.
Ну тож спмое если 0-3=-3

  Ответить  
 
 автор: Анатолий (Киев)   (16.01.2008 в 15:27)   личное сообщение
 
 

Для bel:
Девушка, вы забываете, что оперируете понятием "время". Оно не может быть отрицательным. 00:00 - 02:00 = 22:00, а не -02:00
Видимо вам прийдется проверять, какое значение больше, вычитать из большего меньшее, превращать результат в текст, и при необходимости дорисовывать "-".

Для osmor:
Олег, может я и некорректно выразился, но TimeValue принимает только строку, представляющую время (дата/время), переменную типа Variant(Date) или значение Null.
Любое чиcло ею не распознается (по крайней мере в А2000).
?TimeValue(1) возвращает ошибку "Type mismatch".
Это легко проверить.

  Ответить  
 
 автор: osmor   (16.01.2008 в 15:32)   личное сообщение
 
 

я сам эту функцию никогд не использовал (даже не знал что такая есть ), просто читаю Help, написано - "текст", а тут ты говоришь - "дата", вот я и переспросил, что бы знать на будущее

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList