ขอความช่วยเหลือลำดับ Number อ้างอิงจากอีกตาราง
กระทู้เก่าบอร์ด อ.Yeadram

 1,250   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

ไม่รู้ผมต้องเขียนเหงือนไขเพิ่มเติมอย่างไรดีท่านอาจารย์และผู้รู้ช่วยตอบหน่อยขอบพระคุณครับ

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จะไม่มีข้อมูลไม่รู้ผมลำเหตุการณ์ถูกหรือเปล่านะครับขอคำแนะนำด้วยครับ
3 @R11846
ที่ตาราง patien ดูเหมือนจะทำเป็นตารางชั่วคราว เพื่อพักข้อมูลก่อนจะบันทึกเก็บไปตารางอื่น (Patien history)
ดังนั้น ฟิลด์ Patien_ID ของตารางชั่วคราว ควรทำเป็น autonumber ดีกว่า จะได้ไม่ต้องไปควานหาลำดับให้ยุ่งยาก ป้องกันการแย่งเลขที่กันของ 3 client ได้อย่างน้อยก็ 95% ล่ะครับ

* แต่เวลาจะนำข้อมูล จากตารางชั่วคราว ไปเก็บตารางหลัก ต้องระวัง อย่าเอาฟิลด์ autonumber นี้ไปด้วยล่ะ
4 @R11852
ขอบคุณครับสำหรับคำแนะนำ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2676s