ใส่โค้ดนี้ไว้ใน Before Update event procedure ของฟอร์มครับ
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Nz(Me.Sequence, "") <> "" Then Exit Sub
Me.Sequence = Nz(DMax("Sequence", "ชื่อเทเบิล", "Year = " & CStr(Me.Year) & " and Month = " & CStr(Me.Month)), 0) + 1
End Sub
ในโค้ดนี้ ถ้าช่อง Sequence ไม่ได้ใส่ค่าอะไรไว้ เมื่อทำการบันทึกเรคอร์ด โปรแกรมจะไปหาค่าถัดจากค่าสูงสุดที่หาได้ในปีและเดือนตามที่ป้อนในหน้าฟอร์ม แต่ถ้ามีค่า Sequence อยู่บนหน้าฟอร์มแล้ว โปรแกรมก็จะไม่ค้นหาให้ ก็ถือว่าใช้ค่าที่อยู่บนหน้าฟอร์มนั้นเลย
ยังไงก็ตาม ต้องระวังเกี่ยวกับการลบเรคอร์ดแล้วทำให้ค่า Sequence นั้นแหว่งไปด้วยนะครับ