รบกวนขอไฟล์ตัวอย่างของการ รันเลขแบบมีตัวอักษรด้วยครับ



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

17 มี.ค. 63 , 11:02:11
อ่าน 349 ครั้ง

pattan0013

สวัสดีครับ ผมอยากจะขอรบกวนผู้รู้ที่มีไฟล์ตัวอย่างการรันเลขแบบมีตัวอักษรรวมอยู่ด้วยครับ ตัวอย่างเช่น ABC20030001 โดย

ABC คือหมวด
20 คือ ปี
03 คือเดือน
0001 คือเลขที่

และอยากให่เลขที่นับ 1 ใหม่ทุกเดือนครับ

 
โพสต์นี้ได้รับคำขอบคุณจาก: ิboonyarit

17 มี.ค. 63 , 14:27:27
ตอบกลับ #1

UnKnown

ไฟล์ฉบับเหมือนจะง่ายไม่ผูกอะไรครับ :shout:
จากกระทู้เก่าท่านเห็นมี Value แยกหมวดอยู่ผมเลยแอบเอามาใส่ในนี้ให้มีเป็นแนวด้วยนะครับ หรือก็คือ ID จะรันแยกหมวดและปีเดือนครับ(แต่ Table2 จะไม่เทพอย่างท่าน PNR )
โค๊ด: [Select]
Private Sub cmd_QuNew_Click()
If IsNull(cmbG) Then
    Me.cmbG.SetFocus
    MsgBox "เลือกกลุ่ม"
Else
    Me.txtID = AutotxtID
End If
End Sub

Function AutotxtID() As String
Dim X As Variant
Dim bk, cmbG As String
    cmbG = Me.cmbG
    X = DMax("Right(ID,4)", "[Table1]", "Left([ID],7) = cmbG & Left([txtDate2], 4)")
    If IsNull(X) Then bk = 1 Else bk = X + 1
    AutotxtID = cmbG & Left([txtDate2], 4) & Format(bk, "0000")
End Function

หรือตัวอย่างของท่าน PNR มีระบบผูกตาราง,คิวรี่,ฯลฯ
https://www.thai-access.com/index.php?topic=1063.msg4744#msg4744

 
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

19 มี.ค. 63 , 10:10:23
ตอบกลับ #2

pattan0013

ไฟล์ฉบับเหมือนจะง่ายไม่ผูกอะไรครับ :shout:
จากกระทู้เก่าท่านเห็นมี Value แยกหมวดอยู่ผมเลยแอบเอามาใส่ในนี้ให้มีเป็นแนวด้วยนะครับ หรือก็คือ ID จะรันแยกหมวดและปีเดือนครับ(แต่ Table2 จะไม่เทพอย่างท่าน PNR )
โค๊ด: [Select]
Private Sub cmd_QuNew_Click()
If IsNull(cmbG) Then
    Me.cmbG.SetFocus
    MsgBox "เลือกกลุ่ม"
Else
    Me.txtID = AutotxtID
End If
End Sub

Function AutotxtID() As String
Dim X As Variant
Dim bk, cmbG As String
    cmbG = Me.cmbG
    X = DMax("Right(ID,4)", "[Table1]", "Left([ID],7) = cmbG & Left([txtDate2], 4)")
    If IsNull(X) Then bk = 1 Else bk = X + 1
    AutotxtID = cmbG & Left([txtDate2], 4) & Format(bk, "0000")
End Function

หรือตัวอย่างของท่าน PNR มีระบบผูกตาราง,คิวรี่,ฯลฯ
https://www.thai-access.com/index.php?topic=1063.msg4744#msg4744

ขอบคุณมากครับ

 

13 พ.ค. 63 , 16:30:19
ตอบกลับ #3

pattan0013

รบกวนครับ ผมไป adapt ตาม Table ผม กลายเป็นเลขข้างหลังไม่บวกครับ กดยังไงก็ยัง 0001 อยู่ดี รบกวนดูได้ไหมครับ

Private Sub cmd_QuNew_Click()
If IsNull(cmbG) Then
    Me.cmbG.SetFocus
    MsgBox "เลือกกลุ่ม"
Else
    Me.JobNo = AutotxtID
End If
End Sub
Function AutotxtID() As String
Dim X As Variant
Dim bk, cmbG As String
    cmbG = Me.cmbG
    X = DMax("Right(JobNo,4)", "[Export_Booking_Table]", "Left([JobNo],7) = cmbG & Left([txtDate2], 4)")
    If IsNull(X) Then bk = 1 Else bk = X + 1
    AutotxtID = cmbG & Left([txtDate2], 4) & Format(bk, "0000")
End Function

txtID คือช่องที่ต้องการให้ TE20050001 โชว์
txtDate คือที่ผมทำ Format ให้เป็น 2005

และปัญหาคือ 0001 พอเปิดอันที่ 2 มันไม่เป็น 0002 ครับ จาก Code ข้างผมพลาดตรงไหนครับ???
และ Combo box ที่ให้พนักงานเลือกมี TE, SE และ AE อยากให้ไม่ว่าเลือกตัวไหน เลข 0001 ก็รันต่อกันไปครับ

ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 13 พ.ค. 63 , 21:17:19 โดย thaiaccboard »

 

13 พ.ค. 63 , 16:37:00
ตอบกลับ #4

UnKnown

จากเดิมอักษรย่อกลุ่มคือ TEX SEX และ AEX ซึ่งนับได้ 3 ตัวอักษร
ท่านใช้ TE, SE และ AE ซึ่งนับได้ 2 ตัวอักษร ดังนั้นแก้เลขตัวนี้ครับ
X = DMax("Right(JobNo,4)", "[Export_Booking_Table]", "Left([JobNo],6) = cmbG & Left([txtDate2], 4)")

ปล.ถ้าจากไฟล์ตัวอย่างแก้ชื่อย่อในเทเบิ้ลที่เก็บชื่อกลุ่มด้วยนะ

 
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

13 พ.ค. 63 , 16:43:11
ตอบกลับ #5

pattan0013

ขอบคุณมากครับ :love: :love: :love: :love:

 


บอร์ดเรียนรู้ Access สำหรับคนไทย