e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 数据库 >> FoxPro教程 >> VFP6.0中实现记录删除后自动调整编号 >> 教程正文
 
教程搜索
 
 
相关教程
  • 二级FoxBASE上机考试技巧
  • VFP中状态栏控件的使用说明
  • Visual FoxPro 9.0更强大了
  • VFP智能感应的二次开发
  • VFP中多条件数据查询程序的实现
  • VFP应用程序多媒体徽标的实现
  • VFP 6.0网络编程应注意的问题
  • VFP程序的五点经验
  • Visual Foxpro通用报表打印程序
  • 在ASP.NET中使用Visual FoxPro7.0
  • 修复DBF数据表文件的简单方法
  • 在VisualFoxPro5.0中激活InternetExpl
  • 在VFP中制做异型窗口
  • Visual FoxPro 9 集成开发环境新特性
  • Visual FoxPro 9.0 的报表设计器
  • Visual FoxPro 9中新的数据处理方式
 
 

图文教程


  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”

  • 综合运用Office 2007批量制作奖状

  • 没有系统盘如何才能修复受损系统?

  • 巧妙运用Excel中边界的附加功能!
 
 
赞 助 商
 
 
VFP6.0中实现记录删除后自动调整编号
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

好,言归正传,下面就来看看笔者是怎么样实现记录删除后自动调整记录编号这一功能的。

首先大家来看一下我的这个人事管理系统的删除表单:见图1,这里面的各个控件我想大家一看就知道是干什么用的了,在此我就不再介绍,有一点要说明的是,数据库(或表)打开的时候是不能带除了编号以外的索引的,也就是说必须要以编号排序的方式。

在图1的表单中,“取消”,“确定”这两个按钮的代码笔者就不详细介绍了,根据程序作用的不同这两个按钮的代码可能会有一些出入。“上一个”和“下一个”按钮的代码也很简单,主要是一些判断记录有没有到头或到尾的代码和跳转记录时刷新的代码,在此也不多做介绍。下面我们主要来看看“删除”这个按钮的代码,整个“删除”按钮的代码如图2所示:下面我来介绍一下各段代码的作用:

===========================================

scyesno=messagebox("真的要删除吗?",4+32,"确认") &&这一句不用我多说吧?产生一个“确认”对话框。

if scyesno=6 &&如果用户按下“确定”按钮。

b=recno() &&首先把要删除的记录号储存下来,以下要用到。

delete &&把选定的记录作删除标记。

pack &&把选定的记录从数据库中彻底删除。

messagebox("已经搞定!",0+64,"删除完毕") &&产生一个“删除完毕”的对话框。

go bottom &&数据库的记录指针移到尾部。

if reccount()>0 &&判断表中的记录个数是不是大于0,即还有没有记录。如果刚才删除的是数据库中最后 一条记录,不加这条判断语句截止的话 再向下执行会出错!所以这是一条相当重要的判断代码。

if b<recno() .or. b=recno() &&如果刚才删除的记录号小于或等于最后一条记录的记录号。(在此注意 一下上面“go bottom”这句代码的作用。)

go b &&跳转到刚才删除的记录的记录号上,从这一条记录开始修改记录的编号。

do whil .not. eof() &&如里不到数据库结尾则重复执行以下修改编号的代码:

replace 编号 with 编号-1 &&把当前记录的编号减1并保存。

skip &&跳转到下一条记录。

enddo &&结束假设和循环。

go b &&这句要不要都行,主要是为了方便在表单里显示删除的那条记录的下一条记录的内容的。

endif &&结束判断。

endif &&结束判断。

endif &&结束判断。

&&以下的代码是为了删除后刷新用的,大家一看就明白的,不用我说了。

thisform.text1.refresh

thisform.text2.refresh


thisform.combo1.refresh

thisform.text4.refresh

thisform.text5.refresh

thisform.text6.refresh

thisform.text7.refresh

thisform.edit1.refresh

ThisForm.Oleboundcontrol1.refresh

===============================================

好了,代码向大家看完了,在此笔者再向大家介绍个建议:就是在图1的表单中,如果这是个修改记录的表单的话,有相当一部分书或资料上都介绍把各个控件的controlsource的值直接指向数据库中相对应的字段名,笔者认为这样做不是很好,因为这样的话如果不小心动了表单中各个文本框的值的话,程序是没有一点提示就直接修改数据库中相对应的字段的值的。笔者的做法是:把各个控件的controlsource的值指向一个变量,比如说“姓名”文本框的controlsource值指向xgxm,然后在“确定修改”按钮的代码里再用“replace 姓名 with alltrim(xgxm)”来真正修改数据库中的记录,而用户不按下“确定修改”这个按钮是不会修改记录的内容的,这样就避免了误操作而修改记录的可能性。当然在“确定修改”按钮的开头你还可以加上个“警告框”来作为提醒。

如果大家有什么更好的建议欢迎来信交流:email:xingyuwan@21cn.com。


  • 上一篇教程: Visual FoxPro9.0中扩展报表系统功能
  • 下一篇教程: Visual FoxPro 9中新的数据处理方式
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.