设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: LucasLynn
打印 上一主题 下一主题

[模块/函数] 【原创 / 源码】连续自动编号器(ContinuedID)发布贴(当前版本:V2.01)

[复制链接]
跳转到指定楼层
1#
发表于 2005-9-22 06:26:00 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
(注意:本贴持续更新,请下载本贴中最后发布的最新版本。)

名称:连续自动编号器(ContinuedID)
版本:V1.0

介绍
  很多数据库中都使用了自动编号,自动编号确实好用,但是有些时候我们需要连续的编号,自动编号记录一旦被删除,以后就再也不能使用这个编号。
  本程序可以让你的窗体在新建记录的时候,自动使用最小的未使用编号,记录一旦被删除,这个编号也将被将来的新记录使用,无论你把编号删地怎么乱七八糟,本程序都能让你把所有删除的编号重新使用起来。

程序下载:(含示例窗体)
游客,如果您要查看本帖隐藏内容请回复



游客,如果您要查看本帖隐藏内容请回复




[此贴子已经被作者于2006-5-17 16:45:09编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2005-9-27 22:17:00 | 显示全部楼层
名称:连续自动编号器(ContinuedID)

版本:V2.0

介绍

  很多数据库中都使用了自动编号,自动编号确实好用,但是有些时候我们需要连续的编号,自动编号记录一旦被删除,以后就再也不能使用这个编号。

  本程序可以让你的窗体在新建记录的时候,自动使用最小的未使用编号,记录一旦被删除,这个编号也将被将来的新记录使用,无论你把编号删地怎么乱七八糟,本程序都能让你把所有删除的编号重新使用起来。

  本程序仅适用于单用户环境,请勿在多用户环境下使用,否则将导致数据冲突。



更新:(V1.0—V2.0)

1、无需再指定自动编号字段,改由系统自动识别。

2、全面支持增量不为1的非标准自动编号。

3、支持使用了别名(Alias)的自动编号字段。

3、V1.0在单一窗体模式下工作异常。V2.0调整代码,以广泛适用于单一窗体连续窗体数据表视图

4、V1.0在使用断号后,将改变数据表中的基数,如果使停止本软件,将引发编号重复错误。V2.0采用更安全的算法,确保任何时刻,数据表均完全合法,你可以在任何时候选择使用本软件或停止使用本软件。

源码

游客,如果您要查看本帖隐藏内容请回复




[此贴子已经被作者于2005-10-6 8:17:18编辑过]

3#
 楼主| 发表于 2005-10-6 13:27:00 | 显示全部楼层
V2.0的文件由于上传版本错误,因此根本无法使用。



[此贴子已经被作者于2005-10-27 17:00:06编辑过]

4#
 楼主| 发表于 2006-4-14 02:05:00 | 显示全部楼层
以下是引用kevindeng在2006-4-13 11:22:00的发言:


支持一下!!

但是发现两个小问题

1. 如果删除了第一个记录(ID=1)后,新加后的记录的ID不能改到1,而是接着往下编的.是不是这个程序只能保证其连续性,不能让自动编号从起始的位置1开始呢?

2. 如果表中没有数据,打开窗体时会报错.





这是一个逻辑上的问题。

逻辑而言,对于一张被修改过的数据表来说,没有任何办法可以知道他最初的自动编号基数是多少。比方说设计的时候是100,后来编号100的记录被删除了,你还能判断出这个表的起始编号是多少吗?

程序不能,人也不能。
5#
 楼主| 发表于 2006-4-16 01:34:00 | 显示全部楼层
以下是引用kevindeng在2006-4-14 9:06:00的发言:


呵呵,是这样的.

但是我的意思是,从1开始.大多都是从1开始的吧.

另外,能不能修正如果表中没有数据,打开窗体时会报错.

起始编号的问题,我当时也考虑过,虽然起始编号大多从1开始,但是还是有很多例外的时候,既然作为一个通用程序,我就无法忽略这一点,而且考虑到程序是开放源码的,如果有这样的需要,使用者直接改下源码也不是很麻烦的事情,所以最后就没有做这个功能。

空表出错的问题,我会尽快修正。
6#
 楼主| 发表于 2006-5-17 17:03:00 | 显示全部楼层
以下是引用付建新在2006-5-16 10:20:00的发言:
就是说 access 本身无法解决删除后编号不能连续的问题了





任何一种数据库都不能解决。



您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-22 11:05 , Processed in 0.119628 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表