获取 datagrid单元格的值的问题!

huawengang 2009-08-06 09:10:15
大家好!

关于获取VB datagrid 单元格的值的问题,请教如下:

For i = 0 To datagrid1.ApproxCount - 1
datagrid1.Row = i
datagrid1.Col = 2 '比如我想取第二列的值
batchNo = datagrid1.Text
Next

现在这种方法取值有一个问题,比如我的datagrid只能显示10行记录,
如果记录超过10行,就会有滚动条,但是当我取到10行以后的记录,比如
第12行,就会提示“无效行号”的错误!

请问这种情况如何解决?
是否有其他更方便的取值方法?
...全文
134 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独剑_LPZ 2009-08-06
  • 打赏
  • 举报
回复
这个问题1楼的高手已经给出了中肯的建议,确实datagrid控件不好控制,建议改用MSHFlexGrid或MSFlexGrid,如果非要用datagrid,改用下面的代码
dim batchNo() as string '定义为数组
redim batchNo(Adodc1.Recordset.RecordCount - 1)
Adodc1.Recordset.MoveFirst
For i = 0 To Adodc1.Recordset.RecordCount - 1
batchNo(i) = Adodc1.Recordset.Fields("账号").Value
Adodc1.Recordset.MoveNext
Next
jhone99 2009-08-06
  • 打赏
  • 举报
回复
DataGrid 的行和列号,指的是当前可见的行和列号。

你还是改用 MSFlexGrid 吧。DataGrid 不是这样用的。

或者用adodc来访问数据
huawengang 2009-08-06
  • 打赏
  • 举报
回复
请高手帮忙 啊

急死啦

huawengang 2009-08-06
  • 打赏
  • 举报
回复
谢谢楼上的高手

现在的问题是当我的i>10时,运行datagrid1.Row = i ,就会出现“无效行号”,

从而就取不到当前行的值

就高手指教!
jhone99 2009-08-06
  • 打赏
  • 举报
回复
不推荐使用ApproxCount属性,ApproxCount只返回在网格中的行号的近似值。用于校准垂直滚动条的近似行数。一般来说, ApproxCount 属性用于改善垂直滚动条的精确性。
要得到datagrid控件的总行数,建议直接在记录集中得到:
1.adodc1.recordset.recordcount
2.rs.recordcount

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