Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с TreeView. Пожалуйста...
 
 автор: Скорп   (18.08.2008 в 16:30)   личное сообщение
19 Кб.
 
 

ничего не могу поделать...ну не догоняю я этот элемент
пересмотрел кучу примеров и литературы
толком ничего не описано
часть примеров не работает у меня, а в работающих так все понакручено, что не могу понять, с чего начинать разбираться...

вот набрался наглости и решил все же на форуме попросить устроить мне ликбез

я даже не стал вопрос связывать со своей разработкой, а просто набросал пример для структуирования книг (каталог книг, или библиотека если угодно...)
создал 3 таблички - Жанр, Автор и Название произведения..
ну и форму с элементом TreeView
дальше продвинуться хочу с вашей помощью
научите пожалуйта
про родителей, деток рассказывать не нужно, это я уже понял
мне бы на основе моих таблиц построить дерево, пока без всяких наворотов типа контекстного меню, подсветки и т.п.

ну вот собственно пока все..
спасибо

  Ответить  
 
 автор: Pasat   (18.08.2008 в 17:06)   личное сообщение
17 Кб.
 
 

1. посмотрите здесь
http://hiprog.com/forum/read.php?id_forum=1&id_theme=3661&page=1
там я писал по поводу необходимости наличия 2 таблиц для работы с древовидной структурой данных

2. теория по построению дерева здесь
http://hiprog.com/index.php?option=com_content&task=view&id=218

3. см.аттач.

  Ответить  
 
 автор: osmor   (18.08.2008 в 17:09)   личное сообщение
30 Кб.
 
 

Ну и от меня.
Специально сделал каждый уровень отдельно.
Вопросы задавать сюда.

  Ответить  
 
 автор: Pasat   (18.08.2008 в 21:23)   личное сообщение
 
 

OSMOR не могу окрыть Ваш пример - у меня Аксес2000 - требует более новую версию.
нельзя ли выложить пример для А-2000
Очень хочется посмотреть

  Ответить  
 
 автор: Lukas   (18.08.2008 в 21:37)   личное сообщение
30 Кб.
 
 

Преобразовал в формат 2000 файл OSMORа

  Ответить  
 
 автор: Pasat   (18.08.2008 в 23:50)   личное сообщение
 
 

сэнкс

  Ответить  
 
 автор: Nikh848   (24.09.2008 в 15:37)   личное сообщение
 
 

Добрый день! Можешь подсказать, где скачать TreeView control бесплатно.
Заранее спасибо!

  Ответить  
 
 автор: Lukas   (24.09.2008 в 15:53)   личное сообщение
 
 

Так он устанавливается вместе с Access. На панели элементов в режиме конструктора формы выбрать кнопку "Другие элементы" - "Microsoft TreeView Control 6.0", ссылка на библиотеку должна подключиться автоматом.

  Ответить  
 
 автор: Скорп   (18.08.2008 в 23:24)   личное сообщение
28 Кб.
 
 

osmor спасибо
пока все понятно
повесил все это на загрузку формы

вопрос:
я не могу скомпилировать код
ругается на строку

Private rscFields As rscRecordSource

в модуле класса clsFillingTree, хотя все работает
как исправить ситуацию, а то я ж не смогу всю свою базу скомпилировать
выдает сообщение

Compile error:

Ambiguous name detected: rscRecordSource


прикрепляю урок к форуму

  Ответить  
 
 автор: osmor   (19.08.2008 в 08:42)   личное сообщение
 
 

Извиняюсь....
модули лишние... случайно импортировались.
Весь код находится в форме. Все модули на закладке "модули" можно (нужно) удалить.

  Ответить  
 
 автор: час   (19.08.2008 в 09:29)   личное сообщение
 
 

А кнопочки - для каких целей
Первый уровень (жанр)
Второй уровень (авторы)
Уровень три (Книги)

  Ответить  
 
 автор: osmor   (19.08.2008 в 09:40)   личное сообщение
 
 

Кнопочки сделал специально, что бы было понятнее

  Ответить  
 
 автор: Скорп   (19.08.2008 в 09:41)   личное сообщение
 
 

ну это мне osmor по кусочку разжевывает и в рот кладет

  Ответить  
 
 автор: час   (19.08.2008 в 10:54)   личное сообщение
 
 

Я тоже сижу жую.....
А почему кнопочки ругаются?

  Ответить  
 
 автор: Скорп   (19.08.2008 в 11:05)   личное сообщение
 
 

не знаю...
у меня не ругались
вот сижу, готовлю следующий вопрос osmor-у

  Ответить  
 
 автор: час   (19.08.2008 в 11:12)   личное сообщение
 
 

