ทำงานพร้อมกันให้เลขรันต่อเนื่องกัน
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

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