Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 8
MS Access

Среднее арифметическое в столбце DBGrid

14.03.2016, 22:05. Показов 2279. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть BDGrid1, ADOConnection,DataSet и ADOTable. Нужно в последний столбец записать среднее арифметическое, так же в некоторых столбцах имеются пустые (незаполненные ячейки). Вот Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
{
int i; 
int kol; 
double sum,sred;
sum=0;
kol=0;
for ((i = 2); i < ADOTable1->RecordCount; i++)
sum=sum+ADOTable1->Fields->Fields[i]->AsInteger;
kol=kol+1;
sred=sum/kol;
ADOTable1->FieldByName("Среднее арифметическое")->AsAnsiString=sred;
}
Далее высвечивает следующую ошибку. Я предполагаю, что данная ошибка возникает из-за отсутствия защиты на проверку от пустых ячеек. Если тут она нужна, то как сделать так, чтобы пустые ячейки имели значение 0? Я новичок в этом...
Название: 3.png
Просмотров: 92

Размер: 12.5 Кб
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2016, 22:05
Ответы с готовыми решениями:

Найти среднее арифметическое и среднее геометрическое двух чисел
Даны два действительных положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел Плиз хелп!

Отображение данных в столбце DBGrid
Например, есть база на Access с таблицами Города (код, наименование) и Люди (Код, ФИО, Город, Адрес). Таблицы связан ...

Как найти максимум в столбце DBGrid в C++ Builder?
Как найти максимум в столбце DBGrid в C++ Builder? База подключена через ADOTable. Добавлено через 11 часов 12 минут Помогите...

13
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
14.03.2016, 22:57
C++
1
sum=sum+ADOTable1->Fields->Fields[i]->AsString.ToIntDef(0);
, только зачем это делать вручную? Запрос нельзя составить, чтобы он подсчитывал среднее и писал в таблицу? Грид же только отображает содержимое таблицы, а не хранит данные.
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 8
14.03.2016, 23:20  [ТС]
Хм, теперь выводит эту ошибку. =/


Вы имеете ввиду через ADOQuery? Я, если честно, не очень разобрался как его присоединить к таблице и работать с ней...
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
15.03.2016, 10:05
Intens2, выложи код как сделал?
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 8
15.03.2016, 22:53  [ТС]
Думаю нету смысла скидывать код, т.к. он бредовый.
У меня тут возник вопрос, у меня допустим называется таблица "Учёт стоимости", ADOQuery можно подключить к имеющейся таблице, если она состоит из более двух слов?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
15.03.2016, 23:15
Лучше таблицу назвать латинницей, если имя состоит из 2-х слов, то в названии соедини их нижним подчёркиванием
0
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 5
17.03.2016, 00:32
Используй агрегатные функции. http://sevidi.ru/php/phppage48.php
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 8
20.03.2016, 23:06  [ТС]
C++
1
2
3
4
5
6
7
8
9
{
ADOQuery1->Active = false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Select AVG([15 января] + [22 января] + [27 января])FROM БД");
ADOQuery1->SQL->Add("WHERE [Среднее арифметическое] = :s2");
ADOQuery1->Parameters->ParamByName("s2")->Value = DBGrid1->SelectedField->DataSet->FieldByName("Среднее арифметическое")->AsString;
ADOQuery1->Active = true;
 
}
Примерно выходит примерно так, но у меня среднее арифметическое вообще не выводит в столбец таблицы. Даже не знаю, где ошибка..
Миниатюры
Среднее арифметическое в столбце DBGrid  
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
21.03.2016, 12:42
А если попробывать через псевдоним AS?
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 8
21.03.2016, 22:10  [ТС]
Примерно так?
C++
1
2
3
4
5
6
7
8
9
{
ADOQuery1->Active = false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Select AVG(c.[15 janvar]+c.[22 janvar])");
ADOQuery1->SQL->Add("from БД AS c");
ADOQuery1->SQL->Add("WHERE [Среднее арифметическое]  = :s2");
ADOQuery1->Parameters->ParamByName("s2")->Value = DBGrid1->DataSource->DataSet->FieldByName("Среднее арифметическое")->AsString;
ADOQuery1->Active = true;
}
Всё равно ничего не выводит, даже ошибки никакой нету.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
22.03.2016, 09:15
Intens2, скинь файл базы я гляну, что у тебя там
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 8
22.03.2016, 17:09  [ТС]
Файл access? Вот.my_ses.rar
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
22.03.2016, 23:20
С такой базой ты далеко не уедешь. Меняй всё на латинницу от названия полей до названия таблиц, и типы полей поставь не текстовые, а числовые, если ты конечно хочешь заниматься подсчётами в таблице
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 8
26.03.2016, 18:30  [ТС]
Я передал под латинницу, но не работает подсчетка среднего, или же не правильно указано, где указывается столбец, где нужно подсчитать числа.

Я не особо уверен, что правильно написал код, где нужно указать в какой именно столбец должен подсчитаться SQL-запрос.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2016, 18:30
Помогаю со студенческими работами здесь

Среднее арифметическое
Найти среднее арифметическое элементов двумерного массива

Посчитать среднее арифметическое
Здравствуйте, обращаюсь с такой проблемой. В StringGrid имеется столбик, в каждой клетке которого набор чисел разделенных пробелом. Задача...

Среднее геометрическое и арифметическое
Уважаемые программисты! Может кто помочь в написании кода для среднего геометрическое и арифметического, буду очень признателен! Заранее...

Среднее арифметическое всей таблицы
Здравствуйте, уважаемые форумчане. Надеюсь, сможете помочь мне с одним вопросом. Было дано задание: Смоделировать температуру воздуха за...

Счетчик - найти среднее арифметическое
у меня вот проблема...среднее арифметическое находится неправильно.не пойму в чем дело.может подскажете? вот кусок.for(int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru