กระทู้เก่าบอร์ด อ.Yeadram
1,266 5
URL.หัวข้อ /
URL
มีปัญหาในการออกแบบการตรวจสอบข้อมูลช่วยแนะนำด้วยครั
มีปัญหาในการออกแบบการตรวจสอบข้อมูลช่วยแนะนำด้วยครับ
ใน Table แรก เก็บข้อมูลของการวางแผนไว้ และใน Table ที่สอง เก็บข้อมูลในลักษณะเดียวกัน แต่เป็นการดำเนินการจริง (อาจมีที่ไม่ทำตามแผนบ้าง) เนื่องจากข้อมูลที่ได้รับมีความคลาดเคลื่อนจากผู้ที่เก็บข้อมูลจริงจากหน้างานและเป็นการเก็บข้อมูลเป็นเอกสารจึงทำให้เกิดการกำหนดรหัสแผน ผิดจากรหัสแผนที่กำหนดไว้ในตารางที่ 1 แต่ยังคงอยู่ในระบบไฟฟ้าหรืออุปกรณ์เดียวกัน และยังมีข้อมูลอื่นๆ ที่พอจะระบุให้ทราบได้ว่าเป็นข้อมูลที่ตรงกับแผน เช่นเงินลงทุน หรือ จำนวนอุปกรณ์การปรับปรุง แต่ในบางครั้งอาจจะไม่เท่ากันได้แต่ยังคงมีระดับที่ใกล้เคียงกัน และจะต้องเชื่อมโยง 2 ตารางเข้าด้วยกันเพื่อตรวจสอบว่ามีแผนที่ทำจริงงานใดบ้างที่ดำเนินการตามแผนที่กำหนดไว้ โดยจะให้แสดงข้อมูลทั้ง 2 ตารางในฟอร์มพร้อมกันเพื่อให้เจ้าหน้าที่เลือกว่าแผนงานในตารางที่ 1 ตรงกับการดำเนินการจริง ซึ่งหากจะให้เปลี่ยนรหัสแผนในตารางที่ 2 ตามตารางที่ 1 คงทำได้ยากครับ จึงอยากขอให้พี่ๆช่วยแนะนำด้วยว่าต้องออกแบบ access อย่างไรดีครับ
Table 1
เลขเอกสาร รหัสแผน ชื่อแผนงาน จำนวนอุปกรณ์ เงินลงทุน
B01 10001 การปรับปรุงโคมไฟ 100 24000
B01 10002 การปรับปรุงหลอดไฟ 50 3000
B01 20001 การปรับปรุงระบบปรับอากาศ 3 500000
B02 10003 การเปลี่ยนบัลลาสต์ 30 3000
B02 30001 การเปลี่ยนอุปกรณ์ระบบแช่แข็ง 2 1000000
B02 10001 การปรับปรุงโคมไฟ 10 2400
B02 10002 การปรับปรุงหลอดไฟ 60 300
B03 10001 การปรับปรุงโคมไฟ 10 5000
B03 10002 การปรับปรุงหลอดไฟ 8 500
B03 40001 การปรับปรุงระบบการผลิต 1 50000
B03 20002 การเปลี่ยนคอยล์เย็นเครื่องปรับอากาศ 5 30000
B03 40002 การเปลี่ยนสายพาน 4 400
Table 2
เลขเอกสาร รหัสแผน ชื่อแผนงาน จำนวนอุปกรณ์ เงินลงทุน
B01 10001 การปรับปรุงโคมไฟ 50 2800
B01 20001 การปรับปรุงระบบปรับอากาศ 3 480000
B02 10003 การเปลี่ยนบัลลาสต์ 30 3000
B02 30002 การเปลี่ยนเทอร์โมสตัท 6 2300
B02 10002 การปรับปรุงโคมไฟ 60 300
B03 10001 การปรับปรุงโคมไฟ 10 5000
B03 40001 การปรับปรุงระบบการผลิต 1 50000
B03 20002 การเปลี่ยนคอยล์เย็นเครื่องปรับอากาศ 5 30000
B03 40001 การปรับปรุงระบบการผลิต 4 400
ใน Table แรก เก็บข้อมูลของการวางแผนไว้ และใน Table ที่สอง เก็บข้อมูลในลักษณะเดียวกัน แต่เป็นการดำเนินการจริง (อาจมีที่ไม่ทำตามแผนบ้าง) เนื่องจากข้อมูลที่ได้รับมีความคลาดเคลื่อนจากผู้ที่เก็บข้อมูลจริงจากหน้างานและเป็นการเก็บข้อมูลเป็นเอกสารจึงทำให้เกิดการกำหนดรหัสแผน ผิดจากรหัสแผนที่กำหนดไว้ในตารางที่ 1 แต่ยังคงอยู่ในระบบไฟฟ้าหรืออุปกรณ์เดียวกัน และยังมีข้อมูลอื่นๆ ที่พอจะระบุให้ทราบได้ว่าเป็นข้อมูลที่ตรงกับแผน เช่นเงินลงทุน หรือ จำนวนอุปกรณ์การปรับปรุง แต่ในบางครั้งอาจจะไม่เท่ากันได้แต่ยังคงมีระดับที่ใกล้เคียงกัน และจะต้องเชื่อมโยง 2 ตารางเข้าด้วยกันเพื่อตรวจสอบว่ามีแผนที่ทำจริงงานใดบ้างที่ดำเนินการตามแผนที่กำหนดไว้ โดยจะให้แสดงข้อมูลทั้ง 2 ตารางในฟอร์มพร้อมกันเพื่อให้เจ้าหน้าที่เลือกว่าแผนงานในตารางที่ 1 ตรงกับการดำเนินการจริง ซึ่งหากจะให้เปลี่ยนรหัสแผนในตารางที่ 2 ตามตารางที่ 1 คงทำได้ยากครับ จึงอยากขอให้พี่ๆช่วยแนะนำด้วยว่าต้องออกแบบ access อย่างไรดีครับ
Table 1
เลขเอกสาร รหัสแผน ชื่อแผนงาน จำนวนอุปกรณ์ เงินลงทุน
B01 10001 การปรับปรุงโคมไฟ 100 24000
B01 10002 การปรับปรุงหลอดไฟ 50 3000
B01 20001 การปรับปรุงระบบปรับอากาศ 3 500000
B02 10003 การเปลี่ยนบัลลาสต์ 30 3000
B02 30001 การเปลี่ยนอุปกรณ์ระบบแช่แข็ง 2 1000000
B02 10001 การปรับปรุงโคมไฟ 10 2400
B02 10002 การปรับปรุงหลอดไฟ 60 300
B03 10001 การปรับปรุงโคมไฟ 10 5000
B03 10002 การปรับปรุงหลอดไฟ 8 500
B03 40001 การปรับปรุงระบบการผลิต 1 50000
B03 20002 การเปลี่ยนคอยล์เย็นเครื่องปรับอากาศ 5 30000
B03 40002 การเปลี่ยนสายพาน 4 400
Table 2
เลขเอกสาร รหัสแผน ชื่อแผนงาน จำนวนอุปกรณ์ เงินลงทุน
B01 10001 การปรับปรุงโคมไฟ 50 2800
B01 20001 การปรับปรุงระบบปรับอากาศ 3 480000
B02 10003 การเปลี่ยนบัลลาสต์ 30 3000
B02 30002 การเปลี่ยนเทอร์โมสตัท 6 2300
B02 10002 การปรับปรุงโคมไฟ 60 300
B03 10001 การปรับปรุงโคมไฟ 10 5000
B03 40001 การปรับปรุงระบบการผลิต 1 50000
B03 20002 การเปลี่ยนคอยล์เย็นเครื่องปรับอากาศ 5 30000
B03 40001 การปรับปรุงระบบการผลิต 4 400
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R01737
รวมกันไม่ได้ครับ
คือจะทำการตรวจสอบว่างานที่ดำเนินการจริงมีงานใดตรงกับแผนงานที่วางไว้บ้างนะครับ ผมเลยยังไม่รู้จะออกแบบ access ยังงัยดี เพื่อให้เห็นข้อมูลทั้งสอง ตารางและสามารถที่จะระบุได้ว่าแผนงานที่ดำเนินการตรงกับแผนที่วางไว้ ก็ลักษณะคล้ายกับการจับคู่นะครับโดยมองเป็นกลุ่มๆ เช่น เอกสาร B01 ก็ดูเฉพาะแผนงานที่วางไว้และที่ดำเนินการของ เอกสาร B01
คือจะทำการตรวจสอบว่างานที่ดำเนินการจริงมีงานใดตรงกับแผนงานที่วางไว้บ้างนะครับ ผมเลยยังไม่รู้จะออกแบบ access ยังงัยดี เพื่อให้เห็นข้อมูลทั้งสอง ตารางและสามารถที่จะระบุได้ว่าแผนงานที่ดำเนินการตรงกับแผนที่วางไว้ ก็ลักษณะคล้ายกับการจับคู่นะครับโดยมองเป็นกลุ่มๆ เช่น เอกสาร B01 ก็ดูเฉพาะแผนงานที่วางไว้และที่ดำเนินการของ เอกสาร B01
3 @R01740
ตาราง PlanDoc
- DocID
- DocDate
- JobID
- PlanQTY
- PlanAmount
- JobQTY
- JobAmount
ตาราง Job
- JobID
- JobDescription
- เอาตาราง PlanDoc ไปสร้างเป็นฟอร์ม
- เพิ่ม Textbox txJobDesc
เขียนค่า = Dlookup("JobDescription","Job","[JobID] = " & txJobID)
กำหนด Lock = true
- เมื่อต้องการให้ป้อน ผลการทำงานจริง กำหนด textbox
(txDocID, txJobID, txPlanQTY, txPlanAmount)
enabled = false
- เมื่อต้องการป้อนเอกสารใหม่ กำหนด textbox
(txJobQTY, txJobAmount)
enabled=false
- DocID
- DocDate
- JobID
- PlanQTY
- PlanAmount
- JobQTY
- JobAmount
ตาราง Job
- JobID
- JobDescription
- เอาตาราง PlanDoc ไปสร้างเป็นฟอร์ม
- เพิ่ม Textbox txJobDesc
เขียนค่า = Dlookup("JobDescription","Job","[JobID] = " & txJobID)
กำหนด Lock = true
- เมื่อต้องการให้ป้อน ผลการทำงานจริง กำหนด textbox
(txDocID, txJobID, txPlanQTY, txPlanAmount)
enabled = false
- เมื่อต้องการป้อนเอกสารใหม่ กำหนด textbox
(txJobQTY, txJobAmount)
enabled=false
4 @R01741
ถ้าเป็นการแสดงอย่างเดียว ไม่ต้องมีการป้อนหรือเปลี่ยนแปลงข้อมูลด้วย ก็พอจะทำได้ครับ ผมให้โครงของคิวรี่ไปแล้วกันเพราะตอนนี้ไม่มีเวลาเท่าไหร่นะครับ อาจจะยัง syntax error อยู่ แต่ก็หลักการอย่างนี้แหล่ะครับ โดยผลลัพธ์จะอยู่ในรูปแบบ
แผน.เลขเอกสาร แผน.รหัสแผน แผน.ชื่อแผนงาน แผน.จำนวน แผน.อุปกรณ์ แผน.เงินลงทุน จริง.เลขเอกสาร จริง.รหัสจริง จริง.ชื่อจริงงาน จริง.จำนวน จริง.อุปกรณ์ จริง.เงินลงทุน
ขั้นตอนคือ
1) หาผลจากการจับคู่ระหว่าง แผน กับ งานจริง จากนั้นก็รวมเข้ากับ
2) งานจริง ที่ไม่ปรากฏว่ามี แผน ไว้ก่อน
3) เราเรียงผลของการรวม 1) และ 2) ด้วยเลขเอกสารและรหัสแผน จากน้อยไปมาก
select T1.เลขเอกสาร , T1.รหัสแผน , T1.ชื่อแผนงาน , T1.จำนวน , T1.อุปกรณ์ , T1.เงินลงทุน , T2.เลขเอกสาร , T2.รหัสจริง , T2.ชื่อจริงงาน , T2.จำนวน , T2.อุปกรณ์ , T2.เงินลงทุน
from Table1 as T1 inner join Table2 as T2 on (T1.เลขเอกสาร = T2.เลขเอกสาร) and (T1.รหัสแผน = T2.รหัสแผน)
union all
select "ZZZ", "ZZZZZ", null, null, null, null, T2.เลขเอกสาร , T2.รหัสจริง , T2.ชื่อจริงงาน , T2.จำนวน , T2.อุปกรณ์ , T2.เงินลงทุน
from Table2 as T2 where not exists (select T1.* from Table1 as t1 where (t1.เลขเอกสาร = T2.เลขเอกสาร) and (T1.รหัสแผน = T2.รหัสแผน))
order by T1.เลขเอกสาร , T1.รหัสแผน , T2.เลขเอกสาร , T2.รหัสแผน
ส่วนจะไปแสดงผล แล้วไม่อยากแสดงช่องไหนที่ซ้ำกันในบรรทัดเดียวกัน หรือไม่แสดงค่าที่เป็น "ZZZ" กับ "ZZZZZ" ก็ไปใช้โค้ดจัดการระหว่างแสดงผลอีกที (ถ้าเป็นรายงาน จะทำได้ง่ายกว่าแสดงบนหน้าจอ)
แผน.เลขเอกสาร แผน.รหัสแผน แผน.ชื่อแผนงาน แผน.จำนวน แผน.อุปกรณ์ แผน.เงินลงทุน จริง.เลขเอกสาร จริง.รหัสจริง จริง.ชื่อจริงงาน จริง.จำนวน จริง.อุปกรณ์ จริง.เงินลงทุน
ขั้นตอนคือ
1) หาผลจากการจับคู่ระหว่าง แผน กับ งานจริง จากนั้นก็รวมเข้ากับ
2) งานจริง ที่ไม่ปรากฏว่ามี แผน ไว้ก่อน
3) เราเรียงผลของการรวม 1) และ 2) ด้วยเลขเอกสารและรหัสแผน จากน้อยไปมาก
select T1.เลขเอกสาร , T1.รหัสแผน , T1.ชื่อแผนงาน , T1.จำนวน , T1.อุปกรณ์ , T1.เงินลงทุน , T2.เลขเอกสาร , T2.รหัสจริง , T2.ชื่อจริงงาน , T2.จำนวน , T2.อุปกรณ์ , T2.เงินลงทุน
from Table1 as T1 inner join Table2 as T2 on (T1.เลขเอกสาร = T2.เลขเอกสาร) and (T1.รหัสแผน = T2.รหัสแผน)
union all
select "ZZZ", "ZZZZZ", null, null, null, null, T2.เลขเอกสาร , T2.รหัสจริง , T2.ชื่อจริงงาน , T2.จำนวน , T2.อุปกรณ์ , T2.เงินลงทุน
from Table2 as T2 where not exists (select T1.* from Table1 as t1 where (t1.เลขเอกสาร = T2.เลขเอกสาร) and (T1.รหัสแผน = T2.รหัสแผน))
order by T1.เลขเอกสาร , T1.รหัสแผน , T2.เลขเอกสาร , T2.รหัสแผน
ส่วนจะไปแสดงผล แล้วไม่อยากแสดงช่องไหนที่ซ้ำกันในบรรทัดเดียวกัน หรือไม่แสดงค่าที่เป็น "ZZZ" กับ "ZZZZZ" ก็ไปใช้โค้ดจัดการระหว่างแสดงผลอีกที (ถ้าเป็นรายงาน จะทำได้ง่ายกว่าแสดงบนหน้าจอ)
5 @R01747
ขอบคุณครับจะลองดู ผมก็ยังใหม่ๆกับ access อยู่
Time: 0.2992s
ถ้าไม่รวม ก็น่าจะเป็น 1 ต่อ 1