Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在MS Access 2010中使用VBA向treeview active x控件添加第三级_Ms Access_Vba_Ms Access 2010 - Fatal编程技术网

Ms access 在MS Access 2010中使用VBA向treeview active x控件添加第三级

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

我有下面的VBA代码,它用父表
和子表
类别
填充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
端接头