Access交流中心

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

引用窗体数据后不能自动编号,为什么需要在文本框里空格一下才能生成编号,请帮忙解决。

张美美  发表于:2019-07-03 22:47:59  
复制

为什么需要机构年度编码数字9后面空格一下,档案号ID才能自动生成。

自动编码代码如下:

Option Compare Database
Private Function 自动编号(前缀 As String, 表名称 As String, 编号字段名称 As String, 位数 As Long) As String
    自动编号 = Nz(DMax(编号字段名称, 表名称, 编号字段名称 & " Like '" & 前缀 & "*'"), 0)
    自动编号 = Val(Right(自动编号, 位数)) + 1
    自动编号 = Format(自动编号, String(位数, "0"))
    自动编号 = 前缀 & 自动编号
End Function
Private Sub 前缀一_AfterUpdate()
    前缀二_AfterUpdate
End Sub

Private Sub 前缀二_AfterUpdate()
    Me.档案号ID = 自动编号(Nz(Me.前缀一 & "" & Me.前缀二 & ""), "tbl档案号", "档案号ID", 6)  ' 档案号ID: "前缀一前缀二001"
End Sub

Private Sub 保存_Click()
'On Error GoTo 错误处理标签
    Dim rst As DAO.Recordset

    If Nz(Me.报案号) = "" Then
        MsgBox "报案号-不能为空!", vbCritical, "提示:"
        Me.报案号.SetFocus
        Exit Sub
    End If


    Me.Refresh
    If DCount("*", "tbl档案号", "报案号='" & Me.报案号 & "'") > 0 Then
        MsgBox "此案件已归档,请核实", vbCritical, "警告"
        Me.报案号.SetFocus
        Exit Sub
    End If

    Set rst = CurrentDb.OpenRecordset("tbl档案号", dbOpenDynaset)
    rst.AddNew
    rst("档案号ID") = Me.档案号ID

    rst("报案号") = Me.报案号
    rst("前缀一") = Me.前缀一
    rst("前缀二") = Me.前缀二
    rst("柜号") = Me.柜号
    rst("列号") = Me.列号
    rst("层号") = Me.层号
    rst("案脊编号") = Me.案脊编号
    rst("案内编号") = Me.案内编号
    rst("保存年限") = Me.保存年限
    rst("销毁年度") = Me.销毁年度
    rst("备注") = Me.备注
    rst.Update
    rst.Clone

    Me.前缀一 = Null
    Me.前缀二 = Null
    Me.档案号ID = Null
    Me.报案号 = Null
    Me.柜号 = Null
    Me.列号 = Null
    Me.层号 = Null
    Me.案脊编号 = Null
    Me.案内编号 = Null
    Me.保存年限 = Null
    Me.销毁年度 = Null
    Me.备注 = Null

    Me.报案号.SetFocus

    '退出过程标签:
    MsgBox "保存成功!", vbInformation, "提示"
       DoCmd.Close , ""
End Sub
Private Sub 取消_Click()
    On Error Resume Next
    DoCmd.Close
End Sub

 

Top
chinasa 发表于:2019-07-04 08:10:56

“机构年度”对应的文本框的名字是什么?你自动编号的事件触发是在这个文本框的“更新后”事件吧?

 

Private Sub 前缀二_AfterUpdate()



张美美 发表于:2019-07-04 12:58:30

对应文本框名字是前缀二。不懂更新后事件是什么意思,请老师帮忙解决




chinasa 发表于:2019-07-05 08:03:13

“更新后事件”是指你这个字段被更新(比如:你输入了一个空格就是更新),则这段代码(事件)才执行。



chinasa 发表于:2019-07-05 08:05:25
你可以根据自己的需要,比如:你想在什么时候生成编号。如果你想窗体一打开就生成,则可以在窗体打开/加载事件中写代码。

张美美 发表于:2019-07-05 10:43:58
就是想一打开窗体生成自动编号,请老师指导怎么加代码

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