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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Введенное выражение не содержит значения(msa 2003)
 
 автор: ilnur.muhametov   (21.10.2009 в 14:39)   личное сообщение
45 Кб.
 
 

День добрый! Выходит вот такая ошибка при вычислении Остатка когда Расход или Приход пустой. Подскажите пожалуйста как обнулить значение когда оно отсутствует.

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 14:42)   личное сообщение
 
 

Остаток=nz(Приход,0)-nz(Расход,0)

а лучше в таблице всво-вах Приход, Расход поставить Значение по умолчанию 0

  Ответить  
 
 автор: ilnur.muhametov   (21.10.2009 в 14:50)   личное сообщение
 
 

Что то не получается с nz. На кнопке Вычислить остаток пишу
Me.Itogo = Nz(SubPrihodOstatok!sumprihod, 0) - Nz(SubRashodOstatok!sumrashod, 0)
все равно такая же ошибка, попробовал значение по умолчанию в sumprihod и sumrashod в 0 тоже не помогает.
Да может это имеет значение: подформы формируются на основе запросов

  Ответить  
 
 автор: osmor   (21.10.2009 в 14:57)   личное сообщение
 
 

me!SubPrihodOstatok.form!sumprihod

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 14:59)   личное сообщение
 
 


Me.Itogo = Nz(SubPrihodOstatok!sumprihod, 0) - Nz(SubRashodOstatok!sumrashod, 0)


SubPrihodOstatok!sumprihod - что это.
если SubPrihodOstatok - форма то forms!SubPrihodOstatok!sumprihod
если вложенная то
forms!Главная_Форма!SubPrihodOstatok!sumprihod

  Ответить  
 
 автор: ilnur.muhametov   (21.10.2009 в 15:07)   личное сообщение
 
 

Главная форма - Ostatok
Подчиненая форма Приход - SubPrihodOstatok
Подчиненная форма Расход -SubRashodOstatok
Сумма прихода в поле sumprihod формы SubPrihodOstatok ( код Sum=("Kolichestvo")
Сумма расхода в поле sumrashod формы SubRashodOstatok (код Sum=("Kolichestvo")
Поле itogo на форме Ostatok
Нажатие кнопки Вычислить остаток Me.Itogo = Nz(SubPrihodOstatok!sumprihod, 0) - Nz(SubRashodOstatok!sumrashod, 0)

Это все работает,но если в приходе или расходе пусто - то ошибка. Спасибо за ответы!
Да и на рисунке поле Сумма это не Сумма приходов или расходов!

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 15:20)   личное сообщение
12 Кб.
 
 

посмотри сделал похоже (Форма1) пока на поле4 было =Sum([kol]) при одном из пустых выдавало пустоту
сделал =Nz(Sum([kol]);0) - результат выдает всегда

  Ответить  
 
 автор: ilnur.muhametov   (21.10.2009 в 15:25)   личное сообщение
 
 

Спасибо еще раз за ответы!
Да так работает, но дело в том что у меня в свойствах формы=данные=разрешить изменение, удаление,добавление стоит в нет.

  Ответить  
 
 автор: ilnur.muhametov   (21.10.2009 в 15:21)   личное сообщение
 
 

Me.Itogo = Nz(Forms!ostatok!SubPrihodOstatok!sump rihod, 0) - Nz(Forms!ostatok!SubRashodOstatok!sumr ashod, 0)

Все равно такая же ошибка при пустом расходе или приходе

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

Причина в том, что в субформах запрещено добавление записей. Когда нет записей - нет и полей, т.е. "sumprihod" и/или "sumrashod" недоступны.

Если это делается в процедуре, то можно так:
On Error Resume Next
v1 = Me![SubPrihodOstatok].Form![sumprihod]: If Err <> 0 Then Err.Clear: v1=0
v2 = Me![SubPrihodOstatok].Form![sumrashod]: If Err <> 0 Then Err.Clear: v2=0
Me![Itogo] = v1 - v2

В вычисляемом поле можно попробовать так:
=IIf(IsError(SubPrihodOstatok!sumprihod); 0; SubPrihodOstatok!sumprihod) - IIf(IsError(SubRashodOstatok!sumrashod); 0; SubRashodOstatok!sumrashod)

  Ответить  
 
 автор: ilnur.muhametov   (21.10.2009 в 15:26)   личное сообщение
 
 

Сейчас пойду пробовать! Спасибо!

  Ответить  
 
 автор: ilnur.muhametov   (21.10.2009 в 15:35)   личное сообщение
 
 

Большое Всем Спасибо! Особенно Анатолию!
У меня заработало! Вот это на кнопке Вычислить остаток:

On Error Resume Next
v1 = Forms![ostatok]![SubPrihodOstatok]![sumprihod]: If Err <> 0 Then Err.Clear: v1 = 0
v2 = Forms![ostatok]![SubRashodOstatok]![sumrashod]: If Err <> 0 Then Err.Clear: v2 = 0
Me![Itogo] = v1 - v2

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