Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 0
Регистрация: 05.03.2013
Сообщений: 11

Получение и вывод в переменную суммы

04.06.2013, 10:52. Показов 1214. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть база данных mdb содержащая таблицу Архив из 4х колонок
номер, дата, имя, результат.

В базу добаляются записи. Имена одни и теже, штук 5-6 а результаты всегда разные

Как организовать запрос чтобы например в переменную получить сумму всех полей "результат" по одному имени.

Select * From[Архив]........

Что-то типа результат есть заработанные/потраченые деньги. И надо подвести баланс и вывести его в текстовое поле(метку)

Все данные выводить получается. А вот сделать такие выборки никак не могу. Опыт по БД маловат.
Пишу на VB2012...


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
        RichTextBox1.Clear()
        Dim CONNECTION As New OleDb.OleDbConnection("Data Source=""D:\score.mdb"";User " & "ID=Admin;Provider=""Microsoft.Jet.OLEDB.4.0"";")
        CONNECTION.Open()
        ' Создаем объект Command, передовая ему SQL-комманду
        Dim COMMAND As New OleDb.OleDbCommand("Select * From[Архив]", CONNECTION)
        ' Выполняем SQL команду
        Dim DATAREADER As OleDb.OleDbDataReader = COMMAND.ExecuteReader(CommandBehavior.CloseConnection)
        While DATAREADER.Read() = True
            ' Минус прижимает сроку влево
            RichTextBox1.Text = RichTextBox1.Text & vbCrLf & (String.Format("{0,-5} {1,-5} {2,-5} {3,-5}", DATAREADER.GetValue(0), DATAREADER.GetValue(1), DATAREADER.GetValue(2), DATAREADER.GetValue(3)))
        End While
        DATAREADER.Close() : CONNECTION.Close()
        RichTextBox1.Select(RichTextBox1.Text.Length, 0) : RichTextBox1.ScrollToCaret() ' перемотка в конец
Таким макаром вывожу все результаты в поле.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.06.2013, 10:52
Ответы с готовыми решениями:

Получение внешнего IP в переменную
Добрый день, есть этот код: Option Explicit 'On Error Resume Next Dim sIP Sub XMLRequest(sQuery, objRemXML) Set...

Получение информации с сайта в переменную
Здравствуйте, есть задача получить определенную информацию с Юрл и записать ее в переменную, вбиваются юрл только с одного сайта и под...

Получение содержимого (html) страницы в переменную
Здравствуйте. Не судите строго, ибо поиском на форуме пользовался и нашел несколько похожих тем, но приведенный там код у меня почему то ни...

2
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
04.06.2013, 10:55

Не по теме:

Visual Basic
1
Dim COMMAND As New OleDb.OleDbCommand("Select * From[Архив]", CONNECTION)
И что, работает?


А дата одинакова для 5-6 записей? и различна для каждого "захода" внесения данных?
Может тогда по ней группировку?
0
3 / 3 / 0
Регистрация: 05.03.2013
Сообщений: 11
04.06.2013, 15:32  [ТС]
Вот поковырял эту БД а Access там создал визардом запрос типа

SELECT Архив.Имя, Sum(Архив.Результат) AS [Sum-Результат]
FROM Архив
GROUP BY Архив.Имя;

Все хорошо считает. Но как его импортировать в VB....

Добавлено через 11 минут
Цитата Сообщение от Agapov_stas Посмотреть сообщение

Не по теме:

Visual Basic
1
Dim COMMAND As New OleDb.OleDbCommand("Select * From[Архив]", CONNECTION)
И что, работает?


А дата одинакова для 5-6 записей? и различна для каждого "захода" внесения данных?
Может тогда по ней группировку?
Даты не важно. Я их ввел из любопытсва.
По сути программа имеет узкий внутренний интерес. Играем в преф иногда. Пулю рассчитываем с помощью самописной программы на VB написаной в рамках обучения, освоения.
И вот захотелось вести статистику (по сути тоже для обучения основам SQL). Чтоб по итогу года-месяца смотреть кто в плюсе а кто в минусе. БД сформировал. А вот с анализом ее проблемы. (играет одновременно от 2х до 4х человек. Но коллектив не постоянноый. В одну неделю. одни. в другую другие. Но не так много имен.. Не больше десятка)

