Office中国论坛/Access中国论坛

标题: ACCESS 自动生成编号,删除其中某一条后,再次生成编号时自动查找并补上 [打印本页]

作者: luyaqi    时间: 2012-6-12 15:49
标题: ACCESS 自动生成编号,删除其中某一条后,再次生成编号时自动查找并补上
本帖最后由 luyaqi 于 2012-6-12 15:52 编辑

我需要编写一个数据库,遇到以下几个问题。
1) 例如GZ-ZJ002中开始时间填写错误,则点击现点击“工装信息查询”窗体中的修改命令,可在“工装夹具”表中更改相应信息。
GZ-ZJ002归属部门为整机,由于归属部门选择错误,正确的归属部门为射频,现在需要将GZ-ZJ002编号删除,并生成新的编号。
2)下次录入时,点击“工装夹具录入”窗体中生成编号按钮,数据库可自动查找缺少了GZ-ZJ002,有GZ-ZJ001,GZ-ZJ003,并将GZ-ZJ002这条记录补上。
夹具编号是唯一,不会重复编号的生成是跟归属部门有关,为了防止外人误删表格中的数据,能否设置权限,管理员是可查看修改删除,其他人只能查看修改。最好不要有登录窗体太麻烦了。
非常感谢!!!!
作者: layaman_999    时间: 2012-6-13 10:46
1.实际操作中,如果夹具编号由人指定后编入数据库,则自动补空无意义。
2.如果夹具编号由数据库指定后再给夹具上编号,则自动补空有一定的意义,但是意义不大,因为新编的夹具尾号就大,这样可以让人知道哪些是新夹具,哪些是老夹具,如果要给他们自动补空,会给以后的管理带来问题(因为一个对应的夹具编号在数据库不小心被删除,但这个夹具在现实中却存在的,你用其他夹具来补了这个空位,很可能在现实中会出现两个相同编号的实体)。
作者: layaman_999    时间: 2012-6-13 11:06
如果一定要补空,可使用ADO循环尾号来实现
例如:GZ-ZJ开头的
dim rs as New ADODB.Recordset
set rs = CurrentProject.Connection.Execute("select 夹具编号 from 夹具表 where LEFT(夹具编号, 5) like 'GZ-ZJ'")
dim i as long,J as long,K as long
dim Str1 as string
do While not rs.Eof
  i = val(mid(rs!夹具编号, 6))
rs.next
  j = val(mid(rs!夹具编号, 6))
  if i+1<j then
   K= i+1
   exit do
loop

IF K<>0 THEN Str1="'GZ-ZJ" & Format(K,"000")

以上代码只是一个思路,还需要楼主去调整


作者: luyaqi    时间: 2012-6-13 16:12
是在录入了数据库后,发现录入的数据中有些地方填写错误,需要修改,如果是日期错误直接修改,如果是归属部门错误,就需要重新生成编号,而之前的编号要删除,例如GZ-ZJ001、GZ-ZJ002、GZ-ZJ003,中GZ-ZJ002归属部门错误,应属于GZ-PC001,那么就需要将GZ-ZJ002这条信息删除,而后来再次录入别的数据时,归属部门为GZ-ZJ,这样就要补上002这个编号,而不是接着GZ-ZJ003录入成为GZ-ZJ004




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3