设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 自动编号问题

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2014-9-7 11:50:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源起:由于结帐日期为20号,为了便于分月,增加一个“月份”字段。
要求:点击“单号”文本框时,按“月份”+流水号填入
大概意思:
先判断窗体中的“年月”与表中“年月”字段最后一行是否相同。
如果相同,则单号+1
如果不同,则判断为新的月份,按新月份+0001,开始新月份编号。
如果表中没有数据,则按新月份+0001,开始新编号(初始时)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
 楼主| 发表于 2014-9-7 11:52:36 | 只看该作者
注意:不是从日期中提取月份。
3#
发表于 2014-9-10 16:41:54 | 只看该作者
用Dmax提取编号字段处理一下不就完事了

点击这里给我发消息

4#
 楼主| 发表于 2014-9-10 20:49:16 | 只看该作者
todaynew 发表于 2014-9-10 16:41
用Dmax提取编号字段处理一下不就完事了

试了的,可是不会。应该还要加IIF判断吧?
5#
发表于 2014-9-11 11:41:27 | 只看该作者
本帖最后由 todaynew 于 2014-9-11 11:42 编辑
hannanrenjie 发表于 2014-9-10 20:49
试了的,可是不会。应该还要加IIF判断吧?


1、假设你的表名为:tbname,该表中需要自动编号的字段名为:num,该表中的年度为四位字符串,月度为两位字符串,则在标准模块中写自定义函数:
Public Function GetNewNum(byval year as string,byval month as string) as string
    '功能:返回新编号
    dim newNum as string
    newNum=Dmax("num","tbname","年度='" & year & "' and 月度="' & month & "'") '获取当前最大编号
    newNum=nz(newNum,year & month & "0000") '最大编号为空值时,转换为0000
    newNum=val(right(newNum,4))+1 '右取4位,加1
    newNum=year & month & format(newNum,"0000") '拼接新编号
    GetNewNum=newNum   '返回新编号
End Function

2、调用时,假设窗体上有名为年度控件、名为月度的控件和名为编号的控件:
在编号控件的控件来源中写:=GetNewNum([年度],[月度])

点击这里给我发消息

6#
 楼主| 发表于 2014-9-14 10:43:32 | 只看该作者
本帖最后由 hannanrenjie 于 2014-9-14 11:57 编辑

谢谢老师!我试试。
没有“年度”和“月度”字段,用“年月”字段来表示“帐务年月”的。
我们公司的“帐务年月”区间,如:
201408指2014年7月21日到2014年8月20日;那么在7月21日时,编号应为2014080001
201409指2014年8月21日到2014年9月20日;
201410指2014年9月21日到2014年10月20日;
所以,按“帐务年月+3位流水”的单号,一般从上月21号开始下个月新编号,
这样就需要从“年月”文本框中取数,并且结合表中的已有编号加1;
不是从日期字段或系统日期中取年月的问题,很有些麻烦。

7#
发表于 2014-9-14 20:10:43 | 只看该作者
hannanrenjie 发表于 2014-9-14 10:43
谢谢老师!我试试。
没有“年度”和“月度”字段,用“年月”字段来表示“帐务年月”的。
我们公司的“帐 ...

加个年度和月度字段,这些问题不都解决了嘛。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-26 23:03 , Processed in 0.091041 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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