สวัสดีครับ ผมต้องการความช่วยเหลือครับคือ จะแก้ไขการโชว์เลขงานครับ จากเดิมเลขงานคือ GSP24050001 คือ GSP คือรหัสงาน/ 24 คือ ปี 2024ฝ 05คือ เดือน 5 และ 0001คือเลขที่งาน ที่จะต้องรันต่อไปเรื่อยๆครับแต่พอเดือนเป็น 06 ก็จะกลับไปนับ 0001 ใหม่ คราวนี้ที่ต้องการเปลี่ยนใหม่เป็น GSP-0001-2405 คือ จะเอาเลขที่งานที่ต้องรันมาอยู่ตรงกลางและเอาปีกับเดือนไว้หลังสุด และพอเป็นเดือน 06 ก็ไม่ต้องนับ 0001 ใหม่แต่ให่รันต่อไปเลยครับ คราวนี้ข้องล่างนี้คือ VB code เดิม
Private Sub LOADINGDATE_AfterUpdate() เมื่อใส่วันที่แล้วให้รันฟังกชั่นนี้
If IsNull(cmbG) Then cmbG คือชื่อของช่อง GSP
Me.cmbG.SetFocus
MsgBox "Please choose Type !!!!"
Else
If Not IsNull(Me.JobNo) Then
MsgBox "This job has Job Number !!!!!"
Exit Sub
Else
Me.JobNo = AutotxtID
End If
End If
DoCmd.RunCommand acCmdSaveRecord
End Sub
และตามด้วย AutotxtID ตามด้านล่างเพื่อให้ตรงความต้องและใส่ข้อมูลในช่อง JobNo
Function AutotxtID() As String
Dim X As Variant
Dim bk, cmbG As String
cmbG = Me.cmbG
X = DMax("Right(JobNo,4)", "[tblExpBooking]", "Left([JobNo],6) = cmbG & Left([txtDate2], 4)") tblExpBooking คือ Table ข้อมูล / txtDate2 คือชื่อ TextBox ที่มีสูตรในการตัดปีและเดือน ในที่นี้คือ 2405
If IsNull(X) Then bk = 1 Else bk = X + 1
AutotxtID = cmbG & Left([txtDate2], 4) & Format(bk, "0000") ตรงนี้คือการนำ GSP และ 2405 และ 0001 มารวมกันครับ
End Function
ขอบคุณล่วงหน้าสำหรับความช่วยเหลือครับ