TreeView: сохранение Child в *mdb

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

TreeView: сохранение Child в *mdb

Сообщение DmB » 12.01.2004 (Пн) 2:16

Здравствуйте! Сами мы не местные - помогите, кто чем сможет!

Dim nd As Node
Sub Form Load()
................
Do While Not rs1.EOF
Set nd = TreeView1.Nodes.Add(, tvwChild, "i1" & rs1!Name, rs1!Name)
rs.MoveFirst
Do While Not rsl.EOF
If nd.Text = rs!Name Then
TreeView1.Nodes.Add nd.Index, tvwChild, "i2" & rs!Name1, rs!Name1
End If
rs.MoveNext
Loop
rs1.MoveNext
Loop
End Sub

Это работает отлично, но с сохранением Child в базу данных
ничего не выходит,подскажите, где я ошибаюсь?
Или у меня ошибка в cтруктуре базы данных?

*mdb
rs1 |Name|
rs |Name| |Name1| |Fam|


Private Sub Save_Click()
rs.AddNew
rs!Name = Text1.Text -- ROOT
rs!Name1 = Text2.Text -- Child
rs!Fam = Text3.Text
rs.Update
TreeView1.Nodes.Add "i1", tvwChild, "i2" & rs!Name1, rs!Name1 --ошибка "35601"
TreeView1.Nodes("i2" & rs!Name1).Selected = True
End Sub

Lobo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 08.01.2004 (Чт) 16:49
Откуда: Таллинн, Эстония

Сообщение Lobo » 12.01.2004 (Пн) 17:19

Но ведь нодов с ключом "i1" у тебя нет, должно быть продолжение: "i1" & rs1!Name.

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

TreeView: сохранение Child в *mdb

Сообщение DmB » 13.01.2004 (Вт) 2:49

А что же делать? rs1!Name - это другой рекордсет.
Может быть подскажете как всё это организовать?

Lobo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 08.01.2004 (Чт) 16:49
Откуда: Таллинн, Эстония

Сообщение Lobo » 13.01.2004 (Вт) 10:52

Извини, что нечётко написал. Я просто скопировал часть твоего кода. А лезть в другой рекордсет не нужно, ведь и в rs у тебя есть такое же Name. Надо просто добавить:

TreeView1.Nodes.Add "i1" & Text1.Text, tvwChild, "i2" & Text2.Text, Text2.Text

Предполагается, конечно, что пользователь ввёл в Text1 правильное имя. А лучше брать его из выбранного в дереве узла:

Text1.Text = TreeView1.SelectedItem.Text

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

Сообщение DmB » 14.01.2004 (Ср) 9:04

Огромное спасибо за помощь!
Может быть если не трудно ещё один вопрос:

Как в TreeView1_NodeClick определить есть ли у Node дети ???
Заранее благодарен.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.01.2004 (Ср) 11:36

Есть свойство (не помню точно, Children или Childs), оно возвращает количество дочерних узлов для нода.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение DmB » 15.01.2004 (Чт) 2:11

If Node.Children > 0 Then
MsgBox Node.Child.Text
End If

уже нашёл, но всё равно большое спасибо!


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

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

Сейчас этот форум просматривают: Google-бот и гости: 4

    TopList