Связка access и vb

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

Связка access и vb

Сообщение BossXP » 20.11.2004 (Сб) 15:52

Вопрос состоит в следующем:
Есть база данных, в БД есть таблица "данные" в ней 2 столбика с заполнеными данными

"Кол-во учеников" | "Кол-во неуспевающих учеников"
32 | 5
26 | 2
29 | 6

Как можно программно скласть числа, и вывести их в labele в vb?

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 20.11.2004 (Сб) 17:54

Код: Выделить всё
SELECT SUM([Кол-во учеников]) AS Field1, SUM([Кол-во неуспевающих учеников])  AS Field2 FROM [Таблица]

Открываешь рекордсет, считываешь значения полей Field1, Field2 и заносишь в лейбл.

BossXP
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.10.2004 (Сб) 23:43

Сообщение BossXP » 21.11.2004 (Вс) 9:24

Что такое рекорсет?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 21.11.2004 (Вс) 10:17

А как ты с базой соединяешься, если не знаешь, что это такое??? :shock: Рекордсет - это производная от коннекта (Connection). Или что у тебя за ситуация, поясни...

BossXP
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.10.2004 (Сб) 23:43

Сообщение BossXP » 21.11.2004 (Вс) 10:33

Размещаю на форме Data1.
Указываю путь баззы DatabaseName ...
и таблицы RecordSource ...
Вот и набо считать так общее кол-во учеников в 1 label и неуспевающ учеников в другой label.
Как это сделать?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 21.11.2004 (Вс) 10:45

Вот туда, куда ты вводищь имя таблицы, введи вместо этого тот запрос, который написал Sedge (если я ничего не напутал). Получишь 1 строку и два столбца в оной, первый - количество всего, второй - количество пинающих. Ну, имена столбцов соответствующие подставь, конечно...

BossXP
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.10.2004 (Сб) 23:43

Сообщение BossXP » 21.11.2004 (Вс) 11:07

Что то неработает!

SELECT SUM([Кол-во учеников]) AS Field1, SUM([Кол-во неуспевающих учеников]) AS Field2 FROM [Таблица]

Разъясните этот код, пожалуйста!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 21.11.2004 (Вс) 11:19

BossXP писал(а):Что то неработает!

SELECT SUM([Кол-во учеников]) AS Field1, SUM([Кол-во неуспевающих учеников]) AS Field2 FROM [Таблица]

Разъясните этот код, пожалуйста!

Н-да, тяжко... Ладно, попытаюсь.

Функция SUM() производит сложение значений поля. В данном случае никакой группировки у тебя нет, поэтому на выходе ты получишь не 1000 строк с количеством учеников в каждой, а одну - с суммой этих количеств. То же самое получится во втором столбце. Функции, подобные SUM(), как бы "сжимают" (общепринятый термин - агрегируют) все строки выборки в одну, а конечное значение в этой одной строке определяется конкретной функцией. Например, AVG() возвращает среднее арифметическое (Average) значений в столбце, MIN() и MAX() - соответственно наименьшее и наибольшее из всех значений в столбце, ну и так далее.

ЗЫ Если тебе такое приходится объяснять, то мой совет - прочти сначала хоть какую-нибудь книжку по SQL...

BossXP
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.10.2004 (Сб) 23:43

Сообщение BossXP » 21.11.2004 (Вс) 15:51

Ennor писал(а):Вот туда, куда ты вводищь имя таблицы, введи вместо этого тот запрос, который написал Sedge (если я ничего не напутал). Получишь 1 строку и два столбца в оной, первый - количество всего, второй - количество пинающих. Ну, имена столбцов соответствующие подставь, конечно...


Интересно, а как тогда указывать таблицу, если вместо ее надо писать код? Как программа узнает что именно из этой таблицы надо брать данные?

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 21.11.2004 (Вс) 17:19

BossXP писал(а):Интересно, а как тогда указывать таблицу, если вместо ее надо писать код? Как программа узнает что именно из этой таблицы надо брать данные?

Код: Выделить всё
FROM [Таблица]

Где вместо [Таблица] подставляешь название таблицы, из которой хочешь получить выборку.

BossXP
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.10.2004 (Сб) 23:43

Сообщение BossXP » 21.11.2004 (Вс) 18:14

А что такое Field?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 21.11.2004 (Вс) 19:17

:shock: Признаться, я всего ожидал, но не этого...
Field - это поле, оно же столбец таблицы. В данном случае конструкция AS Field1 определяет, как будет называться тот столбец, который появится в рекордсорсе у тебя на клиенте. Как хочешь, так и обзывай.

А вообще, знаешь - с такими вопросами тебе лучше вот сюда: http://www.lingvo.ru . Помогает...

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 21.11.2004 (Вс) 19:33

BossXP писал(а):А что такое Field?

www.sql.ru


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList