主题:[讨论]能否让mshflexgrid与adodc所指定的数据源的记录指针同步?
xcx720913
[专家分:0] 发布于 2008-04-16 14:15:00
我现在让mshflexgrid指定数据源为adodc
adodc.recordsource="select * from 表"
set mshflexgrid.datasource=adodc
请问:怎样实现mshflexgrid的行的移动与数据表记录指针的移动同步?
比如:当删除表格内一行,则数据表内也能删除这一行
当修改表格内一行,则数据表内对应的该行也能修改
请问高手能否实现,如何实现?
回复列表 (共12个回复)
沙发
zhanghanyn [专家分:220] 发布于 2008-04-16 23:02:00
datagrid 能完全满足的你功能.
板凳
xcx720913 [专家分:0] 发布于 2008-04-17 09:57:00
我开始也是用的datagrid,后来不知道什么原因改掉的,好象是因为格式设置的问题,给20分
3 楼
zhanghanyn [专家分:220] 发布于 2008-04-17 10:23:00
直接在控件里操作好象不行.可以另外加删除和修改按钮还有文本框.
编写函数实现.主要可以用下面一些方法
mshflexgrid1.rowsel返回所选择的行号.
Rec_Count=mshflexgrid1.rowsel.
删除和修改数据的时候从mshflexgrid读取主键,不要在mshflexgrid里操作,
直接在数据库里操作,然后 adodc.Refresh,mshflexgrid1.refresh.就可以了.
然后把指针重新移动到 Rec_Count.
希望能帮到你
4 楼
xcx720913 [专家分:0] 发布于 2008-04-17 13:52:00
最好给个程序代码,我看不大懂
5 楼
xcx720913 [专家分:0] 发布于 2008-04-17 13:59:00
怎样移到rec_count所指的那条记录呢?
6 楼
xcx720913 [专家分:0] 发布于 2008-04-17 14:25:00
双击表格某一行,rec_count=mshflexgrid.rowsel
adodc1.recordset.absoluteposition=rec_count,
adodc1.recordset.delete
adodc1.recordset.refresh
这样对吗?
7 楼
zhanghanyn [专家分:220] 发布于 2008-04-17 19:16:00
你运行一下就可以了,呵呵.我现在没时间试,不好意思.
8 楼
xcx720913 [专家分:0] 发布于 2008-04-18 11:20:00
请问楼主:我照你说的来删除记录
为什么每次删除后
再添加记录时不是在数据表最后添加
而是在被删的位置添加,而且
删几条就在被删位置添几条
之后才会在数据表最后添加
9 楼
zhanghanyn [专家分:220] 发布于 2008-04-18 16:21:00
删除完数据以后adodc1.movelast 就可以了`呵呵
10 楼
zhanghanyn [专家分:220] 发布于 2008-04-18 16:21:00
adodc1.recordset.movelast
我来回复