设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

可以制作日期流水号吗?

[复制链接]
11#
发表于 2003-2-15 01:46:00 | 只看该作者
其实我当初没使用日期是因为:
如果,MDB文件不只一台机子使用.而两台机子的日期不一致,而日期又是以 Now() 或 Date()函数的返回值为准的话.
岂不是产生的单号有可能重复,而单号重复显然是不允许的
我想的话:
如果写太多代码去检查有无重复有点不切实际吧.
请教 Eio 如何处理
12#
 楼主| 发表于 2003-2-15 02:06:00 | 只看该作者
日期+读取ID最大值+流水号,一定不重复!
13#
发表于 2003-2-15 03:21:00 | 只看该作者
这是当然,但有一点.
如:A机为1月5日,B机为1月4日
A机今日产生了 200301050001
但随后B机产生的却是 200301040002(200301040001已由A机于昨日产生)
200301040002 却在 200301050001 之后,岂非荒唐!!!
还有就是这种方式产生的单号有一个不连续的问题,对人工(有时需要人工作为补充)判断单据短少,单据出现顺序等带来一定困扰.
14#
发表于 2003-2-15 04:17:00 | 只看该作者
TO: Roadbeg
這樣的需求也是可以理解的,成熟的立品做流水號都會有几种方案讓用戶自行選擇的.
故現在只是討論技術問題,如何實現罷了,是否合适并不在討論之列吧.
我以前是用SQL的 LIKE將當天最大的單號選出來,然后+1即可.
15#
发表于 2003-2-15 04:33:00 | 只看该作者
技术当然服务于现实.
其实我把日期省了,只留月份的方法也只是偷懒的方法且也不见得能避免这个问题.
真正的解决之道是:以 SQL SERVER 所在机子的日期为准.
我之所以把这个话题提出来,只不过是想提醒大家在设计时,不仅要注意程序的准确有效,还得多增加一些人性化的东西,毕竟,程序还是人在用!!

Re Marco2
16#
 楼主| 发表于 2003-2-15 19:17:00 | 只看该作者
to:Roadbeg
    如果部门人员手工输入200301040002,那不是一样可以吗,如果限制日期的话,那么全部机器只能根据服务器的时间啦。
    其实最大ID是解决了时间误差问题,试想一下:
2003011510010001(1001是ID)
2003011410020001
2003011510030002
谁大,如果想排顺序,只要将ID放在前面:
XS+ID+流水号就可以啦。
反正觉得,流水号只是没有单号的单号,并不重要,最小还有单据的日期和内容啊,如果输入的人员执意要乱来的话,数据库根本无法限制。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 05:17 , Processed in 0.105655 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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