Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]多条件的自动编号

青苹  发表于:2012-02-06 19:55:21  
复制

请教,多条件下的自动编号问题。

条件:1是否有密级--无,

        1)是否有分类编号存在,无----------从001开始

        2)是否存在的编号在当年有,无------从001开始(新的一年编号从001开始)

 

        3)是否有分类编号存在,有----------从+1,继续编号

        4)是否存在的编号在当年有,有------从+1,继续编号

     

      2是否有密级--有,在编号中增加/MM

        1)是否有分类编号存在,无----------从001开始

        2)是否存在的编号在当年有,无------从001开始(新的一年编号从001开始)

 

        3)是否有分类编号存在,有----------从+1,继续编号

        4)是否存在的编号在当年有,有------从+1,继续编号    

点击下载此附件

 

Top
青苹 发表于:2012-02-06 20:27:58
如文件类别01,文件类型是报告,应编成JK0105.0012012A,却编成JK0105.0232012A,按2011年的分类继续编号了,没有从2012年的001开始。

王政 发表于:2012-02-07 02:10:41

   

    原先编了个自动编号函数,在您这个例子中不能直接使用,为了用上这个函数,先建立个查询,用查询的结果来编号,然后将编号处理下,赋值给文件编号。

点击下载此附件

金宇 发表于:2012-02-07 09:36:46

   Dim AA As String
   Dim YYBB As String
    AA = Me.FileType & Me.FlieStyle
    YYBB = Year(Date) & Me.TBB  '年份版本合并字符串
    maxID = Nz(DMax("mid([fileid],8,3)", "tblfile", "mid([fileid],3,4)='" & AA & "' and right([fileid],5)='" & YYBB & "'"), 0)  '取对应条件的最大编号
    If Me.CheckMJ = 0 Then     '判断是否有密级
        If maxID = 0 Then
            Me.FileID = "JK" & Me.FileType & Me.FlieStyle & "." & "001" & YYBB
        Else
            Me.FileID = "JK" & Me.FileType & Me.FlieStyle & "." & Format(Val(maxID) + 1, "000") & YYBB
        End If
    Else
         If maxID = 0 Then
            Me.FileID = "JK" & Me.FileType & Me.FlieStyle & "." & "001" & "/" & Me.TMJ & YYBB
        Else
            Me.FileID = "JK" & Me.FileType & Me.FlieStyle & "." & Format(Val(maxID) + 1, "000") & "/" & Me.TMJ & YYBB
        End If
    End If

 

点击下载此附件

王政 发表于:2012-02-07 20:13:19
学习了金宇的解答,让自己进步不少,特别是对Nz函数和Dmax函数有了进一步的认识。

青苹 发表于:2012-02-07 21:00:51
谢谢金宇和王政。王政的方法也给我很大启示。非常感谢哈!

总记录:5篇  页次:1/1 9 1 :