| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8187 人关注过本帖
标题:listbox如何选中项?
只看楼主 加入收藏
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
 问题点数:0 回复次数:15 
listbox如何选中项?
我用listbox
我想用程序来实现项目被选中.
如图所示,点中2001时,让下挂于2001的选项都选中,我用程序:
     nj是被选中的年
      Set rs = CreateObject("ADODB.Recordset")
      sql = "select 表名 from ndbm where 年度='" & nj & "'"
      rs.Open sql, adoConnection, 1, 1
      If Not rs.EOF And Not rs.BOF And rs.RecordCount <> 0 Then
        For n1 = 1 To rs.RecordCount Step 1
         For j1 = 1 To List2.ListCount - 1
          If Trim(frm_main.List2.list(j1)) = Trim(rs("表名")) Then
            'List2.Selected(j1) = False 只用这一句时什么问题也没有.
            'List2.Selected(j1) = True  只用这一句时提示rs("表名")EOF或BOF,或干脆提示内存溢出!我用过这样指定的东东为选中.
          End If
         Next j1
          rs.MoveNext
        Next n1
      End If
这是VB的BUG还是什么啊?郁闷ing......,请能帮我?

h.jpg (6.08 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: listbox Set And For 
2008-05-31 22:56
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
不能用for .....to rs.recordcount
这样
if rs.recordcount>0 then rs.movefirst
while rs.eof=false
For j1 = 1 To List2.ListCount - 1
          If Trim(frm_main.List2.list(j1)) = Trim(rs("表名")) Then
            'List2.Selected(j1) = False 只用这一句时什么问题也没有.
            'List2.Selected(j1) = True  只用这一句时提示rs("表名")EOF或BOF,或干脆提示内存溢出!我用过这样指定的东东为选中.
          End If
next
rs.movenext
wend
end if

[[it] 本帖最后由 三断笛 于 2008-6-1 09:28 编辑 [/it]]
2008-06-01 09:27
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
虽然你的回答与我的问题看似牛头不对马嘴,不过,我估计是什么东东有冲突,也有可能是这个for冲突.
原因是你没看见我用false时它没出错的说明吗?就是说用这个循环对这个rs记录集是没有用错的,而且它还有时候提示的是内存溢出!因此可以肯定是什么地方有了冲突!
所以我试着换成你的while或do试试.
也许这样换了它就不冲突了.
2008-06-01 09:42
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
不是VB标志什么地方出错就是你代码的那一行出错了
不是与For有冲突
是首先保证有记录集的情况下MoveFirst,还要判断EOF属性才不会出现你说的错误
牛头不对马嘴?
你试过我的代码了么?

[[it] 本帖最后由 三断笛 于 2008-6-1 11:50 编辑 [/it]]
2008-06-01 11:48
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
晕,我们俩有一个人可能不懂我的语句吧?
看清楚了,如果没有
           'List2.Selected(j1) = True  只用这一句时提示rs("表名")EOF或BOF,或干脆提示内存溢出!我用过这样指定
这一句.我的程序什么问题都没有.
明白了?就是说我的记录集循环绝对没有问题!!!!!!
而且我的错误每次不一样!!!!!
请问你的记录集要是EOF或BOF时会提示内存溢了?!
2008-06-01 13:25
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
Set rs = CreateObject("ADODB.Recordset")
      sql = "select 表名 from ndbm where 年度='" & nj & "'"
      rs.Open sql, adoConnection, 1, 1
      If Not rs.EOF And Not rs.BOF And rs.RecordCount <> 0 Then
        For n1 = 1 To rs.RecordCount Step 1
         For j1 = 1 To List2.ListCount - 1
          If Trim(frm_main.List2.list(j1)) = Trim(rs("表名")) Then
            List2.Selected(j1) = False
          End If
         Next j1
          rs.MoveNext
        Next n1
      End If

我的程序如上面所示时什么问题都没有,就是达不到我的要求!!
2008-06-01 13:26
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
Set rs = CreateObject("ADODB.Recordset")
      sql = "select 表名 from ndbm where 年度='" & nj & "'"
      rs.Open sql, adoConnection, 1, 1
      If Not rs.EOF And Not rs.BOF And rs.RecordCount <> 0 Then
        For n1 = 1 To rs.RecordCount Step 1
         For j1 = 1 To List2.ListCount - 1
          If Trim(frm_main.List2.list(j1)) = Trim(rs("表名")) Then
            List2.Selected(j1) = True
          End If
         Next j1
          rs.MoveNext
        Next n1
      End If
我的程序要是只改这一个红的标出的,它就提示:EOF或BOF或溢出!!!!而它正是我想要让我程序的目的.
你要真的能解释这个原因我服务了您!!!!!!!!!!!!!!!!!
2008-06-01 13:30
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
ListBox会有EOF或BOF的错误?ListBox没有Eof或BOF属性,建议在记录集上找原因.
先试试我给的代码吧
2008-06-01 14:18
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
早试过了,相同的错误!!!!!
2008-06-01 14:42
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
并且你看过我的说明了没有?它每次报不同的错!!!!
一会说EOF一会儿说内存溢出,那有这个的记录集问题的?
说破天去我都不会再从记录集上找原因了!!!!!!!
2008-06-01 14:45
快速回复:listbox如何选中项?
数据加载中...
 
   



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

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