сумма в datarid

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
050
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.11.2005 (Пн) 11:59

сумма в datarid

Сообщение 050 » 21.11.2005 (Пн) 12:04

Добрый день!
А можно ли как то подсчитать сумму столбца в Datagrid?
Спасибо.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 21.11.2005 (Пн) 12:12

можно, возьми и посчитай

050
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.11.2005 (Пн) 11:59

Сообщение 050 » 21.11.2005 (Пн) 12:19

:)
хорошо...спасибо...а как?
поясню вопрос:
на форме есть adoDC и datagrid
как при заполнении recordset
данные определенного столбца суммировать и передать переменной?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 21.11.2005 (Пн) 21:01

Код: Выделить всё
Dim SUM as Currency
...
do while not rs.EOF
SUM=SUM+rs.Fields("Field1").Value
rs.MoveNext
loop
'Field1 money type
debug.Print SUM

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Сообщение CORBA » 21.11.2005 (Пн) 22:08

Можно также с помощью запроса подсчитать
Код: Выделить всё
  Sum([Имя_Столбца])
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Сообщение CORBA » 21.11.2005 (Пн) 22:12

Можно также с помощью запроса подсчитать
Код: Выделить всё
  Sum([Имя_Столбца])
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.

050
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.11.2005 (Пн) 11:59

Сообщение 050 » 22.11.2005 (Вт) 14:21

Konst_One
Работает!
Спасибо..
Только вот, как вернуть маркер рекордсета назад на первую позицию,
потому как цикл выполняется один раз..

050
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.11.2005 (Пн) 11:59

Сообщение 050 » 22.11.2005 (Вт) 14:25

аа нашел...
вот как:

Dim SUM As Currency
Dim i As Integer
i = gridData.Bookmark
Do While Not adoData.Recordset.EOF
SUM = SUM + adoData.Recordset.Fields("sumAll").Value
adoData.Recordset.MoveNext
Loop
sum.Text = SUM
gridData.Bookmark = i

Это правильный вариант?

050
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.11.2005 (Пн) 11:59

Сообщение 050 » 22.11.2005 (Вт) 14:28

CORBA
а вот если SQL запросом - это надо в одной инструкции
подсчитать, потом записать в таблицу, а потом снова считать
и передать переменной или как?

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Сообщение CORBA » 22.11.2005 (Вт) 18:47

050 писал(а):Только вот, как вернуть маркер рекордсета назад на первую позицию

А разве у adodc.recordset метод movefirst отсутствует?

Насчёт как через запрос думаю что можно динамически создать recordset с помощью него отправить след. запрос
Код: Выделить всё
SELECT SUM(Имя_столбца) as SumAll FROM Имя_таблицы

ну а дальше считываем в переменую аналогично
Sum=rs.Recordset.Fields("SumAll").Value
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 168

    TopList