У меня все три матерятся
key is not unique in collection.

  Ответить  
 
 автор: Скорп   (19.08.2008 в 11:31)   личное сообщение
 
 

ааа...
ты возьми самый первый файл от osmor-а, и понажимай кнопки
первое нажатие ругаться не будет
повторное - ругается
поскольку я код уже повесил на загрузку формы, то, собственно гря, кнопки уже не нужны, поскольку дерево уже построено

  Ответить  
 
 автор: час   (19.08.2008 в 12:02)   личное сообщение
 
 

Ясненько.

  Ответить  
 
 автор: Скорп   (19.08.2008 в 12:33)   личное сообщение
30 Кб.
 
 

osmor, скажи пожалуйста
с чего лучше начать?
собственно у меня на данном этапе 2 вопроса
1 - это научиться добавлять в TreeView новые ветки
или
2 - использовать TreeView в качестве подчиненной формы

первый вопрос он как бы общего характера, а вот второй интересует применительно к моей базе (собственно я и создал тему ведь не ради факультативного интереса)

применительно к рассматриваемому примеру, создал ряд библиотек - Библиотека1, Библиотека2 и т.п. в которых находятся наши книги (с древовидной структурой)
пример прикрепляю
удалил кнопки (посколку мы поняли как они работают), код висит на загрузке формы и саму форму использую в качестве подчиненной

п.с. если дерево сохранить в раскрытом виде, то выскакивает ошибка как у ЧАС-а
т.е. нужно дерево как-то так сделать, чтобы оно при открытии было всегда свернуто...

  Ответить  
 
 автор: osmor   (19.08.2008 в 13:19)   личное сообщение
 
 

что-тоне понял
мы же уже научились добавлять новые ветки....
Дерево заполняется один раз, если нужно его перезаполнить, то сначала его нужно очистить.
может есть смысл добавить библиотеки как верхний уровень дерева?

  Ответить  
 
 автор: Скорп   (19.08.2008 в 14:01)   личное сообщение
 
 

эммм-м-м...
нет, задача у меня использовать дерево именно в качестве подчиненной формы
для чего мне это нужно, попробую объяснить
у меня (вернее в моей базе) есть список фирм (большой список), передвигаясь по которому, я должен видеть, какие заказы были у того или иного клиента
а почему я хочу понять, как работать с TreeView, так это для того, чтобы была наглядность для моих юзеров
Ведь у клиента может быть как "одиночный заказ" - сделали листовку ему и все, а может быть и комплексный - сделали листовку и согнули ее пополам( сфальцевали), а может и состоять из 10 операций - напечатали, согнули, посадили на скрепку, заламинировали, покрыли лаком и т.д.
При древовидной структуре получим наглядность заказов клиента - сразу будет видно где заказ одиночный, а где комплексный, ведь я смогу сформировать заказ и под него воткнуть все работы...

поэтому в прикрепленном последнем примере я ввел понятие Библиотека, чтобы передвигаясь по списку библиотек (а применительно к моей разработке - передвигаясь по списку клиентов), видеть наглядно - в какой библиотеке какие книги (или у какого клиента какие заказы)

ну а добавлять ветки - так это научиться добавлять их на самом дереве (уж не знаю как лучше - по контекстному меню или по какой-либо кнопочке рядом с деревом..)

  Ответить  
 
 автор: osmor   (19.08.2008 в 16:31)   личное сообщение
37 Кб.
 
 

понятно.
Ну вот можно так.
Хотя конечно разумнее делать рекурсией
т.е. добавляется узел, а потом к нему все дочерние.
Сдесь сделал по другому, дерево строится по уровням. Сделал кнопку добавления книги.
Функцию заполнения дерева вынес в модуль.
Прошу не рассматривать как образец стиля программирования, это пример работы с деревом нацеленный на максимально понимаемый код.

  Ответить  
 
 автор: Скорп   (19.08.2008 в 16:44)   личное сообщение
 
 

osmor спасибо!
буду разбираться

  Ответить  
 
 автор: Скорп   (19.08.2008 в 23:13)   личное сообщение
 
 

osmor еще раз спасибо
вижу и понимаю ход твоих мыслей (не понимаю только как это у тебя получается...)

у меня остался еще один общий вопрос, попробую его сформулировать завтра
и много частных вопросов, но это уже по ходу применения полученных знаний к своей разработке

  Ответить  
 
 автор: Pasat   (20.08.2008 в 08:56)   личное сообщение
 
 

OSMOR не могу окрыть Ваш последний пример - у меня Аксес2000 - требует более новую версию.
нельзя ли выложить (преобразовать) последний пример для А-2000. Плиз

Очень хочется посмотреть

  Ответить  
 
 автор: osmor   (20.08.2008 в 09:08)   личное сообщение
36 Кб.
 
 

можно.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList