กระทู้เก่าบอร์ด อ.Yeadram
        
           7,203   19		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        Primary key      
    
      เรียนอาจารย์
รบกวนขอสอบถามเพิ่มเติมนิดนึงคะ เรื่อง การสร้าง primary key 2 ตัว ใน Table สามารถสร้างได้หรือเปล่าคะ เนื่องจากว่าหนูเคยสร้างแล้วคะ พอเอาเทเบิลอื่นมาสร้างความสัมพันธ์ด้วย ความสัมพันธ์ที่ได้ เป็น Indeterminate
มันหมายความว่าอย่างไรคะ
ขอบคุณคะ
    
  รบกวนขอสอบถามเพิ่มเติมนิดนึงคะ เรื่อง การสร้าง primary key 2 ตัว ใน Table สามารถสร้างได้หรือเปล่าคะ เนื่องจากว่าหนูเคยสร้างแล้วคะ พอเอาเทเบิลอื่นมาสร้างความสัมพันธ์ด้วย ความสัมพันธ์ที่ได้ เป็น Indeterminate
มันหมายความว่าอย่างไรคะ
ขอบคุณคะ
				19 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R08915    
        
  
      เทเบิลแรก 
primary key คือ ฟิลด์ ID ชนิด Autonumber
เทเบิลที่สอง
primary key 2 ตัว คือ
1.ฟิลด์ DiaryDate ชนิด Date/time
2.ฟิลด์ HouseID ชนิด number
    
ForeignKey 2 ตัว คือ
1.ฟิลด์ HouseID ชนิด number
2.ฟิลด์ StaffID ชนิด text
เมื่อสร้างความสัมพันธ์ระหว่าง ID กับ HouseID สามารถสร้างได้แต่ไม่สามารถกำหนด Enforce กับ Cascadeได้(check box ทั้ง 3 ในEdit Ralationships ถูก Disable) และ Relationship Type เป็น Indeterminate
*แน่ใจแล้วค่ะว่ามีรูปกุญแจ
...ขอบคุณคะ
    
  primary key คือ ฟิลด์ ID ชนิด Autonumber
เทเบิลที่สอง
primary key 2 ตัว คือ
1.ฟิลด์ DiaryDate ชนิด Date/time
2.ฟิลด์ HouseID ชนิด number
ForeignKey 2 ตัว คือ
1.ฟิลด์ HouseID ชนิด number
2.ฟิลด์ StaffID ชนิด text
เมื่อสร้างความสัมพันธ์ระหว่าง ID กับ HouseID สามารถสร้างได้แต่ไม่สามารถกำหนด Enforce กับ Cascadeได้(check box ทั้ง 3 ในEdit Ralationships ถูก Disable) และ Relationship Type เป็น Indeterminate
*แน่ใจแล้วค่ะว่ามีรูปกุญแจ
...ขอบคุณคะ
        
    3 @R08916    
        
  
      ผมลองทำดูก็ทำได้ คงต้องมีอะไรเล็กๆน้อยผิดพลาดแน่ๆ  ลองส่งเฉพาะโครงสร้างของเทเบิลมาที่ [email protected] ครับ แปลงให้เป็นของ Access เวอร์ชั่น 2002 ด้วยนะครับ เวอร์ชั่นสูงกว่านี้ผมไม่มี
ปล. ขอบคุณคะ ต้องเขียน ขอบคุณค่ะ คะ เสียงสูง ค่ะ เสียงต่ำ อย่าใช้ผิด
    
  ปล. ขอบคุณคะ ต้องเขียน ขอบคุณค่ะ คะ เสียงสูง ค่ะ เสียงต่ำ อย่าใช้ผิด
        
    4 @R08917    
        
  
      จะส่งเป็นเฉพาะโครงสร้างของเทเบิลทำอย่างไรคะ    
    
  
        
    5 @R08920    
        
  
      ขอโทษด้วยที่ตอบช้า พอดีต้องไปธุระข้างนอก
