บอร์ดเรียนรู้ Access สำหรับคนไทย

Thai Access Webboard => ห้อง MS Access => ข้อความที่เริ่มโดย: thanapol.w ที่ 13 พ.ย. 62 , 11:04:32

หัวข้อ: ออกแบบตารางเก็บข้อมูลแบบประจำปี
เริ่มหัวข้อโดย: thanapol.w ที่ 13 พ.ย. 62 , 11:04:32
สวัสดีครับ
ต้องการให้ช่วยออกแบบตารางสำหรับเก็บข้อมูลการเพาะปลูกของเกษตรกร   การทำนาแต่ละปี
โดยลักษณะของข้อมูลมีดั้งนี้
(https://www.thai-access.com/tiupld/images/q0w30z-1db3e0.jpg)
คอลัม 1 คือ รหัสแปลงนา
คอลัม 2 คือ รหัสของเกษตรกร
คอลัม 3 คือ ชื่อเกษตรกร
คอลัม 4 คื่อ เนื้อที่(ไร่)
คอลัม 5 คือ  สายพันธุ์ข้าวที่ปลูก
ซึ่งข้อมูลในตารางนี้เป็นข้อมูล 1 ปี ปัจจุบันเก็บใน Excel แยกชิตตามปี

ความต้องการ คือ ต้องการเก็บข้อมูลนี้ทุกฤดูการเพาะปลูกหรือทุกปี  ซึ่งแต่ละปีข้อมูลออกเปลี่ยนไป เช่น เนื้อที่แต่ละแปลงลดลง  เปลี่ยนสายพันธุ์ข้าว
ให้มีการข้อมูลการเปลี่ยนแปลงของข้อมูลแต่ละปีด้วยครับ  เช่น แปลง F837-P1 ปีนี้เนื้อที่ลดลงจากปีที่แล้ว 1 ไร่  เพราะอะไร

อาจจะอธิบายงงหน่อย นะครับ  สามารถสอบถามเพิ่มเติมได้ครับ

ขอขอบคุณทุกท่านล่วงหน้าครับ
หัวข้อ: : ออกแบบตารางเก็บข้อมูลแบบประจำปี
เริ่มหัวข้อโดย: nonc31 ที่ 13 พ.ย. 62 , 11:44:02
คงประมาณนี้ คร่าวๆ
(https://www.thai-access.com/tiupld/images/q0w54p-eac18b.png)
หัวข้อ: : ออกแบบตารางเก็บข้อมูลแบบประจำปี
เริ่มหัวข้อโดย: thanapol.w ที่ 13 พ.ย. 62 , 11:51:31
อยากได้ ตารางเทียบแต่ละปีครับ เช่นเนื้อที่ปี นี้   กับปี หน้า  ของแต่ละแปลง ลดลงกี่ไร่  เหตุผล ด้วยครับ
(https://www.thai-access.com/tiupld/images/q0w5lk-ebd5a8.jpg)
ปัจจุบันทำแบบนี้ครับ ถ้าย้ายมา Access ต้องทำเป็นแบบไหนครับ
หัวข้อ: : ออกแบบตารางเก็บข้อมูลแบบประจำปี
เริ่มหัวข้อโดย: PNR ที่ 14 พ.ย. 62 , 07:44:30
ข้อมูลประจำปีมาจาก 2 ตารางใช่หรือเปล่าครับเช่น Area2018 กับ Area2019
สร้าง Union Query และ Group By Field ID กับ MEMBER_ID  ครับ

หรือการ Join Table เชื่อมความสัมพันธ์ของ Field ID และ MEMBER_ID ของสองตารางเข้าด้วยกันและดึง Area...... ของทั้งสองปีลงมา
และสร้าง Field ลบจำนวนแปลงขึ้นมา  /  ส่วนของ remake ใช้การดึงค่าที่มีมาแสดงทั้งสองอย่างได้
เช่น area2018 Remark1 ระบุ  ขุดบ่อปลา
      area2019 Remark2 ระบุ  ตัดถนนเข้าสวน

ตรงField Remark เราก็ระบุเช่น SRemark:Remark1 & "," & Remark2
ข้อมูลที่แสดงจะได้เป็น ขุดบ่อปลา,ตัดถนนเข้าสวน เป็นต้น
หรือถ้าจะแสดง remark แค่ปีล่าสุดเท่านั้นก็ดึง remark2 มาแสดงได้เลย

หรือถ้าไม่อยาก Fix ปีทั้งสองไว้แบบตายตัว จะสร้างฟอร์มกำหนดปีที่จะแสดงข้อมูลก็ทำได้เหมือนกันครับ
โดยใช้การUnion Query ข้อมูลทั้ง 2 ตารางเข้าด้วยกันและกรองข้อมูลจาก Control ระบุปีมาก่อนแล้วสร้างคิวรี่ย่อยในการแสดงข้อมูล
หัวข้อ: : ออกแบบตารางเก็บข้อมูลแบบประจำปี
เริ่มหัวข้อโดย: thanapol.w ที่ 14 พ.ย. 62 , 09:24:27
ข้อมูลประจำปีมาจาก 2 ตารางใช่หรือเปล่าครับเช่น Area2018 กับ Area2019
สร้าง Union Query และ Group By Field ID กับ MEMBER_ID  ครับ

หรือการ Join Table เชื่อมความสัมพันธ์ของ Field ID และ MEMBER_ID ของสองตารางเข้าด้วยกันและดึง Area...... ของทั้งสองปีลงมา
และสร้าง Field ลบจำนวนแปลงขึ้นมา  /  ส่วนของ remake ใช้การดึงค่าที่มีมาแสดงทั้งสองอย่างได้
เช่น area2018 Remark1 ระบุ  ขุดบ่อปลา
      area2019 Remark2 ระบุ  ตัดถนนเข้าสวน

ตรงField Remark เราก็ระบุเช่น SRemark:Remark1 & "," & Remark2
ข้อมูลที่แสดงจะได้เป็น ขุดบ่อปลา,ตัดถนนเข้าสวน เป็นต้น
หรือถ้าจะแสดง remark แค่ปีล่าสุดเท่านั้นก็ดึง remark2 มาแสดงได้เลย

หรือถ้าไม่อยาก Fix ปีทั้งสองไว้แบบตายตัว จะสร้างฟอร์มกำหนดปีที่จะแสดงข้อมูลก็ทำได้เหมือนกันครับ
โดยใช้การUnion Query ข้อมูลทั้ง 2 ตารางเข้าด้วยกันและกรองข้อมูลจาก Control ระบุปีมาก่อนแล้วสร้างคิวรี่ย่อยในการแสดงข้อมูล

อันนี้เป็นแบบถ้าแต่ละปี แยกตารางกันใช่ไหมครับ แล้วถ้าทำตารางแปลงนาเป็น 1 ตาราง แล้วใน field ฤดูกาลผลิตลง แบบความคิดเห็นที่ 2  จะต้องทำเทียบเนื้อที่อย่างไร
- และอีก 1 อย่าง คือถ้าทำตารางเดียว จะใช้ อะไรเป็น คีย์หลัก เพราะรหัสแปลงก็จะซ้ำกัน
หัวข้อ: : ออกแบบตารางเก็บข้อมูลแบบประจำปี
เริ่มหัวข้อโดย: PNR ที่ 14 พ.ย. 62 , 11:01:21
อ้างถึง
ถ้าทำตารางแปลงนาเป็น 1 ตาราง แล้วใน field ฤดูกาลผลิตลง แบบความคิดเห็นที่ 2  จะต้องทำเทียบเนื้อที่อย่างไร
- และอีก 1 อย่าง คือถ้าทำตารางเดียว จะใช้ อะไรเป็น คีย์หลัก เพราะรหัสแปลงก็จะซ้ำกัน

ถ้าสังเกตุดีๆ ข้อมูล FieldID MemberID ตัวเดียวกัน ใช้ GroupBy ได้เลย ถ้ามันเหมือนกันก็จะเหลืออันเดียวแล้วครับ

ส่่งตัวอย่างมาทางไลน์ครับผมทำให้