今天看到一个朋友在贴吧中发的一个贴子,要求以日期为自动编号的ID,效果是:“2008年1月份,编号从200801001开始编,第二条则是200801002,如此类推,到2008年02月份时就变成200802001开始编号”。我将代码放在这里,与大家共享。
我的解决方法:采用数字型字段,每次添加这个字段
代码:
ttt是表名,db2是数据库名
id(数字型字段),title为标题(文本型字段)
conn.asp
< %
set rs=server.CreateObject("adodb.recordset")
db="database/db2.mdb"
set conn=server.CreateObject("adodb.connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
conn.open connstr
%>
添加文件
<!--#include file="conn.asp"-->
< %
'功能:实现以日期为编号的ID字段
'来源:www.aspprogram.cn
'开发:wangsdong
'原创文章,转载请保留此信息。
add=request("add")
If add="" Then
%>
<form name="form1" method="post" action="?add=save">
标题:<input type="text" name="title"> <input type="submit" value="提交">
</form>
<%
Else
y=Year(Now())
m=Right("0"&Month(Now()),2)
cid=y&m
title=request("title")
sql="select top 1 id from ttt order by id desc"
rs.open sql,conn,1,1
If rs.eof Then
cid=cid&"01"
Else
Lid=rs("id")
If cid=Left(lid,6) Then
cid=CLng(lid)+1
Else
cid=cid&"01"
End if
End If
rs.close
sql="insert into ttt(id,title) values("&cid&",'"&title&"')"
rs.open sql,conn,1,3
response.write "添加成功<br><a href=""?"">继续添加</a>"
End If
Set rs=Nothing
Set conn=Nothing
% >