Ms access 在MS Access 2010中使用VBA向treeview active x控件添加第三级
我有下面的VBA代码,它用父表Ms access 在MS Access 2010中使用VBA向treeview active x控件添加第三级,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我有下面的VBA代码,它用父表组和子表类别填充treeview控件,我还有一个子表类别名为节。我希望能够将第三级添加到我的treeview控件中,以便可以显示部分。然而,我不知道如何正确地做到这一点。在此问题上的任何帮助都将不胜感激 我尝试使用与添加组和类别相同的方法添加子级别;但到目前为止还没有成功 我不确定我的原始代码是否完全正确,但它似乎工作正常 我使用的是Microsoft treeview控件版本6.0,如果这有什么不同的话 Private子表单_Load() 作为节点的Dim nod
组
和子表类别
填充treeview控件,我还有一个子表类别
名为节
。我希望能够将第三级添加到我的treeview控件中,以便可以显示部分
。然而,我不知道如何正确地做到这一点。在此问题上的任何帮助都将不胜感激
我尝试使用与添加组
和类别
相同的方法添加子级别;但到目前为止还没有成功
我不确定我的原始代码是否完全正确,但它似乎工作正常
我使用的是Microsoft treeview控件版本6.0,如果这有什么不同的话
Private子表单_Load()
作为节点的Dim nodX
Dim MyDB作为DAO.Database
作为DAO.Recordset的Dim MYR
将MyRSChild设置为DAO.Recordset
作为字符串的Dim strSQL
设置MyDB=CurrentDb()
Set MyRS=MyDB.OpenRecordset(“按组编号从Prt\U组顺序中选择*”,dbOpenDynaset)
设置nodX=Treeview1.Nodes.Add(,,“明细栏树视图”)
'填充grp节点
不做而不做
设置nodX=Treeview1.Nodes.Add(1,tvwChild,“组”&MyRS![PartGroupID],MyRS![Group\u Number]&“-”&MyRS![Group\u Description])
不可原谅
迈尔斯,下一个
环
strSQL=“按零件类别编号从Prt\U类别订单中选择*”
Set MyRSChild=MyDB.OpenRecordset(strSQL,dbOpenSnapshot)
'填充类别节点
不使用MyRSChild.EOF时执行此操作
Set nodX=Treeview1.Nodes.Add(“组”&MyRSChild![PartGroupID],tvwChild,“A”&CStr(MyRSChild![PartCatID])_
“”&MyRSChild![PartCat_编号]&“-”和_
MyRSChild![PartCat_Description])
MyRSChild.MoveNext
环
迈尔斯柴尔德,关门
迈尔斯,结束
设置MyRSChild=Nothing
设置MyRS=Nothing
端接头
由于没有足够的信息提供完整的答案,我只能在这方面帮你一点忙:
Private Sub Form_Load()
'.....
'Populate category Nodes
Do While Not MyRSChild.EOF
Set nodX = Treeview1.Nodes.Add("Group" & MyRSChild![PartGroupID], tvwChild, "A" & CStr(MyRSChild![PartCatID]), _
" " & MyRSChild![PartCat_Number] & " - " & _
MyRSChild![PartCat_Description])
'insert third level node begins here
'Maybe do a dataset operation on "Section table" and a while loop
Treeview1.Nodes.Add nodx, tvwChild, "KEYOFSECTION", "LABELOFSECTION"
MyRSChild.MoveNext
Loop
'...
End Sub
使用唯一的键更改“KEYOFSECTION”,并使用适当的节标签更改“LABELOFSECTION”我使用了以下成功运行的代码。我不确定这是否是最有效的编码方式,但它确实有效。这有助于我理解节点对象
Private子表单_Load()
作为节点的Dim nodX
Dim MyDB作为DAO.Database
作为DAO.Recordset的Dim MYR
将MyRSChild设置为DAO.Recordset
作为字符串的Dim strSQL
设置MyDB=CurrentDb()
Set MyRS=MyDB.OpenRecordset(“按组号asc从Prt\U组顺序中选择*”,dbOpenDynaset)
设置nodX=Treeview1.Nodes.Add(,“组/类别/节Treeview”)
'填充grp节点
不做而不做
设置nodX=Treeview1.Nodes.Add(1,tvwChild,“组”&MyRS![PartGroupID],MyRS![Group\u Number]&“-”&MyRS![Group\u Description])
不可原谅
迈尔斯,下一个
环
strSQL=“按零件类别编号ASC从Prt\U类别订单中选择*”
Set MyRSChild=MyDB.OpenRecordset(strSQL,dbOpenSnapshot)
'填充类别节点
不使用MyRSChild.EOF时执行此操作
Set nodX=Treeview1.Nodes.Add(“组”&MyRSChild![PartGroupID],tvwChild,“A”&CStr(MyRSChild![PartCatID])_
“”&MyRSChild![PartCat_编号]&“-”和_
MyRSChild![PartCat_Description])
MyRSChild.MoveNext
环
'--------------第三级的新代码------------------
作为字符串的Dim strSQL1
将myRSChild1设置为DAO.Recordset
strSQL1=“按节号从Prt\U节订单中选择*”
Set myRSChild1=MyDB.OpenRecordset(strSQL1,dbOpenSnapshot)
不做我的孩子1.EOF
设置nodX=Treeview1.Nodes.Add(“A”和CStr(myRSChild1![PartCatID])、tvwChild、“B”和CStr(myRSChild1![SectionID])_
“”&myRSChild1![节号]&“-”和_
myRSChild1![章节描述])
myRSChild1.MoveNext
环
'--------------附加代码结束-----------------
'根文本加粗
Treeview1.Nodes(1).Bold=True
迈尔斯柴尔德,关门
迈尔斯,结束
myRSChild1.关闭
设置MyRSChild=Nothing
设置MyRS=Nothing
设置myRSChild1=Nothing
端接头