มีปัญหาในการออกแบบการตรวจสอบข้อมูลช่วยแนะนำด้วยครั
กระทู้เก่าบอร์ด อ.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     
     

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R01736
2 ตาราง นี้ มัน รวมเป็น TABLE เดียวกันไม่ได้หรือครับ
ถ้าไม่รวม ก็น่าจะเป็น 1 ต่อ 1
2 @R01737
รวมกันไม่ได้ครับ
คือจะทำการตรวจสอบว่างานที่ดำเนินการจริงมีงานใดตรงกับแผนงานที่วางไว้บ้างนะครับ ผมเลยยังไม่รู้จะออกแบบ 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
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"     ก็ไปใช้โค้ดจัดการระหว่างแสดงผลอีกที (ถ้าเป็นรายงาน จะทำได้ง่ายกว่าแสดงบนหน้าจอ)
5 @R01747
ขอบคุณครับจะลองดู ผมก็ยังใหม่ๆกับ access อยู่
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2992s