กระทู้เก่าบอร์ด อ.Yeadram
1,295 4
URL.หัวข้อ /
URL
ขอความช่วยเหลือลำดับ Number อ้างอิงจากอีกตาราง
มือใหม่ครับคือผมต้องการสร้างลำดับที่อัตโนมัติ ในตาราง Patien ในฟิลด์ Patien_ID โดยอ้างอิงจากอีกตารางหนึ่งคือ Patein History ฟิลด์ Patien_ID โดยมีเหตุการณ์ที่จะสร้างดังนี้ครับ
1.ฟิลด์ Patien_ID ในตาราง Patien ว่างไม่มีข้อมูลให้อ้างอิงจากตาราง Patien Hitorry ฟิลด์ Patien_ID
2.ฟิลด์ Patien_ID ในตาราง Patien มีข้อมูลให้อ้างอิงตาราง Patien ฟิลด์ Patien_ID ตารางของมันเอง
ตาราง Patien
Patien_ID
540005
ตาราง Patien Hitory
Patien_ID
540001
540002
540003
540004
ซึ่งผมได้เขียน code ดังนี้
Private Sub Cmdnewid_Click()
Me.Patien_ID = AotoNo
End Sub
Function AotoNo() As String
Dim x As Variant
Dim bx As String
x = DMax("Right(Patien_ID,4)", "Patien", "left(Patien_ID,2)=" & Format(Now(), "yy"))
If IsNull(x) Then bk = 1 Else bk = x + 1
AotoNo = Format(Now(), "yy") & "" & Format(bk, "0000")
End Function
ไม่รู้ผมต้องเขียนเหงือนไขเพิ่มเติมอย่างไรดีท่านอาจารย์และผู้รู้ช่วยตอบหน่อยขอบพระคุณครับ
1.ฟิลด์ Patien_ID ในตาราง Patien ว่างไม่มีข้อมูลให้อ้างอิงจากตาราง Patien Hitorry ฟิลด์ Patien_ID
2.ฟิลด์ Patien_ID ในตาราง Patien มีข้อมูลให้อ้างอิงตาราง Patien ฟิลด์ Patien_ID ตารางของมันเอง
ตาราง Patien
Patien_ID
540005
ตาราง Patien Hitory
Patien_ID
540001
540002
540003
540004
ซึ่งผมได้เขียน code ดังนี้
Private Sub Cmdnewid_Click()
Me.Patien_ID = AotoNo
End Sub
Function AotoNo() As String
Dim x As Variant
Dim bx As String
x = DMax("Right(Patien_ID,4)", "Patien", "left(Patien_ID,2)=" & Format(Now(), "yy"))
If IsNull(x) Then bk = 1 Else bk = x + 1
AotoNo = Format(Now(), "yy") & "" & Format(bk, "0000")
End Function
ไม่รู้ผมต้องเขียนเหงือนไขเพิ่มเติมอย่างไรดีท่านอาจารย์และผู้รู้ช่วยตอบหน่อยขอบพระคุณครับ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R11832
x = DMax("Right(Patien_ID,4)", "[Patien History]", "left(Patien_ID,2)=" & Format(Now(), "yy"))
2 @R11838
ขอบคุณครับทำได้แล้วตามคำแนะนำ มีคำถามเพิ่ม ถ้าจะอ้างอิงลำดับที่จากตาราง Patien ต้องเขียน code เพิ่มอย่างไร
Patien_ID
540005
540006
540007
เหตุเพราะว่าจะบันทึกข้อมูลจากตาราง Patien ไปไว้ตาราง Patien Historyแล้วลบลำดับที่และข้อมูลออกจากตารางPatienซึ่งมีผู้บันทึกข้อมูลพร้อมกัน3เครื่อง คนที่1กรอกข้อมูลก็จะอ้างลำดับที่จากตารางPatien History(Patien ไม่มีข้อมูล) คนที่2 กรอกข้อมูลอ้างอิงลำดับที่จากตารางPatienต่อจากคนที่1
คนท่3 กรอกข้อมูลอ้างอิงลำดับที่ต่อจากคนที่2 ซึ่งทั้ง คนนี้ทำงานพร้อมกันเมื่อทั้ง3คนบันทึกข้อมูลแล้วตารางPatienจะไม่มีข้อมูลไม่รู้ผมลำเหตุการณ์ถูกหรือเปล่านะครับขอคำแนะนำด้วยครับ
Patien_ID
540005
540006
540007
เหตุเพราะว่าจะบันทึกข้อมูลจากตาราง Patien ไปไว้ตาราง Patien Historyแล้วลบลำดับที่และข้อมูลออกจากตารางPatienซึ่งมีผู้บันทึกข้อมูลพร้อมกัน3เครื่อง คนที่1กรอกข้อมูลก็จะอ้างลำดับที่จากตารางPatien History(Patien ไม่มีข้อมูล) คนที่2 กรอกข้อมูลอ้างอิงลำดับที่จากตารางPatienต่อจากคนที่1
คนท่3 กรอกข้อมูลอ้างอิงลำดับที่ต่อจากคนที่2 ซึ่งทั้ง คนนี้ทำงานพร้อมกันเมื่อทั้ง3คนบันทึกข้อมูลแล้วตารางPatienจะไม่มีข้อมูลไม่รู้ผมลำเหตุการณ์ถูกหรือเปล่านะครับขอคำแนะนำด้วยครับ
3 @R11846
ที่ตาราง patien ดูเหมือนจะทำเป็นตารางชั่วคราว เพื่อพักข้อมูลก่อนจะบันทึกเก็บไปตารางอื่น (Patien history)
ดังนั้น ฟิลด์ Patien_ID ของตารางชั่วคราว ควรทำเป็น autonumber ดีกว่า จะได้ไม่ต้องไปควานหาลำดับให้ยุ่งยาก ป้องกันการแย่งเลขที่กันของ 3 client ได้อย่างน้อยก็ 95% ล่ะครับ
* แต่เวลาจะนำข้อมูล จากตารางชั่วคราว ไปเก็บตารางหลัก ต้องระวัง อย่าเอาฟิลด์ autonumber นี้ไปด้วยล่ะ
ดังนั้น ฟิลด์ Patien_ID ของตารางชั่วคราว ควรทำเป็น autonumber ดีกว่า จะได้ไม่ต้องไปควานหาลำดับให้ยุ่งยาก ป้องกันการแย่งเลขที่กันของ 3 client ได้อย่างน้อยก็ 95% ล่ะครับ
* แต่เวลาจะนำข้อมูล จากตารางชั่วคราว ไปเก็บตารางหลัก ต้องระวัง อย่าเอาฟิลด์ autonumber นี้ไปด้วยล่ะ
4 @R11852
ขอบคุณครับสำหรับคำแนะนำ
Time: 0.3657s