เอาเป็นว่าถ้าไฟล์ไม่ใหญ่มากก็ส่งมาเลยครับ ถ้าหลายสิบ MB ก็ลบข้อมูลออก แล้ว compact and repair database แล้วคอยส่งมาครับ อย่าลืมแปลงเวอร์ชั่นด้วย (ด้วย Tools - Database Utilities - Convert Database)
    
  เอาเป็นว่าถ้าไฟล์ไม่ใหญ่มากก็ส่งมาเลยครับ ถ้าหลายสิบ MB ก็ลบข้อมูลออก แล้ว compact and repair database แล้วคอยส่งมาครับ อย่าลืมแปลงเวอร์ชั่นด้วย (ด้วย Tools - Database Utilities - Convert Database)
        
    6 @R08930    
        
  
      ส่งไปแล้วนะคะ  แต่ไม่ได้แปลงให้นะคะเพราะว่าแปลงไม่ได้ค่ะ
แปลงแล้วขึ้นข้อความว่า
" you cannot save this database in an earlier version format,because it uses features that require the current file format.
feature that require the current file format include attachments,multivalued fields,offine data,or links to external files that are not supported by earlier versions of Access"
*แต่ตอนนี้ความสัมพันธ์ที่แจ้งไว้ข้างต้นเกิดขึ้นกับความสัมพันธ์ระหว่าง เทเบิล Diary กับ DiaryDetail แล้วค่ะ ช่วยดูให้ทีนะคะ ขอบพระคุณเป็นอย่างยิ่งค่ะ
    
  แปลงแล้วขึ้นข้อความว่า
" you cannot save this database in an earlier version format,because it uses features that require the current file format.
feature that require the current file format include attachments,multivalued fields,offine data,or links to external files that are not supported by earlier versions of Access"
*แต่ตอนนี้ความสัมพันธ์ที่แจ้งไว้ข้างต้นเกิดขึ้นกับความสัมพันธ์ระหว่าง เทเบิล Diary กับ DiaryDetail แล้วค่ะ ช่วยดูให้ทีนะคะ ขอบพระคุณเป็นอย่างยิ่งค่ะ
        
    7 @R08931    
        
  
      ผมไม่มี Access เวอร์ชั่นที่สูง 2002 ครับ เข้าใจว่าจะมีฟิลด์ที่เป็น Attachments หรือ Multivalued Fields  ให้เอาฟิลด์เหล่านี้ออก แล้วลองแปลงดูครับ
หรือใครพอจะแปลงได้ช่วยแปลงให้ที
    
  หรือใครพอจะแปลงได้ช่วยแปลงให้ที
        
    8 @R08932    
        
      
แปลงได้แล้วค่ะ แต่พอจะส่งมันขึ้นข้อความมาอีกว่า "เพื่อรักษาความปลอดภัยของบัญชีของคุณและความปลอดภัยของบุคคลอื่น คุณไม่สามารถแนบไฟล์ที่มีนามสกุลนี้" ค่ะ
    
    
  
  แปลงได้แล้วค่ะ แต่พอจะส่งมันขึ้นข้อความมาอีกว่า "เพื่อรักษาความปลอดภัยของบัญชีของคุณและความปลอดภัยของบุคคลอื่น คุณไม่สามารถแนบไฟล์ที่มีนามสกุลนี้" ค่ะ
        
    9 @R08933    
        
  
      ก็ zip มาอีกทีครับ  หรือเปลี่ยนนามสกุลก็ได้    
    
  
        
    10 @R08934    
        
  
      อ.สันติสุขคะ  ส่งได้แล้วค่ะ  ช่วยดีให้ทีนะคะ    
    
  
        
    11 @R08935    
        
  
      *ช่วยดูให้ทีนะคะ    
    
  
        
    12 @R08936    
        
  
      มันก็อนุญาตให้ทำได้นี่ครับ คุณลองเปิดไฟล์ที่ส่งมาให้ผมแล้วสร้าง Relationship ดูครับว่าได้หรือไม่
 
    
    
   
    
        
    13 @R08937    
        
  
      ความสัมพัน์ระหว่าง House Info กับ diaryDetail มันอนุญาตแล้วค่ะ
แต่ความสัมพันธ์ระหว่าง diaryDetail กับ Diary มันไม่อนุญาตค่ะ
**หนูได้แจ้งอ.ก่อนที่จะส่งไฟลไปให้แล้วนะคะ ช่วยดูให้หนูอีกทีนะคะ
ขอบคุณค่ะ
    
  แต่ความสัมพันธ์ระหว่าง diaryDetail กับ Diary มันไม่อนุญาตค่ะ
