在SQL数据库中加载接点,但每次都显示"element not found",请问是什么意思?有谁可以给一个数据库加载节点的具体代码?越详细越好.谢谢了.

解决方案 »

  1.   

    '显示树形列表
    Public Sub ListTree()
    Dim nodX As Node
    Dim lngCount As Long
    '添加学生类型
        treList.Nodes.Clear
    Set nodX = treList.Nodes.Add(, , "tvwMain", "网上选课系统", 1)
    Set nodX = treList.Nodes.Add("tvwMain", tvwChild, "Stu", "学生信息", 2)
        Adodc1.RecordSource = "select * from typelist"
        Adodc1.Refresh
        frmSysSet.cboJieBie.Clear
        frmMain.cboStuJie.Clear
        If Adodc1.Recordset.RecordCount = 0 Then
            Adodc1.RecordSource = "select KCI_bianhao,KCI_keming from KeChengInfo "
            Adodc1.Refresh
            If Adodc1.Recordset.RecordCount = 0 Then
                Set nodX = treList.Nodes.Add("tvwMain", tvwChild, "Ke", "选修课信息", 4)
                nodX.EnsureVisible
                Exit Sub
            Else
                GoTo lmg
            End If
        End If
    With Adodc1.Recordset
        While Not .EOF
            lngCount = lngCount + 1
            Set nodX = treList.Nodes.Add("Stu", tvwChild, "Stu" & lngCount, Trim(!sx) + "届", 3)
           frmSysSet.cboJieBie.AddItem Trim$(!sx) + "届"
            'frmDaoLu.cboDelStuJie.AddItem Trim$(!sx) + "届"
            frmMain.cboStuJie.AddItem Trim$(!sx) + "届"
            .MoveNext
        Wend
    End With
    nodX.EnsureVisible'添加课程类型
    lmg: Set nodX = treList.Nodes.Add("tvwMain", tvwChild, "Ke", "选修课信息", 4)
       Adodc1.RecordSource = "select KCI_bianhao,KCI_keming from KeChengInfo "
        Adodc1.Refresh
    'Adodc1.Recordset.MoveFirst
    With Adodc1.Recordset
        While Not .EOF
            lngCount = lngCount + 1
            Set nodX = treList.Nodes.Add("Ke", tvwChild, "Ke" & lngCount, Trim(!KCI_keming) & "(" & Trim(!KCI_bianhao) & ")", 5)
            .MoveNext
        Wend
    End With
        nodX.EnsureVisible
    End Sub
      

  2.   

    'On Error Resume Next
    iIndex = 0
    With cnn.RST
    cmdStart.Enabled = False
    cnn.OpenRST ("Select * from KC_tab where KC_SelState=1 Order By KC_code asc")
    While Not .EOF And Not .BOF
        sKey(iIndex) = "sKey" & LRrim(.Fields("KC_code"))
        tvwCourse.Nodes.Add , , sKey(iIndex), .Fields("KC_Code"), 1
        TempRst.Open "Select * from Stud_course_tab where KC_code='" & .Fields("KC_Code") & "' Order By Stud_code asc", cnn.objCnn, adOpenStatic, adLockBatchOptimistic
        While Not TempRst.EOF And Not TempRst.BOF
            tvwCourse.Nodes.Add sKey(iIndex), tvwChild, , TempRst.Fields("Stud_Code"), 3
            TempRst.MoveNext
        Wend
        .MoveNext
        TempRst.Close
        iIndex = iIndex + 1
    Wend
    End With
    Set TempRst = Nothing
      

  3.   

    我的方法是使用递归法.
    函数如下(有些地方使用了自定义函数,你可以修改一下):'/树操作基本参数列表.
    Type BaseParameter
         Cnn As ADODB.Connection 'ADODB 连接
         TrvName As Object       '树名称.
         TabName As String       '树对应的数据表名
         ParFld As String        '数据表中父节点的字段名.
         ChildFld As String      '数据表中子节点的字段名.
         TextFld As String       '数据表中节点文本名称的字段名.
         RootIco As String       '树中根目录的图标号.
         Parico As String        '树中父节点的图标号.
         ExpParIco As String     '树中展表一个节点时的图标号.
         ChildIco As String      '树中子节点的图标号.
         RootText As String      '树中根节点的文件.
    End TypeDim TrvBasePar As BaseParameter'
    '单表填充TREEVIEW
    '函数:FillTreeView
    '参数:SelectSql 一条没有WHERE条件表达式的SELECT语句.
    '返回值:
    '说明:SELECT语句中必须包括三项:父节点的字段名,子节点的字段名.节点的标签字段名
    '      所有节点的KEY值是:G + 节点的ID号.Text值是:节点的标签名.
    Public Function FillTreeView(SelectSql As String)
                    If TrvBasePar.TrvName Is Nothing Then
                       Exit Function
                    End If
                    Call FillTree("", "", SelectSql)
    End Function
                                 
    '/用递归法填充树视图
    Private Function FillTree(ParFldValue As String, _
                              ParKey As String, _
                              SelectSql As String)
             Dim N As Long
             Dim NodeX As Node
             Dim StrSql As String
             Dim Rs As New ADODB.Recordset
             Dim RsB As New ADODB.Recordset
             Dim ParentArr() As String '记录有子节点的节点
             Dim AddId As Long
             Dim ChildKey As String, ChileStr As String
             Dim Pid As String, PKey As String
             Dim TagStr As String
             
            AddId = 0
            If Len(ParFldValue) = 0 Then
               Set NodeX = TrvBasePar.TrvName.Nodes.Add(, , "G0000", TrvBasePar.RootText, "ROOT")
               NodeX.Expanded = True
               Call FillTree("0000", "G0000", SelectSql)
            Else
               StrSql = SelectSql & " Where " & TrvBasePar.ParFld & "='" & ParFldValue & "'"
               Set Rs = M_DbCtrl.RsOpen(TrvBasePar.Cnn, StrSql)
               If Not (Rs.EOF And Rs.BOF) Then
                  Rs.MoveFirst
                  While Not Rs.EOF
                        ChildKey = "G" & CStr("" & Rs.Fields(TrvBasePar.ChildFld))
                        Set NodeX = TrvBasePar.TrvName.Nodes.Add(ParKey, tvwChild, ChildKey, _
                                    CStr("" & Rs.Fields(TrvBasePar.TextFld)), TrvBasePar.ChildIco)
                        
                        StrSql = "Select Top 1 " & TrvBasePar.TabName & "." & TrvBasePar.ChildFld & " From " & TrvBasePar.TabName & _
                                 " Where " & TrvBasePar.ParFld & "='" & CStr("" & Rs.Fields(TrvBasePar.ChildFld)) & "'"
                        Set RsB = M_DbCtrl.RsOpen(TrvBasePar.Cnn, StrSql)
                        If Not (RsB.EOF And RsB.BOF) Then
                           NodeX.Image = TrvBasePar.Parico
                           AddId = AddId + 1
                           ReDim Preserve ParentArr(1, AddId)
                           ParentArr(0, AddId - 1) = CStr("" & Rs.Fields(TrvBasePar.ChildFld))
                           ParentArr(1, AddId - 1) = CStr("G" & CStr("" & Rs.Fields(TrvBasePar.ChildFld)))
                        End If
                        Rs.MoveNext
                  Wend
                  Set Rs = Nothing
                  If AddId > 0 Then
                     For N = 0 To AddId - 1
                         Pid = ParentArr(0, N)
                         PKey = ParentArr(1, N)
                         Call FillTree(Pid, PKey, SelectSql)
                     Next
                  End If
               End If
            End If
    End Function
      

  4.   

    http://www.csdn.net/develop/read_article.asp?id=23258