Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

用VBA编程来获取列表框的行数

BaoChengReng  发表于:2014-10-16 10:51:29  
复制

我在网上看到麥田老师写的:【access入门】列表框默认值显示第几条\第几行数据的示例\ItemData(n)函数
(时 间:2011-05-17 00:13:46),对此很感兴趣。
我的目的是已知多列列表框中某个列的内容(比如例子中的[麥田]),
通过编写列表框的某些命令,来求得[麦田]在这个例子中的行数N,
然后用ItemData(n)函数快速定位到列表框有[麦田]的行,而不需点击列表框或拉动列表框滚动条来寻找。

 

Top
茼蒿 发表于:2014-10-16 11:44:55

定位只能一行一行定

我觉得你这个想法,还不如用筛选来实现比较直观。

当然某些单位如医院的医生,不喜欢用筛选来解决,喜欢逐个定位查找。这例子我也做过



茼蒿 发表于:2014-10-16 11:49:43
不知道是不是你想要的效果

BaoChengReng 发表于:2014-10-16 13:04:34
谢谢大家的支持,
其实目前我实际使用的是筛选查询,从列表框1中点取获得一个条件,然后以此为条件搞个查询语句,作为列表框2的数据源,
原本列表框2中有许多记录,这时候只显示符合列表框1中点取的条件只记录。其它的都看不到了。
因为我看到麦田老师那个例子,觉得很好,只不过他的例子中ItemData(n)函数中的n是人为输入的,我想要点取列表框1时自动获得该条件在列表框2
中的行数n,然后让列表框2定位到有列表框1条件的那一行。好处是找到符合条件这一行外,还可以看到其它条件的记录。
我想用For i=0 to 列表框2.ListCount-1 
          if xxx=列表框1点取的条件 then n=xx
      Next i
然后 Me.列表框2 = Me.[列表框2].[ItemData](n)
我就不知道这个For循环语句中这个命令怎么写。望高手不吝赐教!



西出阳关无故人 发表于:2014-10-16 17:10:13
Private Sub Command2_Click()
    Dim i
    For i = 0 To List0.ListCount - 1 '循环整个列表框[List0]的数据
        If List0.Column(1, i) = "新东方" Then  'Column(1, i),1为要查找的列,从0~列数-1的整数,i为行号,"新东方"为要查找的内容
            'MsgBox i
            List0.Selected(i) = True   '把找到的行高亮出来
            Exit For
        End If
    Next i
End Sub

煮江品茶 发表于:2014-10-16 17:39:41

http://www.accessoft.com/article-show.asp?id=4605




总记录:5篇  页次:1/1 9 1 :