设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[其它] [求助]问题出在哪里?

[复制链接]
跳转到指定楼层
1#
发表于 2004-2-29 07:54:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
有一个字段的值是类似“A04020001”这样的数据,其中A(也可能要设置成B、C...)是设置好就固定的,0402是同一个数据表中某日期型字段值(如2004年02月01日中的年月)的简写,0001是大流水号(1年1个流水号)。当其他几个字段的值符合某些条件时,该字段的值自动生成,并且每次流水号自动递增1,而不符合那些条件时,该字段的值则为空白。并且当因为其他字段的值变动造成条件不再符合时,原来符合条件自动产生的号,就会自动恢复空白,因此而空缺出来的号,系统会在新生成号时自动补进。应该怎样进行?

参考PoseSky写了如下代码,并在窗体的“成为当前”事件中call NewID
Private Sub NewId()
Dim ID, date2 As String
If [条件1] <> "符合" And [条件2] <> "符合" Or [条件3] = "不符合" Then
Me.是否 = "否"
Me.编号 = Null
Else
   date2 = "A" & Format([日期], "YYMM")
   ID = DMax("[编号]", "[数据表1]", "[编号] Like '" & date2 & "????'")
  Me.是否 = "是"
   If IsNull(ID) Then
      Me.编号 = date2 & "0001"
   Else
      Me.编号 = date2 & Format(CStr(CInt(Right(ID, 3)) + 1), "0000")
    End If
End If
End Sub


但这样产生的编号不是锁定的,每次翻动记录时号码都会变动(+1)。而且,当条件不符合时也不会把空缺的编号补上。流水号也不是按年度的,而是按月的。

小弟初学,请各位多多指教!谢谢!

[此贴子已经被作者于2004-2-28 23:54:56编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-2-29 14:37:00 | 只看该作者
1
【0001是大流水号(1年1个流水号)。当其他几个字段的值符合某些条件时,该字段的值自动生成,并且每次流水号自动递增1】
按一年一号的说法,如果要自增,条件应有判断年份的内容,你的条件考虑年份了吗?

2
你的这段代码,判断条件后,按月份增流水号或置空。没有补号部分。
自动补号要写另外的代码。要体现你流水号的按年还是按月和空缺编号补充规则。

[此贴子已经被作者于2004-2-29 6:39:54编辑过]

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

本版积分规则

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

GMT+8, 2025-1-10 22:58 , Processed in 0.110436 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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