กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
442 4
URL.หัวข้อ /
URL
ทำงานพร้อมกันให้เลขรันต่อเนื่องกัน
ควรออกแบบฟอร์มหรือตารางอย่างไร จึงสามารถให้ผู้ใช้งาน หลายๆคนใช้งานได้พร้อมกันโดยข้อมูลเลขลำดับต่อเนื่องกัน เช่นนายกกำลังKEYข้อมูลลำดับที่ 1 ขณะเดียวกันนายข.เปิดไฟล์นั้นเหมือนกันและกำลังKEY อีก 1RECORD เหมือนกัน แต่ให้ไปออกเลขดำลับเป็น ลำดับที่ 2 ถัดไป
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R00897
ต้องออกแบบฐานข้อมูลให้เป็น Back End และ Front End ครับ ให้ค้นหาด้วยคำว่า Back End ในเว็บบอร์ดนี้ดูนะครับจะทราบรายละเอียดเกี่ยวกับเรื่องนี้มากขึ้น
จากนั้นก็กำหนดให้ฟีลด์ที่ต้องการจะให้เป็น ID ของข้อมูล เพิ่มให้เองโดยอัตโนมัติ แต่ไม่ควรใช้ AutoNumber ของ Access นะครับ เพราะมันจะมีปัญหากับ ID ที่ไม่ต่อเนื่อง
ให้ลองศึกษาตัวอย่างที่ผมได้ให้ไว้ในกระทู้ http://www.thai-access.com/suphap.php?topic_id=434 ดูนะครับ
แล้วต้องใช้คำสั่ง
DoCmd.RunCommand acCmdSaveRecord
เพื่อกำหนดให้มีการจองรหัสนี้ทันที เพื่อป้องกันการออกรหัสซ้ำกันได้ คิดว่าคงไม่มีใครจะคลิกตรงนี้พร้อมกันได้ หรือมีโอกาสน้อยมากครับ
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
' บังคับให้บันทึกข้อมูลทันที เพื่อป้องกันไม่ได้ได้รหัสซ้ำกัน
DoCmd.RunCommand acCmdSaveRecord
End Sub
2 @R00898
จากนั้นก็กำหนดให้ฟีลด์ที่ต้องการจะให้เป็น ID ของข้อมูล เพิ่มให้เองโดยอัตโนมัติ แต่ไม่ควรใช้ AutoNumber ของ Access นะครับ เพราะมันจะมีปัญหากับ ID ที่ไม่ต่อเนื่อง
จากประโยคข้างต้นขอความกรุณาขยายความให้เข้าใจเพิ่มอีกหน่อยครับ
อนึ่งคำสั่งที่แนะนำมานั้นไม่ทราบ เอาไปใส่ไว้ที่ใดหรือครับ
3 @R00900
การกำหนด ID ของฟีลด์ให้เป็น AutoNumber จะมีข้อดีคือ เราไม่ต้องไปคีย์ ID เอง โปรแกรมจะใส่ให้เราเอง
แต่มันมีข้อเสียคือ เมื่อเราเพิ่มข้อมูลเข้าไปแล้ว แต่กลับใจลบออก ID ที่ลบออกนั้นจะไม่สามารถนำมาใช้ได้อีก หรือจะต้องทำการ Compact ข้อมูลก่อนถึงจะนำมาใช้ได้อีก
ให้เข้าไปดูกระทู้ที่ผมแนะนำไว้ข้างต้นแล้ว d/l ไฟล์ตัวอย่างไปศึกษาดูครับ จะเข้าใจภาพที่อธิบายได้ชัดเจนยิ่งขึ้น แล้วให้ดูโค้ดตัวสีน้ำเงินที่ผมเพิ่มไว้ข้างบนด้วย เพราะมันจะไม่มีในตัวอย่างให้ครับ
4 @R00901
ลืมบอกไป ถ้าต้องการให้ออกรหัสเอง ให้คลิก 2 ทีที่ช่อง ReceiptID นะครับ
Time: 0.1393s