又是VB+SQL!!!是关于删除记录的,欢迎技术灌水。^_^
一个ADO控件,一个DATAGRID控件,一个command(命名为“删除”)
怎么写完整的删除记录的代码?
唯一要求:在删除最后一条记录时,不出错,所有记录删除完后,再点删除,会有提示数据库为空。
问题点数:20、回复次数:9Top
1 楼xiaoMONKEY(小猴)回复于 2005-08-02 19:02:12 得分 0
到最后一条,command.enabled=falseTop
2 楼province_(雍昊)回复于 2005-08-02 19:08:57 得分 0
^_^Top
3 楼Swordstone(攀登者)回复于 2005-08-02 21:12:55 得分 0
大姐,这样的问题,你自己多试验一下都有了
不就是delete,move 马
现在大几阿??Top
4 楼cxbkkk(本命年,旺啊!)回复于 2005-08-02 22:42:38 得分 0
很简单的-_-!
你用ADODC_movecomplete事件来实现,中间就可以用一个无数据。或者用movenext来实现三,然后用.eof来判断是否为空,如果是就提示数据库为空Top
5 楼Smidin(冰刃无痕)回复于 2005-08-03 12:49:27 得分 0
If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
MsgBox "该数据库已经为空!", vbOKOnly + vbExclamation, "提示"
Exit Sub
End If
If MsgBox("确实要删除这条记录吗?", vbYesNo, "删除确认") = vbYes Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
End If
End If
代码如上,怎么改进
注:我是小弟,不是大姐。汗ing~~~~~~Top
6 楼dingmin(专顶师太的小PP)回复于 2005-08-03 14:54:48 得分 0
If Adodc1.Recordset.Recordset<>0 Then
on error goto err
If MsgBox("确实要删除这条记录吗?", vbYesNo, "删除确认") = vbYes Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
End If
else
MsgBox "该数据库已经为空!", vbOKOnly + vbExclamation, "提示"
Exit Sub
End If
err:
MsgBox "该数据库已经为空!", vbOKOnly + vbExclamation, "提示"
首先判断记录集是否为空,有记录则删除,并移动到下一条;
如果只有一条记录,则删除记录后跳转至ERR标签;
否则;转到ELSE语句。Top
7 楼dingmin(专顶师太的小PP)回复于 2005-08-03 14:56:00 得分 0
呵呵 不小心搞错了 第一句:
If Adodc1.Recordset.Recordcount<>0 ThenTop
8 楼Smidin(冰刃无痕)回复于 2005-08-06 10:41:53 得分 0
dingmin:
你的代码我试过了,还是有错误的,每次删除后都调用err,还有就是Adodc1.Recordset.MoveNext后面少个If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast,如果没有,在还有三条记录的表里你删除最后一条记录后,它调用err,可是表不为空。不过还是谢谢你的帮助!!
测试条目:
1、对空数据库,点击"删除",有"该数据库没有任何数据!" 提示
2、删除第一条记录后,无错
3、删除中间任一记录后,无错
4、删除最后一条记录后,无错
5、删除仅有的一条记录后,提示"该数据库已经为空!"无错
我上面的代码可以通过前4条测试,但第5条无论如何也通不过,改进又无从下手。郁闷
Top
9 楼szmaomao(毛毛)回复于 2005-08-06 11:40:38 得分 20
标签err;上面缺少exit sub 语句。Top




