Office中国论坛/Access中国论坛

标题: ADP 中用什么代替CurrentDb.OpenRecordset语名? [打印本页]

作者: zhaozhuonayes    时间: 2011-4-20 11:20
标题: ADP 中用什么代替CurrentDb.OpenRecordset语名?
MDB中用CurrentDb.OpenRecordset语名,请问ADP中用不上,用什么代替?
作者: t小宝    时间: 2011-4-20 15:40
CurrentDb.OpenRecordset是DAO的对象方法,ADP中要用ADO了,具体使用请查看ADO的帮助
作者: zhaozhuonayes    时间: 2011-4-20 16:29
Private Sub Form_Load() '加载树内容
    Dim objNode As Node
    Dim rst As DAO.Recordset
    Dim MaxLevel As Integer '最大级别
    Dim i As Integer

    Set objTree = Me.TreeView0.Object
    objTree.Nodes.Clear '这句不可少

    Set objNode = objTree.Nodes.Add(, , "NO.1", "存货档案", "K1", "K2") ' 设置最顶层
        MaxLevel = CurrentDb.OpenRecordset("SELECT DBO_存货分类.层数 FROM DBO_存货分类 order by DBO_存货分类.层数 desc;")(0).Value

    For i = 1 To MaxLevel

    Set rst = CurrentDb.OpenRecordset("SELECT DBO_存货分类.层数,DBO_存货分类.存货分类编码,DBO_存货分类.存货分类名称 FROM DBO_存货分类 where  DBO_存货分类.层数=" & i & ";")

    Do Until rst.EOF

            If rst!层数 = 1 Then   '顶层菜单
                Set objNode = objTree.Nodes.Add("NO.1", 4, "NO." & Trim(rst!存货分类编码), Trim(rst!存货分类名称), "K1", "K2")
            Else
                Set objNode = objTree.Nodes.Add("NO." & Left(rst!存货分类编码, (rst!层数 - 1) * perSectionLong), 4, "NO." & Trim(rst!存货分类编码), Trim(rst!存货分类名称), "K1", "K2")
            End If
            rst.MoveNext
        Loop
    Next
    Me.TreeView0.Nodes(1).Expanded = True
    Call TreeView0_NodeClick(objTree.Nodes(1))
End Sub
以上代码是mdb加载树节点的,我想转到ADP中不知怎样改?
作者: zhuyiwen    时间: 2011-4-21 22:41
回复 zhaozhuonayes 的帖子

Private Sub Form_Load() '加载树内容
    Dim objNode As Node
    Dim rst As ADODB.Recordset
    Dim MaxLevel As Integer '最大级别
    Dim i As Integer

    Set objTree = Me.TreeView0.Object
    objTree.Nodes.Clear '这句不可少

    Set objNode = objTree.Nodes.Add(, , "NO.1", "存货档案", "K1", "K2") ' 设置最顶层
        MaxLevel = CurrentProject.Connection.Execute("SELECT DBO_存货分类.层数 FROM DBO_存货分类 order by DBO_存货分类.层数 desc;")(0).Value

    For i = 1 To MaxLevel

    Set rst = CurrentProject.Connection.Execute("SELECT DBO_存货分类.层数,DBO_存货分类.存货分类编码,DBO_存货分类.存货分类名称 FROM DBO_存货分类 where  DBO_存货分类.层数=" & i & ";")

    Do Until rst.EOF

            If rst!层数 = 1 Then   '顶层菜单
                Set objNode = objTree.Nodes.Add("NO.1", 4, "NO." & Trim(rst!存货分类编码), Trim(rst!存货分类名称), "K1", "K2")
            Else
                Set objNode = objTree.Nodes.Add("NO." & Left(rst!存货分类编码, (rst!层数 - 1) * perSectionLong), 4, "NO." & Trim(rst!存货分类编码), Trim(rst!存货分类名称), "K1", "K2")
            End If
            rst.MoveNext
        Loop
    Next
    Me.TreeView0.Nodes(1).Expanded = True
    Call TreeView0_NodeClick(objTree.Nodes(1))
End Sub
作者: zhaozhuonayes    时间: 2011-4-23 08:08
谢谢老师!
作者: zhaozhuonayes    时间: 2011-4-23 08:13
本帖最后由 zhaozhuonayes 于 2011-4-23 08:18 编辑

原来用这个代替!我明白了!

作者: zhaozhuonayes    时间: 2011-4-23 08:17
本帖最后由 zhaozhuonayes 于 2011-4-23 08:18 编辑

我知道了,我会改了,谢谢老师指导!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3