Access交流中心

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

[5分]平台中的acchelp_autoid在使用中碰到不能自递增?

平民百姓  发表于:2009-05-04 20:37:23  
复制

我的销售流水号一直是用平台的acchelp_autoid生成的。格式是:XS2009010001

一直用的很正常,但是现在到了5月份,生成了第一条销售流水号是XS2009050001

但是到新增第二条记录时,还是一样生成了XS2009050001,所以导致系统无法使用。

 

自动生成流水号的代码如下:

 

Private Sub Autolsh()
'功能:生成报销明细编号
    Dim YM As String
    Dim YMold As String
    '使mxID文本框有效,写入数据
    Me.LSH.Enabled = True
    Me.LSH.SetFocus
    '生成编号前缀,格式为xs200701,即年四位,月两位
    YM = "XS" & Year(Date) & Format(Month(Date), "00")
    If CheckRecords("tblcodeXS") = True Then    'checkRecords函数说明见平台帮助第十二章
        '如果表中存在记录,则去取得表最后一条记录的年月
        YMold = Left(DLast("LSH", "tblcodeXS"), 8) '取tblXsddzj表中最后一条记录的xsddid字段的值的前8位
        If YM = YMold Then    '如果系统月份与最后一条记录月份相同,则增加1
            Me.LSH = acchelp_autoid(YM, 4, "tblcodeXS", "lsh")    'acchelp_autoid函数说明见平台帮助第十二章
        Else    '如果不相同,则按新月份从1开始编号
            Me.LSH = YM & "0001"
        End If
    Else
        '如果表中不存在记录,则生成第一条编号
        Me.LSH = acchelp_autoid(YM, 4, "tblcodeXS", "lsh")
    End If

    '让khid文本框获得焦点
    Me.kehumingc.SetFocus
    '使用xsddid文本框无效,以防止操作员误修改数据
    Me.LSH.Enabled = False
End Sub

 

希望大家帮忙看看。

 

Top
竹笛 发表于:2009-05-04 20:42:52

将Dlast改成Dmax,下面代码的红色部分,试一下。

 

If CheckRecords("tblcodeXS") = True Then    'checkRecords函数说明见平台帮助第十二章
        '如果表中存在记录,则去取得表最后一条记录的年月
        YMold = Left(DMax("LSH", "tblcodeXS"), 8)



平民百姓 发表于:2009-05-04 20:46:59
好了,谢谢!!

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