กระทู้เก่าบอร์ด อ.Yeadram
        
           1,446   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.0746s
    
      
		