我有一张跟踪文件的表格。我需要根据创建的部分和文档类型自动分配文档编号,然后自动增加该组合,以便在每次创建相同组合时添加1。 例如:
DocType |部分| DocIdentifier
- 现场方法| QAQC | FMQA-01
- 现场方法| QAQC | FMQA-02
- 现场方法|标准| FMWQS-01
- 化学方法|标准| CMWQS-01
我尝试了很多不同的东西 - 这是我最近的尝试。我在我的表单中包含了一个隐藏字段(showDocNum)来连接DocType&部分,但我有一点时间搞清楚如何添加数字。
Private Sub cboSection_Change()
Dim strMax As String
strMax = DMax("DocIdentifier", "tblDocuments")
Me!Alpha = Me!cboDocType.Column(2) & Me.cboSection.Column(2) & "-"
Me!txtDocIdentifier = Me!Alpha & Right(strMax, Len(strMax)) + 1
End Sub
和
Private Sub txtDocIdentifier_GotFocus()
Dim varMax As Variant
varMax = DMax("DocIdentifier", "tblDocuments")
Me!txtDocIdentifier = Me!Alpha & Right(varMax, 2) + 1
End Sub
我还尝试在表fldNumber中添加一个额外字段,并尝试将fldAlpha与fldNumber结合起来创建一个复合PK DocIdentifier。团体的帮助将非常受欢迎!
答案 0 :(得分:0)
我给自己留下了深刻印象,我使用
使其成功 Private Sub cboSection_Change()
showDocNum = Me!cboDocType.Column(2) & Me.cboSection.Column(2) & "-"
End Sub
Private Sub txtDocIdentifier_GotFocus()
Me!txtSequence = Nz(DMax("[MyPKNumber]", "tblDocuments", "[ShowDocNum] ='" & Me.[showDocNum] & "'"), 0) + 1
Me!txtDocIdentifier = "WQD" & [showDocNum] & Format([MyPKNumber], "00")
End Sub
感谢您愿意提供帮助!
答案 1 :(得分:0)
您应该使用 AfterUpdate 事件:
Private Sub cboSection_AfterUpdate()
Dim Prefix As String
Dim Identifier As Integer
Prefix = Me!cboDocType.Column(2) & Me.cboSection.Column(2) & "-"
Identifier = DMax("DocIdentifier", "tblDocuments", "DocIdentifier Like '" & Prefix & "*'") + 1
Me!txtDocIdentifier.Value = Prefix & Format(Identifier, "00")
End Sub
如果你有一个文件编号,比如“FMQA-03”,你可以通过这种方式找到下一个:
NextDocNo = Split(DocNo, "-")(0) & Format(Val(Split(DocNo, "-")(1)) + 1, "\-00")