我使用treeview建立树形结构一共有4层,结构如下:
系统
.....发件部门
........项目部
......张三
......李四
........办公室
......XX
......YY
.....收件部门
........项目部
......张三
......李四
........办公室
......XX
......YY
部门名称从tblDept读出,姓名从tblUser读出的
采用的代码如下:
Do Until RsAdo.EOF
Set Dept = trvDept.Nodes.Add(Inbox, tvwChild, , RsAdo.Fields("DeptUserIn").Value, 4)
strSQL1 = "select TrueName from tblUser where DeptUserIn='" & RsAdo.Fields("DeptUserIn") & "'"
RsAdo1.Open strSQL1, AdoCon, adOpenDynamic, adLockOptimistic
Do Until RsAdo1.EOF
Set UserName = trvDept.Nodes.Add(Dept, tvwChild, , RsAdo1.Fields("TrueName"), 4)
RsAdo1.MoveNext
LoopSet Dept = trvDept.Nodes.Add(Outbox, tvwChild, , RsAdo.Fields("DeptUserIn").Value, 4)
Do Until RsAdo1.EOF
Set UserName = trvDept.Nodes.Add(Dept, tvwChild, , RsAdo1.Fields("TrueName"), 4)
RsAdo1.MoveNext
Loop
RsAdo.MoveNext
Loop
结果没有显示所有数据,不知道怎么搞了,望各位高手帮助一下。
在线等!
系统
.....发件部门
........项目部
......张三
......李四
........办公室
......XX
......YY
.....收件部门
........项目部
......张三
......李四
........办公室
......XX
......YY
部门名称从tblDept读出,姓名从tblUser读出的
采用的代码如下:
Do Until RsAdo.EOF
Set Dept = trvDept.Nodes.Add(Inbox, tvwChild, , RsAdo.Fields("DeptUserIn").Value, 4)
strSQL1 = "select TrueName from tblUser where DeptUserIn='" & RsAdo.Fields("DeptUserIn") & "'"
RsAdo1.Open strSQL1, AdoCon, adOpenDynamic, adLockOptimistic
Do Until RsAdo1.EOF
Set UserName = trvDept.Nodes.Add(Dept, tvwChild, , RsAdo1.Fields("TrueName"), 4)
RsAdo1.MoveNext
LoopSet Dept = trvDept.Nodes.Add(Outbox, tvwChild, , RsAdo.Fields("DeptUserIn").Value, 4)
Do Until RsAdo1.EOF
Set UserName = trvDept.Nodes.Add(Dept, tvwChild, , RsAdo1.Fields("TrueName"), 4)
RsAdo1.MoveNext
Loop
RsAdo.MoveNext
Loop
结果没有显示所有数据,不知道怎么搞了,望各位高手帮助一下。
在线等!
解决方案 »
- 请教:我初始窗体最大化后toolbar1在窗体的最下面,但在任务栏的上面,最小化后,再最大化toolbar1就看不见了,如何解决?
- 请教:如何声明C++中定义的数据类型和函数?在线等!!!
- 晕了,哪里有错误啊????
- datareport报表显示多层数据集
- vb编译一个exe网站后台运行!请高手帮忙!
- 急!!!Form2中定义的变量如何在Form1中访问!!在先等·!·!
- 用MSFlexGrid处理数据的时候,表头特别复杂的时候大家是怎么处理的?
- Access用户登陆?
- 网络编程高手请进
- ASP,PHP有何不同!!!!!!
- 求一算法
- 大家帮忙,急急急~~~~~~~~~~~~~~~~~~~~~~~~~~~!
node Key是什么意思?如果写成这样的话
Do Until RsAdo.EOF
Set Dept = trvDept.Nodes.Add(Inbox, tvwChild, , RsAdo.Fields("DeptUserIn").Value, 4)
Set Dept = trvDept.Nodes.Add(Outbox, tvwChild, , RsAdo.Fields("DeptUserIn").Value, 4)
RsAdo.MoveNext
Loop
会显示一个部门表里的所有数据,但是我还想从另一张表显示对应部门的人员
Set nodeY = tvwDept(1).Nodes.Add("Root", tvwChild, "D" & rstDept!depart_id, rstDept!DepartMentName & "[" & rstDept!codeid & "]", 3)
nodeY.Tag = rstDept!codeid
strSql = "Select * From ClientDepartMentSet_Child Where Depart_ID='" & rstDept!depart_id & "' Order BY CodeID"
Set rstEmy = ExecSql1(strSql, strMsg)
Do Until rstEmy.EOF
Set nodeY = tvwDept(1).Nodes.Add("D" & rstDept!depart_id, tvwChild, "E" & rstEmy!uId, rstEmy!Sname & "[" & rstEmy!codeid & "]", 2)
nodeY.Tag = rstEmy!codeid
rstEmy.MoveNext
Loop
rstDept.MoveNext
Loop
你参看这段代码吧。一样是加栽部门和员工。说了你的node的key没有设置。你后面的员工当然不知道加到哪去了
不过不是那个的原因,而是在写循环的时候,当第一次循环后记录已经到最后一条了,所以再次循环的时候,将不会再被执行。
问题已经解决了。谢谢各位
代码如下,有需要的朋友可以参考
Do Until RsAdo.EOF
Set Dept = trvDept.Nodes.Add(Inbox, tvwChild, , RsAdo.Fields("DeptUserIn").Value, 4)
strSQL1 = "select TrueName from tblUser where DeptUserIn='" & RsAdo.Fields("DeptUserIn") & "'"
RsAdo1.Open strSQL1, AdoCon, adOpenDynamic, adLockOptimistic
While Not RsAdo1.EOF
Set TrueName = trvDept.Nodes.Add(Dept, tvwChild, , RsAdo1.Fields("TrueName"), 4)
RsAdo1.MoveNext
Wend
RsAdo1.CloseSet Dept = trvDept.Nodes.Add(Outbox, tvwChild, , RsAdo.Fields("DeptUserIn").Value, 4)
strSQL1 = "select TrueName from tblUser where DeptUserIn='" & RsAdo.Fields("DeptUserIn") & "'"
RsAdo1.Open strSQL1, AdoCon, adOpenDynamic, adLockOptimistic
While Not RsAdo1.EOF
Set TrueName = trvDept.Nodes.Add(Dept, tvwChild, , RsAdo1.Fields("TrueName"), 4)
RsAdo1.MoveNext
Wend
RsAdo1.Close
RsAdo.MoveNext
Loop