- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VFP6.0中实现记录删除后自动调整编号
VFP6.0中实现记录删除后自动调整编号
好,言归正传,下面就来看看笔者是怎么样实现记录删除后自动调整记录编号这一功能的。
首先大家来看一下我的这个人事管理系统的删除表单:见图1,这里面的各个控件我想大家一看就知道是干什么用的了,在此我就不再介绍,有一点要说明的是,数据库(或表)打开的时候是不能带除了编号以外的索引的,也就是说必须要以编号排序的方式。
在图1的表单中,“取消”,“确定”这两个按钮的代码笔者就不详细介绍了,根据程序作用的不同这两个按钮的代码可能会有一些出入。“上一个”和“下一个”按钮的代码也很简单,主要是一些判断记录有没有到头或到尾的代码和跳转记录时刷新的代码,在此也不多做介绍。下面我们主要来看看“删除”这个按钮的代码,整个“删除”按钮的代码如图2所示:下面我来介绍一下各段代码的作用:
scyesno=messagebox(真的要删除吗?,4+32,确认) 这一句不用我多说吧?产生一个“确认”对话框。if scyesno=6 如果用户按下“确定”按钮。 b=recno() 首先把要删除的记录号储存下来,以下要用到。 delete 把选定的记录作删除标记。 pack 把选定的记录从数据库中彻底删除。 messagebox(已经搞定!,0+64,删除完毕) 产生一个“删除完毕”的对话框。 go bottom 数据库的记录指针移到尾部。if reccount()0 判断表中的记录个数是不是大于0,即还有没有记录。如果刚才删除的是数据库中最后 一条记录,不加这条判断语句截止的话 再向下执行会出错!所以这是一条相当重要的判断代码。 if brecno() .or. b=recno() 如果刚才删除的记录号小于或等于最后一条记录的记录号。(在此注意 一下上面“go bottom”这句代码的作用。) go b 跳转到刚才删除的记录的记录号上,从这一条记录开始修改记录的编号。 do whil .not. eof() 如里不到数据库结尾则重复执行以下修改编号的代码: replace 编号 with 编号-1 把当前记录的编号减1并保存。 skip 跳转到下一条记录。 enddo 结束假设和循环。 go b 这句要不要都行,主要是为了方便在表单里显示删除的那条记录的下一条记录的内容的。 endif 结束判断。endif 结束判断。endif 结束判断。 以下的代码是为了删除后刷新用的,大家一看就明白的,不用我说了。thisform.text1.refreshthisform.text2.refreshbo1.refreshthisform.text4.refreshthisform.text5.refreshthisform.text6.refreshthisform.text7.refreshthisform.edit1.refreshThisForm.Oleboundcontrol1.refresh 好了,代码向大家看完了,在此笔者再向大家介绍个建议:就是在图1的表单中,如果这是个修改记录的表单的话,有相当一部分书或资料上都介绍把各个控件的controlsource的值直接指向数据库中相对应的字段名,笔者认为这样做不是很好,因为这样的话如果不小心动了表单中各个文本框的值的话,程序是没有一点提示就直接修改数据库中相对应的字段的值的。笔者的做法是:把各个控件的controlsource的值指向一个变量,比如说“姓名”文本框的controlsource值指向xgxm,然后在“确定修改”按钮的代码里再用“replace 姓名 with alltrim(xgxm)”来真正修改数据库中的记录,而用户不按下“确定修改”这个按钮是不会修改记录的内容的,这样就避免了误操作而修改记录的可能性。当然在“确定修改”按钮的开头你还可以加上个“警告框”来作为提醒。
原创力文档


文档评论(0)