บอร์ดเรียนรู้ Access สำหรับคนไทย
Thai Access Webboard => ห้อง MS Access => ข้อความที่เริ่มโดย: 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 ไร่ เพราะอะไร
อาจจะอธิบายงงหน่อย นะครับ สามารถสอบถามเพิ่มเติมได้ครับ
ขอขอบคุณทุกท่านล่วงหน้าครับ
-
คงประมาณนี้ คร่าวๆ
(https://www.thai-access.com/tiupld/images/q0w54p-eac18b.png)
-
อยากได้ ตารางเทียบแต่ละปีครับ เช่นเนื้อที่ปี นี้ กับปี หน้า ของแต่ละแปลง ลดลงกี่ไร่ เหตุผล ด้วยครับ
(https://www.thai-access.com/tiupld/images/q0w5lk-ebd5a8.jpg)
ปัจจุบันทำแบบนี้ครับ ถ้าย้ายมา Access ต้องทำเป็นแบบไหนครับ
-
ข้อมูลประจำปีมาจาก 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 ระบุปีมาก่อนแล้วสร้างคิวรี่ย่อยในการแสดงข้อมูล
-
ข้อมูลประจำปีมาจาก 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 อย่าง คือถ้าทำตารางเดียว จะใช้ อะไรเป็น คีย์หลัก เพราะรหัสแปลงก็จะซ้ำกัน
-
ถ้าทำตารางแปลงนาเป็น 1 ตาราง แล้วใน field ฤดูกาลผลิตลง แบบความคิดเห็นที่ 2 จะต้องทำเทียบเนื้อที่อย่างไร
- และอีก 1 อย่าง คือถ้าทำตารางเดียว จะใช้ อะไรเป็น คีย์หลัก เพราะรหัสแปลงก็จะซ้ำกัน
ถ้าสังเกตุดีๆ ข้อมูล FieldID MemberID ตัวเดียวกัน ใช้ GroupBy ได้เลย ถ้ามันเหมือนกันก็จะเหลืออันเดียวแล้วครับ
ส่่งตัวอย่างมาทางไลน์ครับผมทำให้