用DataGrid控件删除记录的问题?
我在DataGrid控件的属性中勾选了删除和更新,其它代码如下:
Dim WithEvents adoPrimaryRS As Recordset '模块变量
...
Set DG数据表.DataSource = adoPrimaryRS 'DG数据表为DataGrid控件
我在控件中选中了记录,按Delete键删除记录,控件中的记录是删除了,但是再搜索一遍的时候又出现了,文件中的记录根本就没有删除,怎么才能按Delete键时连文件中的记录也删除掉呢?
问题点数:20、回复次数:8Top
1 楼faysky2(出来混,迟早是要还嘀)回复于 2005-12-01 20:11:53 得分 0
删除后加上:
adoPrimaryRS.UpdateTop
2 楼faysky2(出来混,迟早是要还嘀)回复于 2005-12-01 20:12:36 得分 0
如果删除了多条:
adoPrimaryRS.UpdateBatchTop
3 楼vmaster(似水浮云)回复于 2005-12-01 20:35:17 得分 0
我应该加在哪啊,我不知道DataGrid控件是在哪里响应Delete事件的Top
4 楼vmaster(似水浮云)回复于 2005-12-01 20:41:28 得分 0
我加在AfterDelete事件上:
Private Sub DG数据表_AfterDelete()
adoPrimaryRS.Update '出错,提示“客户事件句柄调用了一个提供者中的非重入方法”
End SubTop
5 楼faysky2(出来混,迟早是要还嘀)回复于 2005-12-01 20:44:56 得分 0
Private Sub DataGrid1_AfterDelete()
adoPrimaryRS.UpdateBatch
End SubTop
6 楼faysky2(出来混,迟早是要还嘀)回复于 2005-12-01 20:47:48 得分 0
用DataGrid1.Refresh试试Top
7 楼vmaster(似水浮云)回复于 2005-12-01 20:52:30 得分 0
不行啊,对adoPrimaryRS.的操作都出错,DG数据表.Refresh也不行~~Top
8 楼faysky2(出来混,迟早是要还嘀)回复于 2005-12-01 21:24:09 得分 0
不理解你的为什么会那样子
我自己试了,用Delete键删除后,再查询,得到的结果删除后的结果,代码如下:
Private Sub Form_Load()
Dim cn As New ADODB.Connection,rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test1.mdb;Persist Security Info=False"
cn.CursorLocation = adUseClient
rs.Open "table1", cn, adOpenDynamic, adLockOptimistic, adCmdTable
Set DataGrid1.DataSource=rs
MsgBox rs.RecordCount '显示记录条数 ,结果为10**************************
'....
End Sub
========================================
'按Delete键后,再点Command1查询记录条数
Private Sub Command1_Click()
Dim cn As New ADODB.Connection,rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test1.mdb;Persist Security Info=False"
cn.CursorLocation = adUseClient
rs.Open "table1", cn, adOpenDynamic, adLockOptimistic, adCmdTable
MsgBox rs.RecordCount '显示记录条数,结果为9*************************
'....
End SubTop




