Хочется сделать взаимодействие TreeView и базы Access. Дерево-то я заполнил значениями из базы, а вот не пойму как должно работать событие tvwTREE_NodeClick: при выделении мышкой Node я хочу присвоить другим Контролам на форме (например, Label, TextBox, Grid и т. д.) соответствующие значения или посчёты значений из базы.
Я ещё пока чайничек в VB и не пойму где создать подключение к базе, т. к. рекордсэт, да и вообще подключение к базе в событии Form_Load не сохранилось.
Вообщем ВОПРОС такой: каким образом и где (в каком событии) создать подключение и как сделать чтоб оно не уничтожилось по завершении этого события?
Вот моё NodeClick, и происходит оно с заметной задержкой, т. к. при каждом клике на Node создаётся подключение.
Private Sub tvwUnits_NodeClick(ByVal Node As MSComctlLib.Node)
ñmdAccess = "Provider=microsoft.jet.oledb.3.51;data source=..\Áàçà äàííûõ\D&P.mdb"
Set cn = New ADODB.Connection
cn.Open (ñmdAccess)
If Node.Key Like "*" Then
idx = Right(Node.Key, Len(Node.Key) - 1)
sqlUchastki = "select * from Uchastki where UchastokID = " & idx
Set rsUchastki = New ADODB.Recordset
rsUchastki.Open sqlUchastki, cn, adOpenStatic, adLockOptimistic
lblSelNode.Caption = rsUchastki("Uchastok")
Set rsUchastki = Nothing
End If
If Node.Key Like "[s]*" Then
idx = Right(Node.Key, Len(Node.Key) - 1)
sqlStoyanki = "select * from Stoyanki where StoyankaID = " & idx
Set rsStoyanki = New ADODB.Recordset
rsStoyanki.Open sqlStoyanki, cn, adOpenStatic, adLockOptimistic
lblSelNode.Caption = rsStoyanki("StoyankaNomer") & " - " &_ rsStoyanki("Ulitsa") & ", " & rsStoyanki("Dom") & rsStoyanki("Primechaniye")
Set rsStoyanki = Nothing
End If
Set cn = Nothing
End Sub