สร้างGENรหัสอัตโนมัติ
กระทู้เก่าบอร์ด อ.Yeadram

 2,061   2
URL.หัวข้อ / URL
สร้างGENรหัสอัตโนมัติ

รบกวนหน่อยค่ะ คือกำลังทำโปรเจคอยู่ค่ะไม่ค่อยเข้าใจการเขียนสคิปเท่าไรอยากรบกวนแนะนำโค้ดให้หน่อยค่ะ รูปแบบที่อยากได้คือ ASTYYMM000 (ตัวอักษร AST+ปี(YY)+เดือน(MM)+000 ลำดับ นะค่ะ รบกวนผู้รู้แนะนำหน่อยค่ะ

2 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R11415
ลองค้นในเวปบอร์ดนี้ด้วยคำว่า "running no" หรือ "run no" หรือ "รันเลขที่" ดูครับ มีการพูดถึงเยอะแล้ว
2 @R11443
สมมติ Field ที่ใช้ Running No ชื่อ DocNo
ไปที่ Design ของ Form ที่ต้องการ
คลิก Mouse ขวาที่ Filed ที่ชื่อ DocNo
เลือก Properties > เลือกที่ Tap ชื่อ Event > เลือก On Dbl Click
แล้วใส่ Code ข้างล่างนี้ลงไป

Dim strDate As String
Dim intNum As Integer, intMax As Integer
Dim strSuffix As String

strDate = Format(Now(), "yymm")

If Me.DocNo = "" Or IsNull(Me.DocNo) Then
    If IsNull(DMax("Val(Mid([DocNo],8))", "TblDocNo", "Mid([DocNo],4,4) = '" & strDate & " '")) Then
        ' ถ้าอักษรที่นำหน้า 2 ตัว ใส่เลข 7 แทนเลข 8                             และใส่เลข 3,4 แทนเลข 4,4
        ' ถ้าอักษรที่นำหน้า 3 ตัว ใส่เลข 8 แทนเลข 7                             และใส่เลข 4,4 แทนเลข 3,4
        Me.DocNo = "AST" & strDate & "001"
       
    Else
        intMax = DMax("Val(Mid([DocNo],8))", "TblDocNo", "Mid([DocNo],4,4) = '" & strDate & " '")
          ' ถ้าอักษรที่นำหน้า 2 ตัว ใส่เลข 8 แทนเลข 7                             และใส่เลข 3,4 แทนเลข 4,4
          ' ถ้าอักษรที่นำหน้า 3 ตัว ใส่เลข 8 แทนเลข 7                             และใส่เลข 4,4 แทนเลข 3,4

        Select Case intMax
            Case Is >= 99
               Me.DocNo = "AST" & strDate & "" & intMax + 1

            Case Is >= 9
               Me.DocNo = "AST" & strDate & "0" & intMax + 1

            Case Is < 9
               Me.DocNo = "AST" & strDate & "00" & intMax + 1

            End Select
            
    End If
    
End If

เวลาใช้งาน ก็เปิด Form ขึ้นมา แล้วทำการ Double click ที่ Field ชื่อ DocNo
ลองดูครับ
ขอบพระคุณมากๆ ครับ

@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.4571s