รบกวนสอบถามนะคะ มือใหม่มากๆ ต้องการ การ run number โดยไม่ใช้ autonumber จุดประสงค์เพื่อให้ข้อมูลซ้ำกันได้ แต่ต้องการให้แสดงค่าเริ่มต้นเมื่อเพิ่มระเบียนใหม่ ต้องการให้ไปเอาค่า number ในระเบียนสุดท้ายมา + 1 ตรง sub on click ต้องกำหนดอย่างไรคะ หรือมีวิธีอื่นแบบไหน รบกวนผู้รู้ด้วยนะคะ เพิ่งหัดทำครั้งแรกค่ะ ความรู้งูๆปลาๆมากๆ
ฟอร์มที่จะสร้างเป็นแบบไหนครับ
อันนี้เป็นตัวอย่าง การสร้าง Running Number แทน AutoID นะครับ
ใช้การค้นหาค่าส่าสุดจากตารางเป้าหมายแล้วนำมา+1 เมื่อกดเปลี่ยนระเบียนใหม่
คำสั่งบน Module
Function getDigits(s As String) As String
Dim retval As String
Dim i As Integer
retval = ""
For i = 1 To Len(s)
If Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= "9" Then
retval = retval + Mid(s, i, 1)
End If
Next
getDigits = retval
End Function
คำสั่งที่ปุ่ม CommandBotton ที่ใช้กดเพื่อขึ้นระเบียนใหม่
Private Sub AddNewRecord_Click()
DoCmd.GoToRecord , , acNewRec
If Me.NewRecord = True Then
Dim strOldID As String
Dim lngCurrentNumber As Long
Dim lngNextNumber As Long
If IsNull(DLast("[NO]", "tblDATA")) Then
Me.No = "1"
Else
strOldID = DLast("[NO]", "tblDATA")
Debug.Print strOldID
lngCurrentNumber = getDigits(strOldID)
Debug.Print lngCurrentNumber
lngNextNumber = lngCurrentNumber + 1
Debug.Print lngNextNumber
Me.No = lngNextNumber
End If
End If
End Sub
หมายเหตุ
tblDATA คือตารางที่ Bound กับฟอร์ม
DLast("[
NO]", "tblDATA ส่วน NO นี้คือชื่อ Field ในตารางที่จะหาค่าล่าสุดเพื่อมา Running Number
ตัวอย่างด้านล่าง