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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Итог для вычисляемого поля
 
 автор: Stanislav   (07.11.2010 в 08:23)   личное сообщение
14 Кб.
 
 

Таблица Table1: Qty (кол-во), Price (цена).
На основе таблицы создана форма Form1 типа Лист Данных с полями: Qty, Price, Amount=Qty*Price.
Хочу, чтобы снизу подсчитывались итоги для Qty и Amount.
Вкладка Home - Totals. В появившейся строке Total для Qty выбираю Sum, а вот для поля Amount варианты итогов только None и Count. Варианта Sum нет. Как решить задачу?
Приложил пример БД в формате MSA2007.

  Ответить  
 
 автор: AlexSyr   (07.11.2010 в 12:17)   личное сообщение
 
 

В качестве источника данных для формы использовать не таблицу, а

SELECT Table1.ID, Table1.Qty, Table1.Price, [Qty]*[Price] AS Сумма FROM Table1; 

  Ответить  
 
 автор: Stanislav   (08.11.2010 в 02:55)   личное сообщение
 
 

Точно. И почему я вбил себе в голову, что записи, выводимые запросом, нельзя редактировать?

  Ответить  
 
 автор: Stanislav   (08.11.2010 в 03:46)   личное сообщение
21 Кб.
 
 

Вот еще прикол: завел в той же Table1 еще одно поле Weight типа single.
Создал запрос на основе этой таблицы.
Записал в поле Weight значение 20,2.
Внизу в строке Total суммирую поле Weight, он мне выдает: 20,2000007629395.
Это что? Погрешность типа single?
Меняю на double, выдает то же самое: 20,2000007629395.
Пример БД приложил.

  Ответить  
 
 автор: Гоблин   (08.11.2010 в 06:54)   личное сообщение
 
 

Огранич количество выводимых знаков после запятой до 2

  Ответить  
 
 автор: Stanislav   (08.11.2010 в 07:37)   личное сообщение
 
 

Про форматирование понятно. Интересно почему так получается, что водишь 20,2 а получаешь 20 c 13 знаками после запятой.
Если умножить 0,0000007629395 на 100 тысяч (записей или например ящиков), то получаем ощутимую погрешность: 0,07629395.
Наверно, я для поля вес выберу тип Currency.
Насчет Double - проверил еще раз, прописал число 20,2 заново. DOuble выдает нормальные результаты - пишешь 20,2 - в строке Итоги отображается 20,2 (форматирование не задано). Пишешь 20,201 - тоже самое в Итогах.
Что посоветуете? Какой тип данных использовать для веса? Double или Currency?
Час, помогай! Я знаю, ты с этим вопросом сталкивался :)

  Ответить  
 
 автор: Дядя Федор   (08.11.2010 в 09:14)   личное сообщение
 
 

Почитай про округление в аксес.
http://hiprog.com/ - Поиск
Осoбенно забавна вот эта ссылка http://hiprog.com/index.php?option=com_content&task=view&id=40 - проблема та же, а решение, видимо, потерялось в анналах hiprog

  Ответить  
 
 автор: Stanislav   (09.11.2010 в 03:48)   личное сообщение
 
 

Что-то я туплю. Все-таки вопрос остается прежним: как в форме получить снизу итоговую сумму для вычисляемого поля? В запросе можно выбрать итог Sum. А мне надо именно форму, потому я хочу вносить в таблицу новые значения (кол-во, цена) и сразу видеть результат их перемножения (кол-во*цена) и внизу в строке Total суммарную стоимость. Ну почему в форме нельзя выбрать Sum для вычисляемого поля, а только Count? Такое впечатление, что акс считает это поле текстовым.

  Ответить  
 
 автор: Дядя Федор   (09.11.2010 в 08:14)   личное сообщение
46 Кб.
 
 

Кто сказал что нельзя. Можно
=sum(...)

  Ответить  
 
 автор: AlexSyr   (09.11.2010 в 12:22)   личное сообщение
17 Кб.
 
 

Судя по всему Вы выводите форму в режиме таблицы, где в последней строчке желаете получить Итоги. ==>
Запрос при этом делать не обязательно.

  Ответить  
 
 автор: Дядя Федор   (09.11.2010 в 13:02)   личное сообщение
 
 

Форма - ленточная (так, Станислав?) и никаких запросов!

  Ответить  
 
 автор: AlexSyr   (09.11.2010 в 13:20)   личное сообщение
 
 


В ленточной форме нельзя сделать


Вкладка Home - Totals. В появившейся строке Total для Qty выбираю Sum ...


Ну хочет он так!!!

  Ответить  
 
 автор: Stanislav   (10.11.2010 в 09:06)   личное сообщение
21 Кб.
 
 

Все. Сделал. Посмотрел пример в Майкрософтовской базе Northwind: форма Order Details, субформа Order Subform for Order Details. Там как раз сделано так как я хочу.
Сделал так: форма вида Datasheet, источник данных - запрос (все поля из таблицы + вычисляемое поле Amount=Qty * Price). Снизу итоги - сумма для полей Qty и Amount.
Ленточную субформу пробовал. В примечание формы добавляешь поле Amount = Sum (Qty * Price). Работает, но т.к. Amount находится в примечании формы, то между записями субформы и полем Amount получается большой пустой промежуток. Как его убрать - не знаю.

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