ทำอย่างนี้ได้อย่างไรหรือครับ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 398   4
URL.หัวข้อ / URL
ทำอย่างนี้ได้อย่างไรหรือครับ

ผมเขียนโปรแกรมออกใบเสร็จในหน่วยงาน แล้วอยากให้เมื่อถึงเดือนตุลาคมของทุกปีให้ใบเสร็จเริ่มเป็น 1 ใมห่ทุกครั้งจะต้องเขียน Code อย่างไรหรือครับ ฟอร์แมตของใบเสร็จ YY00000 โดยที่ YY เป็นเลขท้านสองตัวของปีครับ อีกห้าตัวเป็น Running number ครับ

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

1 @R00894
ไม่ทราบว่าใบเสร็จนี้เป็น Primary Key หรือเปล่าครับ อาจจะมีปัญหาการซ้ำซ้อนได้ครับ เช่น ถ้าในเดือนมกราคม 2545 ออกใบเสร็จใบที่ 200 จะได้ 4500200 และถ้าภายในเดือนธันวาคม 2545 ออกใบเสร็จถึงใบที่ 200 จะได้ 4500200 เหมือนกัน ไม่ทราบว่าได้เตรียมการแก้ปัญหาการซ้ำกันนี้หรือยังครับ
2 @R00895
ผมแนะนำว่า พอขึ้นเดือนเดือนตุลาให้เปลี่ยน YY เป็นของปีถัดไปเลยจะดีกว่าครับ แล้วใช้โค้ดข้างล่างนี้ Private Sub ReceiptID_DblClick(Cancel As Integer) Dim strYear As String, dte As Date, intMax As Integer If Format(Date, "m") >= 10 Then dte = DateSerial(Year(Date) + 1, Month(Date), Day(Date)) Else dte = Date End If strYear = Format(dte, "YY") If Me.ReceiptID = "" Or IsNull(Me.ReceiptID) Then If DCount("Val(Mid([ReceiptID ],3))", "tblReceipt", "Left([ReceiptID],2) = '" & _ strYear & "'") = 0 Then Me.ReceiptID = strYear & "00001" Else intMax = DMax("Val(Mid([ReceiptID ],3))", "tblReceipt", _ "Left([ReceiptID ],2) = '" & strYear & "'") Me.ReceiptID = strYear & Format(intMax + 1, "00000") End If End If End Sub ตัวอย่างอยู่ที่ http://agserver.kku.ac.th/basiceng/Kob_AutoReceipt.zip ครับ
3 @R00896
ขอบคุณอาจารย์มากครับ สำหรับคำแนะนำ
4 @R00902
ลืมบอกไป ถ้าต้องการให้ออกรหัสเอง ให้คลิก 2 ทีที่ช่อง ReceiptID นะครับ จะทดสอบโดยการเปลี่ยนวันที่ในเครื่องคอมฯ ให้เป็นเดือน ตุลาคมดู เพื่อตรวจสอบการทำงานของโค้ดก็ได้ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0571s