กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
466 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 นะครับ
จะทดสอบโดยการเปลี่ยนวันที่ในเครื่องคอมฯ ให้เป็นเดือน ตุลาคมดู เพื่อตรวจสอบการทำงานของโค้ดก็ได้ครับ
Time: 0.1477s