Office中国论坛/Access中国论坛

标题: 求助!如何实现自动+1功能? [打印本页]

作者: weianz    时间: 2008-5-15 16:14
标题: 求助!如何实现自动+1功能?
我在以前的文档中有一列数字可以自动自动实现+1功能的,比如说在某行的其中一列输入1001,如果上列是1000,那么我直接按键盘上的向下键,那么会在下行的此列中自动出现1002,可是这个功能现在突然消失了,有没有人可以告诉我怎么把这个功能再调出来啊?本人新手菜鸟,越简单越好!谢谢
作者: goto2008    时间: 2008-5-15 22:16
关注哦
作者: xuwenning    时间: 2008-5-16 00:27
[转载]自动编号解决方法大全

不知是否能满足你的需要[:50]

自动编号
一:
=IIf(Left(Nz(DMax("[jhd_id]","jinhuodan",""),0),6)<>Format(Date(),"yyyymm"),Format(Date(),"yyyymm") & "001",Format(Date(),"yyyymm") & Format(Val(Right(Nz(DMax("[jhd_id]","jinhuodan",""),0),3))+1,"000"))
二:
=nz(DLookUp("编号","登记表","[id]=DMax('id','登记表')"))+1
自动编号
方法一按时间自动编号:
dim a,b
a=dmax("[自动编号]","编号表")+1
b=format(date(),"yyyymm") & 00
if a>b then
me.自动编号=a
else:
me.自动编号=b+1
end if
方法二,按时间自动编号:
Dim a As String  
    a = Nz(DMax("销售单号", "销售帐单", ""), 0)
If Left(a, 6) <> Format(Date, "yyyymm") Then
    销售单号 = Format(Date, "yyyymm") & "01"
  Else
    销售单号 = Format(Date, "yyyymm") & Format(Val(Right(a, 2)) + 1, "00")
End If
方法三,按月分类自动编号:
Dim id, date2 As String  
   date2 = "GF" & [部门代码] & Format([入库日期], "YYYYMM")
   id = DMax("[rk编号]", "[入库单]", "[rk编号] Like '" & date2 & "???'")
   If IsNull(id) Then
      Me.RK编号 = date2 & "001"
   Else
      Me.RK编号 = date2 & Format(CStr(CInt(Right(id, 3)) + 1), "000")
   End If
按任意输入的日期值的年月自动编号
Dim a, b, c
c = Format(Me.凭证日期, "yyyymm")
b = Nz(c, 0) * 1000
a = Nz(DMax("[凭证号码]", "凭证", "format(凭证.凭证日期,'yyyymm')=format([forms]![凭证录入].[凭证日期],'yyyymm')"), 0) + 1
If a > b Then
Me.凭证号码 = a
Else:
Me.凭证号码 = b + 1
End If
新增一条记录时使用Right及DMax函数让字段的数字部分自动加1
答:使用Right及DMax函数返回字段“FOO”的数字部分的最大值,然后加1
表达式为:
="REC-" & right(DMax("FOO", "FOOTable"), _
Len(DMax("FOO", "FOOTable")) - _
InStr(1, DMax("FOO", "FOOTable"), "-")) + 1
注意:但如果很多用户或多个程序都使用DMax去实现这个结果的话,特别在一个很大的表中这个过程会很慢,所以建议使用DefaultValue,它仅仅使用DMax一次
程序如下,写在更新事件中
Private Sub SomeField_AfterUpdate()
Dim strMax as string
strMax =DMax("FOO", "FOOTable")
me!HiddenFooCtl = "REC-" & right(strMax, len(strMax) - Instr(1,strMax, "-")) +1
End Sub
如何用代码在“默认值”里实现自动编号?
如:第1号、第2号、...........、第198号..................
或:CN0001-A、CN0002-B、CN0003-B、.........、CN0004-A、CN1998-B……

这些要求都不需要在“表”的字段属性中完成,一般都是在界面编程中解决的。

用 dcount() 或者 dmax() 函数取值后用字符串组合的方法得到编号

  Private Sub Field1_Enter()
    If IsNull(Field1.value) Then
        Field1.value = "CN" & Format(CLng(DMax("mid(field1,3,4)", "table1") + 1), "0000") & "-A"
    End If
End Sub
作者: chenlugen    时间: 2008-8-21 22:02
靠,,,,不错....[:30]
作者: shanghejun    时间: 2008-9-5 14:43
不容易呀




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