| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 732 人关注过本帖
标题:问题请教,为什么我的程序不循环呢?初学
取消只看楼主 加入收藏
dg97112c
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-11
收藏
 问题点数:0 回复次数:4 
问题请教,为什么我的程序不循环呢?初学
我在FORM1中建了16个combo1.有一个access数据库。字段有16个与之对应,有数据记录。

我想在程序运行时,自动将数据库各字段的记录读到combo1各个下拉列表框中。写了以下程序。但是运行这个程序只有combo1(0)下才读出了记录。其他的都读不出,表示程序没有循环吧。帮我检查下为什么不对呢。我昨天写出来都能读,但今天写出来就不对,还是我写得不对哦。

代码:
Private Sub Form_Load()
'列表框初始化

For c = 0 To Adodc2.Recordset.Fields.Count
For b = 0 To Adodc2.Recordset.RecordCount
If Adodc2.Recordset.EOF = 0 Then

Combo1(c).AddItem Adodc2.Recordset.Fields(c)
Adodc2.Recordset.MoveNext

End If
Next b
Next c
End Sub

谢谢!
搜索更多相关主题的帖子: 初学 
2008-07-11 11:03
dg97112c
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-11
收藏
得分:0 
jxyga111:

     我改成Count-1还是不行呢
2008-07-14 10:35
dg97112c
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-11
收藏
得分:0 
jxyga111:

  还是不对,我把For c = 0 To Adodc2.Recordset.Fields.Count
改成For c = 0 To 16
结果是一样的,数据库中第一个字段的记录集添加到了combo1(0)的下拉菜单中,但combo(?)其他控件的都没有加,表面最外层没有循环吧。数据库中有记录集的
2008-07-14 14:15
dg97112c
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-11
收藏
得分:0 
哈哈,已经搞定了,再次感谢VB探讨群3的灬炸子骨︶ㄣ和砂之守鹤和楼上的jxyga111的帮组。

正确代码如下:
For c = 1 To Adodc2.Recordset.Fields.Count - 1
Combo1(c - 1).Text = ""
    For d = 0 To Adodc2.Recordset.RecordCount - 1

        If Adodc2.Recordset.EOF = 0 Then
        If Adodc2.Recordset.Fields(c).Value <> "" Then

        Combo1(c - 1).AddItem Adodc2.Recordset.Fields(c)
        Adodc2.Recordset.MoveNext
        End If
        End If
    Next d
Adodc2.Recordset.MoveFirst

Next c

不循环的原因在于没有把数据库记录游标指到开头。所以要加Adodc2.Recordset.MoveFirst这句。

If Adodc2.Recordset.Fields(c).Value <> "" Then这句是判断记录为空的情况。不然会出错。
2008-07-14 15:49
dg97112c
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-11
收藏
得分:0 
恩,明白了。
我没调试过,嘿
2008-07-15 17:10
快速回复:问题请教,为什么我的程序不循环呢?初学
数据加载中...
 
   



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

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