以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关联列的编号1种方法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1201)

--  作者:gdtgl
--  发布时间:2008/11/21 19:46:00
--  关联列的编号1种方法

(只是提供1种方法(对于有特别编号要求的应能实现),外部数源库适用:
效果:根据每年排号。如2008年 就是:
20080001
20080002
.....
.....

2009年就是:
20090001
20090002
.....
....
20099999


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文件夹.rar

[此贴子已经被作者于2008-11-21 20:05:55编辑过]

--  作者:gdtgl
--  发布时间:2008/11/21 19:51:00
--  
表事件:增加行的代码:

Dim d2 As integer
Dim d3 As string = today.year
Dim cmd As New SQLCommand
cmd.Conne cti onN a m e  = "v"
cmd.CommandText = "Insert Into 表C (f002) Values(\'"& d3 &"\')"
cmd.ExecuteNonQuery()
cmd.CommandText = "Select count(f001) From 表C where f002 = \'"& d3 &"\' "
d2 = cmd.ExecuteScalar()
e.datarow("编号") = d3 + format(d2,"0000")
[此贴子已经被作者于2008-11-21 19:53:32编辑过]

--  作者:czy
--  发布时间:2008/11/21 20:36:00
--  
不错!学习了。
--  作者:程兴刚
--  发布时间:2008/11/21 20:52:00
--  

如果中间删除了行,再增加行不知会怎样,这是我最头疼的问题!


--  作者:gdtgl
--  发布时间:2008/11/21 20:54:00
--  
跟着删除表C相对应的行或以最大值判断
[此贴子已经被作者于2008-11-21 20:54:38编辑过]

--  作者:gdtgl
--  发布时间:2008/11/21 20:56:00
--  
1般系统可以做到不提供删除,只提供修改或作废
--  作者:gdtgl
--  发布时间:2008/11/22 9:58:00
--  
以下是引用程兴刚在2008-11-21 20:52:00的发言:

如果中间删除了行,再增加行不知会怎样,这是我最头疼的问题!

理解错了,以为你需要连继编号,中间怎么样删除,都不会影响到重复。因为以表C的行数为判断。而表c是不会显视出来给使用者。(sql server中,根本没机会操作) access这个,当然文件都可以删除。

[此贴子已经被作者于2008-11-22 10:04:47编辑过]

--  作者:小狐
--  发布时间:2008/11/22 18:29:00
--  
以下是引用程兴刚在2008-11-21 20:52:00的发言:

如果中间删除了行,再增加行不知会怎样,这是我最头疼的问题!

可不可以 不用 总行数+1 的方式 进行编号,

换成编号行最大数+1的方式 编号