回 帖 发 新 帖 刷新版面

主题:运行时错误‘35652'

Sub Tree()
    Dim sql$, r As Integer, Maxclass As Byte, I As Byte
    Application.ScreenUpdating = False
    Set cnn = CreateObject("ADODB.connection")
    Set rst = CreateObject("adodb.recordset")
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\ZyDe.mdb"
 
  With UserForm2.TreeView1
        .Nodes.Clear
        '.ImageList = UserForm2.ImageList1
        .LineStyle = tvwRootLines
        .Style = tvwTreelinesPlusMinusPictureText
        .Visible = False

        sql = "SELECT len(max(NewPid*1))/2 From zjb "    '科目大类别
        rst.Open sql, cnn, 3, 1
        If rst.RecordCount <> 0 Then
            Maxclass = rst.fields(0)                              '取得科目多少级数
            rst.Close
        End If

        sql = "SELECT left(NewPid,1), NewID From  zjb group by  left(NewPid,1), NewID  "   '科目大类别
        rst.Open sql, cnn, 3, 1
        If rst.RecordCount <> 0 Then
            For r = 1 To rst.RecordCount
                .Nodes.Add(, , "abc" & rst.fields(0), rst.fields(0) & "-" & rst.fields(1)).Tag = 1
                rst.movenext
            Next
            rst.Close
        End If

        sql = "SELECT NewPid,MC From zjb where len(NewPid)=4  Order by NewPid "  'MCASC,DESC
        rst.Open sql, cnn, 3, 1
        If rst.RecordCount <> 0 Then
            For r = 1 To rst.RecordCount
                .Nodes.Add("abc" & Left(rst.fields(0), 1), tvwChild, "abc" & rst.fields(0), rst.fields(0) & "-" & rst.fields(1)).Tag = 2
                rst.movenext
            Next
            rst.Close
        End If

        For I = 1 To (Maxclass - 2)                                               '明细科目
            sql = "SELECT NewPid,MC,Bz From zjb where len(NewPid) = " & I * 2 + 4 & ";"
            rst.Open sql, cnn, 3, 1
            If rst.RecordCount <> 0 Then
                For r = 1 To rst.RecordCount
                    .Nodes.Add("abc" & Left(rst.fields(0), I * 2 + 2), tvwChild, "abc" & rst.fields(0), rst.fields(0) & "-" & rst.fields(2)).Tag = I + 2
                    rst.movenext
                Next
                rst.Close
            End If
        Next

        cnn.Close
        Set rst = Nothing
        .Visible = True
    End With
    Application.ScreenUpdating = True
End Sub

回复列表 (共6个回复)

沙发


运行到 With UserForm2.TreeView1时提示
运行时错误‘35652'
key is not unique in colletion
请帮忙给改一下

板凳

treeNodes集合里的索引键不唯一。

3 楼

我是彩鸟,还是不懂,请帮忙给改一下,先谢谢啦

4 楼


楼主,其实我也遇到过你这样的问题,不过我经过朋友的介绍这个网站    

http://www.chinaexcel.com 
上面有了想要的信息

5 楼

chinaexcel3你好:
你说的网站我去看啦一下,没有找到呀

6 楼

[quote]treeNodes集合里的索引键不唯一。[/quote]
我不太懂,请详细说一下

我来回复

您尚未登录,请登录后再回复。点此登录或注册