| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Суммирование нескольких Label.Caption |
| Автор: Flotskiy 7.12.2005, 12:08 | ||
| Всем добрый день! Подскажите, pse, на такой примерно вопрос: SQL- запросом получил кол-во студентов 1 курса, Вторым- получил кол-во студентов 2 курса, и т.д. Данные вывел в Label(1-10) , потом все данные нужно просуммировать примерно так:
Конечно, ничего не получается, а когда Label заменил на TextBox то все нормально. Если я правильно сообразил, на форме нужно менять Label на TextBox, и корректировать код. Большой объем работы. Посоветуйте. С уважением |
| Автор: Exception 7.12.2005, 12:36 |
| А что именно не выходит? |
| Автор: Flotskiy 7.12.2005, 13:56 | ||
| Run-time error, Привет. Запросом В Label1 выводится кол-во студентов 1 курса ( 50) чел. В Label2 выводится кол-во студентов 2 курса (60) и т.д.
Хотел просуммировать и вывести в Label11 (50+60 =110), а данный код выводит (5060) Примерно так С уважением |
| Автор: Exception 7.12.2005, 14:19 | ||
|
| Автор: Akina 7.12.2005, 14:36 | ||||
| Label.Caption имеет тип String. Вообще-то. Так что
Можно слегка упростить себе жизнь по типу:
|
| Автор: Exception 7.12.2005, 15:17 |
| Ну да Код был состряпан на уроке из головы |
| Автор: Akina 7.12.2005, 15:33 | ||
А почему бы SQL-запросом не получить еще и общее количество студентов, а? |
| Автор: bankuss 7.12.2005, 16:52 |
| Val лучше заменить Cint, а так все прально |
| Автор: Exception 7.12.2005, 17:42 | ||
Это лишняя нагрузка на базу данных. Но при 100-1000 записях это не принципиально |
| Автор: Akina 7.12.2005, 19:02 | ||
Ты прав, CInt в данном случае будет работать почти вдвое быстрее... впрочем кто это заметит? |
| Автор: cardinal 7.12.2005, 22:54 | ||
ИХМО такой подоход - неправильный. |
| Автор: Flotskiy 8.12.2005, 06:27 | ||||
| Доброе утро всем! Благодарю за участие, в решении данного вопроса. Сию буду разбираться. Немного поясню. В Access построил запрос на выборку:
Таких запросов очень много и связываю с формой (Label) при помощи Control Data, в итоге на форме около 30 Data. Что-то нагородил... Второй метод запросов пробовал в самой форме:
Вот такой SQL-код вытаскивает данные: кол-во студентов 1 курса, факультета "Экономика", форма обучения "Очное" Таким образом повторяется код еще 30 раз, на другие данные. Очень тяжелая прога. Наверно есть какай-то другой способ добывание данных Посоветуйте, pse. С уважением |
| Автор: Flotskiy 8.12.2005, 08:31 | ||
| Привет всем! Взял Run-time error
Получилось то что надо Благодарю всех, наилучшие пожелания! |
| Автор: Akina 8.12.2005, 11:11 | ||
Предлагаю все-таки поправить - ты используешь неявное приведение типа Integer к типу String, а такая привычка опасна... |
| Автор: Flotskiy 8.12.2005, 13:55 | ||
Akina, исправил на
Благодарю за помощь. Всего доброго |
| Автор: Exception 8.12.2005, 14:17 | ||||
Скорее
|
| Автор: Exception 8.12.2005, 14:44 | ||
Используй выражение COUNT |
| Автор: Akina 8.12.2005, 18:26 | ||
Правильно так:
Почему: CInt преобразует к Integer, а Val - к Variant(Integer) CStr преобразует к String, а Str - к Variant(String) |
| Автор: Exception 8.12.2005, 18:41 |
| Тогда вместо Str Str$. Но я этого раньше не замечал, респект |
| Автор: Akina 8.12.2005, 19:12 | ||||||
В VB6 нет функции Str$. Однако компилятор ее нормально проглатывает - потому что в целЯх совместимости, но использует все одно Str. Это видно по времени исполнения:
Соотношение времен приблизительно 2:3, т.к. в первом случае 2 преобразования (String - Integer - String), а во втором и третьем - три (String - Integer - Variant - String). |