| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1006 人关注过本帖
标题: 为什么只循环一次?????
只看楼主 加入收藏
yxhmk
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-8-3
收藏
 问题点数:0 回复次数:11 
 为什么只循环一次?????
我的全部代码如下:    为什么红色部份的    FOR部份为什么只循环一次?????



Private Sub Form_Load()
Me.WindowState = 2   '窗体最大化
'设置ADODC1连接到yxhmk.mdb
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\yxhmk.mdb;Persist Security Info=False"
'连接<使用单位>表
Adodc1.RecordSource = "select * from 使用单位"
'刷新连接
Adodc1.Refresh
'设树状控件的图标
TreeView1.ImageList = 树状图标
'设置控件的第一级节点=====================================================================
Set nodes_1 = Me.TreeView1.Nodes.Add(, , "使用单位", Adodc1.Recordset.Fields("使用单位"), 1)

'设置第二级节点====================================================================================

'连接<线路档案>表
Adodc1.RecordSource = "线路档案"
'刷新连接
Adodc1.Refresh
'获得记录集的条数
M = Adodc1.Recordset.RecordCount

ReDim X(M) As String, Y(M) As String
 For I = 2 To M
   X(I) = Adodc1.Recordset("线路名称")
   Y(I) = Adodc1.Recordset("线路编号")
    Set nodes_1 = Me.TreeView1.Nodes.Add("使用单位", tvwChild, "A" & Y(I), Y(I) & "|" & X(I), 2, 5)
    Adodc1.Recordset.MoveNext    '记录集的指针转到下一条
 Next
'设置第三级节点====================================================================================
Adodc1.RecordSource = "台区档案"

'刷新连接
Adodc1.Refresh
'获得记录集的条数
'B = Adodc1.Recordset.RecordCount
ReDim FF(B) As String, EE(B) As String, BB(B) As String
  For I = 1 To 6
     Adodc1.Refresh '刷新连接
    Do While Adodc1.Recordset.EOF = False
      FF(B) = Adodc1.Recordset("所属线路")
      EE(B) = Adodc1.Recordset("台区编号")
      BB(B) = Adodc1.Recordset("台区名称")
       If FF(B) = "0" & I Then
         Set nodes_1 = Me.TreeView1.Nodes.Add("A" & "0" & I, tvwChild, "A" & EE(B), EE(B) & "|" & BB(B), 3, 5)
       End If
      Adodc1.Recordset.MoveNext    '记录集的指针转到下一条
    Loop
   Next I

End Sub

[[it] 本帖最后由 yxhmk 于 2008-9-1 15:53 编辑 [/it]]
搜索更多相关主题的帖子: TreeView1 
2008-08-31 08:43
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
那就是M的问题

偶是菜鸟鸟偶惧WHO?!!!!
2008-08-31 09:45
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
按说里面的Do循环是没什么问题的,不过那个ADD方法的第一个参数是不是key?
每个结点的key应该不一样吧?

没试验,纯粹经验判断。
2008-08-31 10:27
yxhmk
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-8-3
收藏
得分:0 
[bo][un]我是菜鸟哦[/un] 在 2008-8-31 09:45 的发言:[/bo]

那就是M的问题


M=6应该是没问题的.
2008-08-31 17:41
yxhmk
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-8-3
收藏
得分:0 
[bo][un]multiple1902[/un] 在 2008-8-31 10:27 的发言:[/bo]

按说里面的Do循环是没什么问题的,不过那个ADD方法的第一个参数是不是key?
每个结点的key应该不一样吧?

没试验,纯粹经验判断。


不过那个ADD方法的第一个参数是不是key?    这句不怎么理解?

每个结点的key应该不一样吧?         这个是当然的因为KEY是不能重复的.
2008-08-31 17:45
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
我没仔细看也没测试,说错了欢迎指出。

ADD方法的第一个参数是不是指这个结点的“关键字”?
对于一个特定的i来说,Do循环中的每次调用Add提交的是不是都是同样的关键字?
2008-08-31 19:03
yxhmk
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-8-3
收藏
得分:0 
[bo][un]multiple1902[/un] 在 2008-8-31 19:03 的发言:[/bo]

我没仔细看也没测试,说错了欢迎指出。

ADD方法的第一个参数是不是指这个结点的“关键字”?
对于一个特定的i来说,Do循环中的每次调用Add提交的是不是都是同样的关键字?



对!在Do循环中是不变的   例:如果I在FOR中=1 那么DO循环中的I就一直是=1
2008-08-31 21:30
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
[bo][un]yxhmk[/un] 在 2008-8-31 21:30 的发言:[/bo]




对!在Do循环中是不变的   例:如果I在FOR中=1 那么DO循环中的I就一直是=1

我的意思是请你自己测试一下Add方法的第一个参数是不是每次都应该不一样
我懒……
2008-08-31 21:56
jxyga111
Rank: 8Rank: 8
来 自:中華人民共和國
等 级:贵宾
威 望:33
帖 子:6015
专家分:895
注 册:2008-3-21
收藏
得分:0 
我看了一下,for .....do 都沒錯

烈焰照耀世界,斌凍凍千萬裏
2008-09-01 08:24
yxhmk
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-8-3
收藏
得分:0 
那是不是
    Do 循环完后,因为Do While Adodc1.Recordset.EOF  已经为:  =True
   
然后就改成如下:
     For I = 1 To M
    Adodc1.Refresh        '<--------------------添加了这句
    Do While Adodc1.Recordset.EOF = True
      FF(B) = Adodc1.Recordset("所属线路")
      EE(B) = Adodc1.Recordset("台区编号")
      BB(B) = Adodc1.Recordset("台区名称")
      If FF(B) = "0" & I Then
       Set nodes_1 = Me.TreeView1.Nodes.Add("A" & "0" & I, tvwChild, "A" & EE(B), EE(B) & "|" & BB(B), 2, 6)
      End If
      Adodc1.Recordset.MoveNext    '记录集的指针转到下一条
    Loop
  Next I
但是这句:Set nodes_1 = Me.TreeView1.Nodes.Add("A" & "0" & I, tvwChild, "A" & EE(B), EE(B) & "|" & BB(B), 2, 6)   又报错.为什么?
2008-09-01 09:03
快速回复: 为什么只循环一次?????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037398 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved