powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ViewTree
5 сообщений из 5, страница 1 из 1
ViewTree
    #32710949
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто подскажет где можно в нете найти инфомацию по созданию деревьев(ViewTree) для .adp проектов? Тоесть, чтобы было полное объяснение как создавать их. (от root'a до nod'a).
Спасибо.
...
Рейтинг: 0 / 0
ViewTree
    #32710963
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Просто надо искать не на ViewTree, а на TreeView.
...
Рейтинг: 0 / 0
ViewTree
    #32710969
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во первых не ViewTree, a TreeView :)
а во вторых поиск по форуму
...
Рейтинг: 0 / 0
ViewTree
    #32713325
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть таблица:
Container(MainAsset, SubAsset), которая использует ключи из таблицы Assets. Точнее, в ней указана иерархия приборов: в MainAsset включены SubAsset. Получается что-то в этом роде:


MainAsset SubAsset
1................2
1................3
1............... 4
2................5
2................6

В этом примере в прибор номер 1 включены: 2,3,4. В номер же 2 из этого списка включены: 5 и 6.
Теперь пробую создать TreeView:

Private Sub Form_Load()
Dim objNode As Node
Dim rs As Object
Dim rs2 As Object
Dim sSubAsset0 As String
Dim sSubAsset1 As String
Dim SQL_0 As String
Dim SQL_1 As String
SQL_0 = "select SubAsset from container where MainAsset=" & Me.AssetNr
Set rs = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
rs.Open SQL_0, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText
ActiveXCtlSubAssets.LineStyle = tvwRootLines
ActiveXCtlSubAssets.Nodes.Clear

Do While Not rs.EOF
sSubAsset0 = "" & rs("SubAsset")
Set objNode = ActiveXCtlSubAssets.Nodes.Add(, , "root" & CStr(rs!SubAsset), sSubAsset0)


SQL_1 = "select * from container where MainAsset=" & rs("SubAsset")
rs2.Open SQL_1, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText

Do While Not rs2.EOF
sSubAsset1 = "" & rs2("SubAsset")
' Set objNode = ActiveXCtlSubAssets.Nodes.Add("root" & CStr(rs2!MainAsset), tvwChild, sSubAsset1)
rs2.MoveNext
Loop

rs.MoveNext
Loop

If Not rs Is Nothing Then
rs.Close
End If
Set rs = Nothing

If Not rs2 Is Nothing Then
rs2.Close
End If
Set rs2 = Nothing

End Sub


До добавления внутреннего цикла всё работало и на дереве покаывался первый субсписок(2,3,4). А вот с внутренним циклом что-то не получается. Перепробовал кучу вариантов, но пока не выходит.
Кто подскажет как мне правильней сделать?
...
Рейтинг: 0 / 0
ViewTree
    #32714453
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С циклом я разобрался и вроде он заработал. Вот теперь незнаю как правильно присоеденить "child". Попробовал различные варианты, но постоянно показывает на ошибку "invalid key". Строку с ошибкой я подчеркнул жирным цветом:


Private Sub Form_Load()
Dim objNode As Node
Dim rs As Object
Dim rs2 As Object
Dim sSubAsset0 As String
Dim sSubAsset1 As String
Dim SQL_0 As String
Dim SQL_1 As String
Dim bk As Variant
SQL_0 = "select SubAsset from container where MainAsset=" & Me.AssetNr
Set rs = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
rs.Open SQL_0, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText
ActiveXCtlSubAssets.LineStyle = tvwRootLines
ActiveXCtlSubAssets.Nodes.Clear

Do While Not rs.EOF
sSubAsset0 = "" & rs("SubAsset")
Set objNode = ActiveXCtlSubAssets.Nodes.Add(, , "root" & CStr(rs!SubAsset), sSubAsset0)
bk = rs.Bookmark
SQL_1 = "select * from container where MainAsset=" & rs("SubAsset")
rs.Close
rs2.Open SQL_1, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText

Do While Not rs2.EOF
sSubAsset1 = "" & rs2("SubAsset")
Set objNode = ActiveXCtlSubAssets.Nodes.Add("root" & sSubAsset0, tvwChild, sSubAsset1)
rs2.MoveNext
Loop
rs2.Close
rs.Open SQL_0, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText
rs.Bookmark = bk
rs.MoveNext
Loop

If Not rs Is Nothing Then
rs.Close
End If
Set rs = Nothing

If Not rs2 Is Nothing Then
rs2.Close
End If
Set rs2 = Nothing

End Sub



Подскажите как исправить ошибку, плиз.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ViewTree
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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