Office中国论坛/Access中国论坛

标题: [求助]问题出在哪里? [打印本页]

作者: zjcar    时间: 2004-2-29 07:54
标题: [求助]问题出在哪里?
有一个字段的值是类似“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编辑过]


作者: 数据如山    时间: 2004-2-29 14:37
1
【0001是大流水号(1年1个流水号)。当其他几个字段的值符合某些条件时,该字段的值自动生成,并且每次流水号自动递增1】
按一年一号的说法,如果要自增,条件应有判断年份的内容,你的条件考虑年份了吗?

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

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






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3