กระทู้เก่าบอร์ด อ.Yeadram
7,009 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
ผมลองทำดูก็ทำได้ คงต้องมีอะไรเล็กๆน้อยผิดพลาดแน่ๆ ลองส่งเฉพาะโครงสร้างของเทเบิลมาที่ accboard@gmail.com ครับ แปลงให้เป็นของ 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.2998s
แล้วฟิลด์ของอีกเทเบิล (ForeignKey) ที่เรานำมาลิงค์กับฟิลด์ที่เป็น PrimaryKey ของอีกเทเบิล คือฟิลด์อะไร
และแน่ใจนะครับว่า ฟิืลด์ที่เป็น PrimaryKey นั้นมีรูปกุญแจอยู่ข้างหน้าด้วย