在进行查找之前,要判断是否到记录尾才行.改成这样:Private Sub TreeView2_NodeClick(ByVal Node As MSComctlLib.Node)
    Dim strsql As String
    strsql = "emp_id like '" & Node.Key & "'"
    if objRecordset.eof then exit sub '在查找之前,加这句,判断是否到记录尾
    objRecordset.Find strsql, 1, adSearchForward
    If Not (objRecordset.EOF And objRecordset.BOF) Then
        UserControl.Text1.Text = objRecordset.Fields.Item(1).Value
        UserControl.Text2.Text = objRecordset.Fields.Item(2).Value
        UserControl.Text3.Text = objRecordset.Fields.Item(3).Value
        UserControl.Text4.Text = objRecordset.Fields.Item(4).Value
        UserControl.Text5.Text = objRecordset.Fields.Item(5).Value
        UserControl.Text6.Text = objRecordset.Fields.Item(6).Value
        UserControl.Text7.Text = objRecordset.Fields.Item(7).Value
        'UserControl.Text8.Text = objRecordset.Fields.Item(8).Value
    End If
End Sub

解决方案 »

  1.   

    当然,如果你的表中本来就有记录,还可以做多一个设置,像下面这样:Private Sub TreeView2_NodeClick(ByVal Node As MSComctlLib.Node)
        Dim strsql As String
        strsql = "emp_id like '" & Node.Key & "'"
        if objRecordset.eof then  '判断是否到记录尾
           objobjRecordset.MoveFirst  '如果是的话,回到记录头
           if objRecordset.eof then  exit sub  '如果没有记录,退出过程
        endif
        objRecordset.Find strsql, 1, adSearchForward
        If Not (objRecordset.EOF And objRecordset.BOF) Then
            UserControl.Text1.Text = objRecordset.Fields.Item(1).Value
            UserControl.Text2.Text = objRecordset.Fields.Item(2).Value
            UserControl.Text3.Text = objRecordset.Fields.Item(3).Value
            UserControl.Text4.Text = objRecordset.Fields.Item(4).Value
            UserControl.Text5.Text = objRecordset.Fields.Item(5).Value
            UserControl.Text6.Text = objRecordset.Fields.Item(6).Value
            UserControl.Text7.Text = objRecordset.Fields.Item(7).Value
            'UserControl.Text8.Text = objRecordset.Fields.Item(8).Value
        End If
    End Sub