Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помощь с объектом collection. 
:(
    Опции темы
sektor
Дата 8.6.2007, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.5.2007

Репутация: нет
Всего: нет



Народ, объясните плиз как нужно работать с объектом collection. 
Задали домашнюю работу и в ней есть небольшая database из 3 таблиц.
Нужно сделать главную форму, в которой будут данные студентов и вторую в которой надо делать все апдейты для них. Это вкратце. В главную форму я вывожу все данные только для чтения. Сначала только имя и фамилию в ListBox. Если я делаю Click  на имени и фамилии, то заполняются все поля главной формы, которые предназначены только для чтения.
http://xegami.com/uploads/1ea7ccd22jpg.jpg


Если же я делаю DbClick, то открывается вторая форма, в которой можно делать апдейты на тех студентов которые уже занесены в базу данных, и вносить новых.
http://xegami.com/uploads/2b1156977jpg.jpg

Ещё надо сделать два класса --студент и курс. В классе студент, должно быть поле collection, в котором должны заносится курсы(class).  Вот тут то у меня и проблема. Уже второй день ни как не могу понять как получать в форму, то что находится в поле collection, которая в свою очередь находится внутри класса Students. smile 
Заранее спасибо за помощь.
PM MAIL   Вверх
Akina
Дата 8.6.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(sektor @  8.6.2007,  09:10 Найти цитируемый пост)
как получать в форму, то что находится в поле collection, которая в свою очередь находится внутри класса Students

Только программно... Типа

Код
'Idea, not a code!!!
For Each Classes In Students(i).Classes
   TextBox.AddLine Classes.Item
Next



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
sektor
Дата 8.6.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.5.2007

Репутация: нет
Всего: нет



Я наверное немного сумбурно объяснил, так как после ночной работы, на которой и пытался это делать. Объясню чуть подробней.
Вот так главная форма в разработке:
 http://xegami.com/uploads/361bc769cjpg.jpg
Слева, ListBox (lstStudents) в котором при запуске программы появляются имема и фамилии. Вот так:
 http://xegami.com/uploads/4cdc55871jpg.jpg

Если я делаю Click на каком-то студенте, то его данные переходят в текстовые поля главной формы. Выглядит это вот так:
 http://xegami.com/uploads/576a1a17cjpg.jpg

В том числе и курсы которые он закончил и оценка за них попадают в нижний ListBox(istCourses). Вот здесь я пока и застрял. Вернее я сделал, но как препод сказал это кривое решение, то как я сделал. Нужно как я и объяснял выше с помощью collection. Из-за этого я не могу продвигаться дальше, так как в следующей форме (Update), мне опять же надо внести те курсы которые  студент закончил, и ещё интересней, внести внизу в ComboBox, те курсы которые студент не закончил. Вот так:
 http://xegami.com/uploads/7c7f58200jpg.jpg


Я объявляю в классе (clsStudent) collection:
Код

Private m_courses As collection



Set rs = conn.Execute("SELECT student_code, course_code, grade, name FROM tblCourses INNER JOIN tblStudentsCourses ON tblCourses.code = tblStudentsCourses.course_code WHERE (((student_code)=" & CStr(code) & ")) ORDER BY student_code;")  'запрос в базу данных
     
      Do Until rs.EOF ' прохождение по рекордсету
            If CStr(code) = CStr(rs!student_code) Then 'And CStr(rs!course_code) = currStudents.c_course Then '  code пока что глобальная переменная, которая содержит код студента, на которого я сделал Клик. (rs!student_code) то же код студента, но из базы данных.
            Call currCourses.Load(code)    'создание объекта типа clsStudent
             m_courses.Add currCourses, CStr(rs!Name)   ' добавление объекта в collection. CStr(rs!Name) --это Key для объекта вносимого в colection
          End If
         rs.MoveNext
    Loop
 

Проверял дебагером, имена тех курсов которые я вношу как Key, вроде заносятся правильно, но как я понял доступа у меня нет к ключам. Возможно у меня ошибка в запросе к базе данных, так как не силён я в SQL.  Вот те таблицы что у меня есть:
1) http://xegami.com/uploads/t1639387f7jpg.jpg
2) http://xegami.com/uploads/t2a0ae002djpg.jpg
3) http://xegami.com/uploads/t324605b36jpg.jpg
И связи между ними:
 http://xegami.com/uploads/t449ad4340jpg.jpg


Не пинайте меня сильно ногами, так как я ещё чайник в этом. Если есть какие-то ошибки в том коде который я привёл, то буду благодарен, если мне укажут на них.



Это сообщение отредактировал(а) sektor - 8.6.2007, 15:16
PM MAIL   Вверх
sektor
Дата 9.6.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.5.2007

Репутация: нет
Всего: нет



Ту проблему я решил. smile 
Теперь другая. Как сделать штоб в обеих формах бул виден объект class, не опеделяя его глобально. То есть я могу в первой форме написать
Код

Dim Object As clsStudent

Но тогда во второй форме я его не вижу. Если же я напишу то же самое во второй, то тогда  это будет новый объект, а мне надо видеть тот же самый.
PM MAIL   Вверх
Akina
Дата 11.6.2007, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Глобальные на уровне проекта переменные следует размещать в модуле, а не в модуле формы.
И не забывать объявлять их Public.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.