Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по TreeView / 10 сообщений из 10, страница 1 из 1
05.07.2013, 13:41
    #38321838
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Не очень понимаю почему не строится структура

есть 2 таблички в одной хранятся данные по которым в дереве буду делать корневые узлы, во второй дочерние объекты. Всего в дереве 2 уровня. В качестве ключей строковые данные вида 00,01,02,.. т т.д. для родительских объектов и аналогично для дочерних объектов.
Но при выполнении команды
Код: vbnet
1.
tv.nodes.add , , rod,name

(, где rod имеет значение "01".) получаю ошибку invalid key

Что я не так делаю?
...
Рейтинг: 0 / 0
05.07.2013, 13:46
    #38321849
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Какого типа переменная rod?
...
Рейтинг: 0 / 0
05.07.2013, 13:50
    #38321857
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Shocker.Pro,

string конечно
...
Рейтинг: 0 / 0
05.07.2013, 13:50
    #38321859
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Shocker.Pro,

и подстановка идет из рекордсета из поля string
...
Рейтинг: 0 / 0
05.07.2013, 13:54
    #38321871
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Alex_men,

Вот полный код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
    Dim rst_tv As ADODB.Recordset
    Dim rst_chaild As ADODB.Recordset
    Dim rod As String
    Dim nodx As Node
            
    rod = ""
        
    Set rst_tv = New ADODB.Recordset
    Set rst_chaild = New ADODB.Recordset
    
    rst_tv.Open "SELECT dbo.branches.Branch_code,dbo.branches.branch_short_name " & _
                "FROM dbo.branches " & _
                "ORDER BY dbo.branches.Branch_code ", _
    CnBrnchSprv, adOpenStatic, adLockReadOnly
    
    If Not rst_tv.EOF And Not rst_tv.BOF Then
        rst_tv.MoveFirst
        rst_tv.MoveNext
          
        While Not rst_tv.EOF
            rod = rst_tv!Branch_code
                
             Set nodx = Me.TV_branch.nodes.Add(, , rod, rst_tv!branch_short_name)

            rst_chaild.Open "SELECT dbo.Branch_wins.Branch_code,dbo.Branch_wins.Win_code,dbo.Branch_wins.win_short_name " & _
                            "FROM dbo.Branch_wins " & _
                            "WHERE dbo.Branch_wins.Branch_code=" & rst_tv!Branch_code & " ", _
            CnBrnchSprv, adOpenStatic, adLockReadOnly
            
            If Not rst_chaild.EOF And Not rst_chaild.BOF Then
                rst_chaild.MoveFirst
                While Not rst_chaild.EOF
                    Set nodx = Me.TV_branch.nodes.Add(rod, 1, rst_chaild!win_code, rst_tv!branch_short_name)
                    rst_chaild.MoveNext
                Wend
                
            End If
            
            rst_chaild.Close
            
            rst_tv.MoveNext
        Wend
    
    End If
    
    rst_chaild = noting
    
    rst_tv.Close
    Set rst_tv = Nothing
...
Рейтинг: 0 / 0
05.07.2013, 14:10
    #38321903
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Shocker.Pro,

Такое ощущение что компилятор на ходу смотрит что подается в качестве ключа. Если я подаю
Код: vbnet
1.
Rod=rst_tv!Branch_code

равное "01", то получаю InvalidKey.
А если сделаю вот так:
Код: vbnet
1.
Rod="n" & rst_tv!Branch_code

Ругани нет
...
Рейтинг: 0 / 0
05.07.2013, 14:50
    #38321981
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Да, я сталкивался с тем, что у меня были проблемы с ключами, которые начинались с цифры и я тоже добавлял букву.
...
Рейтинг: 0 / 0
05.07.2013, 19:00
    #38322367
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
ADODB.Field.Value имеет тип variant. Где-то внутри тривью видимо сначал происходит проверка, можно ли этот variant привести к числу. Явное приведение CStr(rst_tv!Branch_code) проблему решит.
...
Рейтинг: 0 / 0
08.07.2013, 09:19
    #38323662
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Не решит
попробуй сам загнать просто стринг
...
Рейтинг: 0 / 0
10.07.2013, 08:43
    #38326275
tgeka86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по TreeView
Alex_men,

Точно не уверен, но на память: KEY не может начинаться с цифры или числа, должна быть латинская буква верхнего или нижнего регистра
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по TreeView / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]