自动增加文本字段Access 2010表单

时间:2017-02-20 20:09:54

标签: access-vba ms-access-2010

我有一张跟踪文件的表格。我需要根据创建的部分和文档类型自动分配文档编号,然后自动增加该组合,以便在每次创建相同组合时添加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。团体的帮助将非常受欢迎!

2 个答案:

答案 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")