**หนูได้แจ้งอ.ก่อนที่จะส่งไฟลไปให้แล้วนะคะ ช่วยดูให้หนูอีกทีนะคะ
ขอบคุณค่ะ
        
    14 @R08942    
        
  
      นี่คือ relationship ที่คุณสร้างไว้
 
    
    
   
    
        
    15 @R08943    
        
  
      ที่ถูกต้องคือ Diary Detail ควรมี relationship แบบ one to many (1:M) ไปยังเทเบิล Diary (แต่ด้วยการตั้งชื่อ ทำให้สับสนได้เพราะคนส่วนใหญ่จะคิดว่าความสัมพันธ์คือ Diary 1:M Diary Detail ครับ , หรือคุณอาจตั้งชื่อถูกแล้วแต่การกำหนด Primary Key นั้นผิดฟิลด์ไป , โอเค ... ตรงนี้ผมจะไม่ไปยุ่งเกี่ยวเพราะเดี๋ยวจะยิ่งไปกันใหญ่) นั่นคือเวลาสร้าง relationship ให้ลากเส้นจาก Diary Detail ไปยัง Diary   พอขึ้น Edit Relationshops Dialog ก็ให้เลือกฟิลด์ HouseID เพิ่มเติมจาก DiaryDate ที่มันแสดงให้อยู่แล้ว
แต่เนื่องจากข้อมูลใน Diary มีเรคอร์ดที่มีค่าของฟิลด์ DiaryDate + HouseID ในเทเบิล Diary แต่ไม่มีในเทเบิล Diary Detail จึงไม่สามารถสร้าง relationship ได้ ดังนั้นต้องลบเรคอร์ดที่ก่อให้เกิดปัญหาออกก่อน เหมือนที่ผมขีดค่าในรูป หรือไม่อีกอย่างก็คือเพิ่มเรคอร์ดที่ขาดหายไปใน Diary ให้ครบถ้วนเสียก่อน
 
    
    
  แต่เนื่องจากข้อมูลใน Diary มีเรคอร์ดที่มีค่าของฟิลด์ DiaryDate + HouseID ในเทเบิล Diary แต่ไม่มีในเทเบิล Diary Detail จึงไม่สามารถสร้าง relationship ได้ ดังนั้นต้องลบเรคอร์ดที่ก่อให้เกิดปัญหาออกก่อน เหมือนที่ผมขีดค่าในรูป หรือไม่อีกอย่างก็คือเพิ่มเรคอร์ดที่ขาดหายไปใน Diary ให้ครบถ้วนเสียก่อน
 
    
        
    16 @R08945    
        
  
      ดังนั้น สุดท้ายแล้ว มันต้องเป็นรูปแบบนี้ครับ
 
    
    
   
    
        
    17 @R08949    
        
  
      ทำได้แล้วค่ะ ขอบพระคุณเป็นอย่างยิ่งค่ะ    
    
  
        
    18 @R08997    
        
  
      มีปัญหาอีกแล้วค่ะ อ.สันติสุข
หนูไปดึงเทเบิลมาจาก share point ที่จำกัดสิทธิ์ผู้เข้าใช้ค่ะ ซึ่งของหนูไม่สามารถแก้ไขใดๆได้ อ่านได้อย่างเดียว พอนำเทเบิลเอามาจาก share point มาสร้างความสัมพันธ์มันก็จะขึ้นเป็น Relationship type แบบ Indeterminate
...ควรจะแก้ไขอย่างไรค่ะ
ขอบพระคุณล่วงหน้าค่ะ
    
  หนูไปดึงเทเบิลมาจาก share point ที่จำกัดสิทธิ์ผู้เข้าใช้ค่ะ ซึ่งของหนูไม่สามารถแก้ไขใดๆได้ อ่านได้อย่างเดียว พอนำเทเบิลเอามาจาก share point มาสร้างความสัมพันธ์มันก็จะขึ้นเป็น Relationship type แบบ Indeterminate
...ควรจะแก้ไขอย่างไรค่ะ
ขอบพระคุณล่วงหน้าค่ะ
        
    19 @R08999    
        
    
      SharePoint ให้อ่านอย่างเดียวครับ ทำ Referential Integrity ไม่ได้ครับ    
    
  
      Time: 0.5019s
    
      
		
แล้วฟิลด์ของอีกเทเบิล (ForeignKey) ที่เรานำมาลิงค์กับฟิลด์ที่เป็น PrimaryKey ของอีกเทเบิล คือฟิลด์อะไร
และแน่ใจนะครับว่า ฟิืลด์ที่เป็น PrimaryKey นั้นมีรูปกุญแจอยู่ข้างหน้าด้วย