Содимся играть. Я выставляю в программе количество, имена, и расположение игроков. И по ходу игры заполняю данные. Расчет ведется после каждой сдачи (вдруг до конца не доиграем) а запись в БД ведется по нажатию специальной кнопки. И вот хотелось бы в метку у игрока выводить его итоговый баланс (рейтинг)

Добавлено через 43 минуты
Ну сделал все проще.

1) Подключил БД через VisualStudio с уже созданным SQL запросом в Access
2) Создал дополнительную форму с пустой таблицей DataGridView1 появляющейся при нажатии кнопки статистика
3) Перетащил туда созданный запрос.
Вроде пашет.При нажатии выводит Итоговый результат по всей БД

Не совсем грамотно но потянет пока что.

Добавлено через 3 часа 26 минут
Весь день пыхтел к аксессом, курил интернет, применял метод научного тыка и родил вот что
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Sub метки() ' Получение итоговых результатов в метки перед именами
        Dim CONNECTION As New OleDb.OleDbConnection("Data Source=""score.mdb"";User " & "ID=Admin;Provider=""Microsoft.Jet.OLEDB.4.0"";")
        For i As Single = 1 To Convert.ToSingle(ComboBox5.Text) ' Цикл по количеству игроков
            CONNECTION.Open()
            ' Создаем объект Command, передовая ему SQL-комманду
            Dim COMMAND As New OleDb.OleDbCommand("SELECT Архив.Имя, Sum(Архив.Результат) AS [Sum-Результат] FROM Архив GROUP BY Архив.Имя HAVING (((Архив.Имя)='" & Controls("ComboBox" & i).Text & "'))", CONNECTION)
            'Dim COMMAND As New OleDb.OleDbCommand("SELECT Архив.Имя, Sum(Архив.Результат) AS [Sum-Результат] FROM Архив GROUP BY Архив.Имя HAVING (((Архив.Имя)='" & ComboBox1.Text & "'))", CONNECTION)
            ' Выполняем SQL команду
            Dim DATAREADER As OleDb.OleDbDataReader = COMMAND.ExecuteReader(CommandBehavior.CloseConnection)
            While DATAREADER.Read() = True
                Controls("Label" & i + 7).Text = DATAREADER.GetValue(1)
            End While
            DATAREADER.Close() : CONNECTION.Close()
        Next
    End Sub
Из базы score.mdb в зависимости от количества игроков (ComboBox5.Text) выковыривается циклом сумма очков игрока такой строкой
Visual Basic
1
Dim COMMAND As New OleDb.OleDbCommand("SELECT Архив.Имя, Sum(Архив.Результат) AS [Sum-Результат] FROM Архив GROUP BY Архив.Имя HAVING (((Архив.Имя)='" & Controls("ComboBox" & i).Text & "'))", CONNECTION)
и помещается в метки в зависимости от положения игрока
также в цикле
Visual Basic
1
Controls("Label" & i + 7).Text = DATAREADER.GetValue(1)
Метки с 8 по 13-ю у меня соответствуют полям ComboBox 1 - 5, отсюда +7
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2013, 15:32
Помогаю со студенческими работами здесь

Получение страницы с другого сайта в переменную
Возможно ли это вообще? С iframe с другим доменом, я так понял, нельзя получить страницу, XHR нельзя тоже заставить работать с чужими...

Получение данных с промиса в глобальную переменную
Нужна помощь . Не могу засетить данные в глобальную переменную с then . Оборачивание parse в функцию не помогает . let result = '';...

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

Вывод суммы положительных и суммы отрицательных элементов матрицы по столбцам
Помогите пожалуйста составить программу вычисления и вывода суммы положительных элементов матрицы (по столбцам), и вычисления и вывода...

Получение JSON ответа и внесение его в переменную
Приветствую всех. Вопрос заключается в следующем, я получаю CODE и Access token пользователя(проверялось), но при попытке его использовать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru