TreeView и *mdb

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

TreeView и *mdb

Сообщение DmB » 21.01.2004 (Ср) 10:50

Наверное вопросы ламерские, но чего-то переклинило - не могу додуматься.
1.
Таблица в базе данных
Tab
|id|Name1|Name2|
|1 |1 |1 |
|2 |1 |2 |
|3 |1 |3 |

rsTab.MoveFirst
While Not rsTab!Name1 = TreeView1.SelectedItem
rsTab.MoveNext
Wend
Text1.Text = rsTab!Name1
Text2.Text = rsTab!Name2

Показывается только первая запись: 1__1
А как с остальными?
Чувствую дело в запросе на выборку по id, но как его написать не знаю...
______________

2.
Как сделать так, что при загрузке Nod если есть дочерние ветки была одна иконка, если нет другая?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.01.2004 (Ср) 15:51

1. Что то непонятно что ты хочешь достичь

2. Все просто - загрузил дерево, потом
Код: Выделить всё
for each ndx in treeview1.nodes
if ndx.children>0 then ndx.image = "имякартинкидляпапки"
next ndx


И все.

DmB
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 02.11.2003 (Вс) 9:15

Сообщение DmB » 22.01.2004 (Чт) 2:13

Спасибо большое за ответ на 2 вопрос, а чего хочу достичь?
Вот дерево:
1
1
1
из rsTab!Name1, при клике на ноду с текстом 1 открывается первая запись в базе данных: 1__1, а 1__2, 1__3 не открываются.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 22.01.2004 (Чт) 10:45

DmB писал(а):Наверное вопросы ламерские, но чего-то переклинило

И тебя тоже!.. :lol: Сколько ж народу вчера переклинило!


А где у тебя должны они показываться-то?
Судя по коду, что ты написал:

rsTab содержит 3 записи

Код: Выделить всё
1 rsTab.MoveFirst
2 While Not rsTab!Name1 = TreeView1.SelectedItem
3     rsTab.MoveNext
4 Wend
5 Text1.Text = rsTab!Name1
6 Text2.Text = rsTab!Name2


1 - встали на первую
2,3,4 - идем по рекордсету, пока не встретим первую подходящую запиь (мы на ней уже стоим, так что цикл не выполнится)
5,6 - из этой записи вытащили значения полей - это 1_1.

Все. Откуда взяться остальным?
Может, ты так хотел написать?
Код: Выделить всё
rsTab.MoveFirst
While rsTab!Name1 = TreeView1.SelectedItem
    'здесь вывести значения rsTab!Name1 и rsTab!Name2 куда тебе надо
    rsTab.MoveNext
Wend

DmB
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 02.11.2003 (Вс) 9:15

Сообщение DmB » 23.01.2004 (Пт) 2:17

Увы это не работает...

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.01.2004 (Пт) 9:19

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

DmB
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 02.11.2003 (Вс) 9:15

Сообщение DmB » 23.01.2004 (Пт) 9:26

SORRY...
Цикл работает, но показывает только первую запись в базе данных.
Так, что можно сказать, что и не работает...

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 23.01.2004 (Пт) 10:14

ГДЕ он эти данные показывает?
Ты можешь кусок кода чуть побольше запостить!? Как можно что-то советовать, когда нет ни кода ни представления о том, как это должно работать?

Если не ответишь на первый вопрос (ГДЕ ТЫ ЖДЕШЬ, ЧТО ПОЯВЯТСЯ ВСЕ ЗАПИСИ), я не буду больше играть в игру "угадай в каком ухе у меня жужжит?"

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.01.2004 (Пт) 10:19

Ага. И мы все дружно сыграем в игру по теме "если я тебя забаню, то в каком году у швейцара родится бабушка" :lol:

DmB
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 02.11.2003 (Вс) 9:15

Сообщение DmB » 24.01.2004 (Сб) 2:36

Извиняюсь за плохие объяснения.
Конечно в текстовых полях.
Попробую ещё раз:
Имеется дерево у которого некоторые ветки имеют одинаковые имена:
в данном случае 1 (загружаются из rsName1)
При клике на ноду в текстовых полях должны появится записи из rsName1 и rsName2 сответственно:
Text1 1
Text2 1

При клике на следующую ноду с тем же текстом (1):
Text1 1
Text2 2
и т.д.
При этом цикле
rsTab.MoveFirst
While Not rsTab!Name1 = TreeView1.SelectedItem
rsTab.MoveNext
Wend
Text1.Text = rsTab!Name1
Text2.Text = rsTab!Name2

показывается только первая запись: 1__1
При том цикле что посоветовали вообще 1 запись в Таблице.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 26.01.2004 (Пн) 10:42

Ну наконец-то!

Когда юзер ходит по узлам твоего дерева, ты должен знать, какие данные показать (то есть однозначно идентифицировать запись в таблице). Для однозначной идентификации у тебя есть поле id. Когда будешь заполнять TreeView, запиши в свойство узла Tag значение id.

Когда юзер встает на узел, выполни:
Код: Выделить всё
'ищем нужную запись
nID = CLng(TreeView1.SelectedItem.Tag)
rsTab.MoveFirst
While Not rsTab!id = nID
    rsTab.MoveNext
Wend
'показываем из нее значения в текстбоксах
if not rsTab.eof then
    Text1.Text = rsTab!Name1
    Text2.Text = rsTab!Name2
end if

DmB
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 02.11.2003 (Вс) 9:15

Сообщение DmB » 27.01.2004 (Вт) 2:39

Огромное спасибо!!!!!

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 27.01.2004 (Вт) 13:34

Да пожалуйста!
Правильно задавть вопрос - это тоже своего рода искусство :lol:


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

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

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

    TopList  
cron