设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 924|回复: 5
打印 上一主题 下一主题

不规则自动编号寻求好的解决办法

[复制链接]
跳转到指定楼层
1#
发表于 2003-2-25 20:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
客户的输入是不规则的,但需自动编号,寻求解决办法:如我输入1时,下面的记录自动编号2,3,4,5;输入A1时,下面记录自动编号A2,A3,A4,A5;输入500时,下面的记录自动编号501,502,503,504,即有可能输入的内容不规则,再在输入内容的基础上+1自动编号。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2003-2-25 20:49:00 | 只看该作者
我的思路:
把各种有可能用到的编码方法写到表里去,然后用户才自行选择对应方法。(仅思路,未经试验,仅供参考,欢迎大家有好的提议)
3#
发表于 2003-2-25 21:32:00 | 只看该作者
有几个疑问:
1、第一个号码定下以后,跟在后面的是不是也定型了?比如第一个定为1,那下面都是数字,不会出现今天输1,明天输A1,后天输B1。
2、是不是后面一定是数字?这很关键。要是有这种情况就很难:A1B
如果我提的这两个问题的答案都是肯定的,那就不难。只需用Dmax取出最大号码,然后用LEN测定号码的长度,再做一个循环,在循环体内从最后一个字符开始逐位取字符,存在一个变量A里,当取到不是数字型的字符时就停止,然后把取完数字后剩下的字符存在另一变量B里,新的号码就是B&val(A)+1。
需注意的问题:比如"I001",用上面的方法取出A="I",B="001",新号码=A&val(001)+1=I2
这就出问题了,所以要加上format函数把"0"补足。
4#
 楼主| 发表于 2003-2-25 21:42:00 | 只看该作者
多谢寻欢兄的指点,字母后面一定是数字,但字母不是固定和A,有可能是其他字母,这个可通过取输入框的输入内容得到。这个编号是子窗体中的编号,每张主单中子窗体编号都不同的。



[此贴子已经被作者于2003-2-25 13:42:08编辑过]

5#
发表于 2003-2-28 02:11:00 | 只看该作者
我明白您的意思,只要后面一定是数字就行了,至于编号在哪都没关系,只要能用Dmax取出最大号strOldMax

dim strOne,strNum,strString,newNo,NumFormat as string
dim i,j,StrLen,NumLen as Integer

'开始取出后面的数字
StrLen=len(strOldMax)
strOne=right(strOldMax,1)
for i=1 to strLen
    strOne=(mid(strOldMax,StrLen-i,1)
    if IsNumeric(strOne) then
         strNum=strOne & strNum
    else
         exit for
    end if
next

NumLen=Len(strNum)

'把前面的字符保存在变量strString里
strString=left(strOldMax,StrLen-NumLen)

'为补“0”做准备
for j=1 to NumLen
    NumFormat=NumFormat & "0"
next

'生成新号码
newNo=strString & format(val(strNum)+1,NumFormat)

号码的生成程序大致是这样,如何取出最大号码应该不难。


[此贴子已经被作者于2003-2-27 18:11:00编辑过]

6#
发表于 2003-2-28 01:19:00 | 只看该作者
其实楚狐的这个问题更完善的解决办法还关系的表的设计。我的思路是:
客户表包括:ID(自动编号)、客户编码(字符)等字段
记录如:
   ID          客户编码
    1            A1
    2            A2
    3            AAA001
    4            AAA002
    5            iej01
    6            iej02
   ...            ...
当窗体进入新记录时,查找最大的ID,再用李寻欢的方法编号,可以保证客户编码与最近编码前面的字母相同




[此贴子已经被作者于2003-2-27 17:19:24编辑过]

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

本版积分规则

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

GMT+8, 2024-5-14 05:39 , Processed in 0.104929 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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