กระทู้เก่าบอร์ด อ.Yeadram
1,090 0
URL.หัวข้อ /
URL
กำจัดบรรทัดว่างในReport และกำหนดหน้าคี่ หน้าคู่ให้
รบกวนท่านอาจารย์และผู้รู้ทั้งหลาย เพื่อจัดทำรายงานให้เป็นไปตามที่กำหนด
โดยมีข้อมูลดังนี้
Table1 : ID, Name, SurName, ID_Man
Table2 : ID_Man Out
ใช้ Query1 ได้ข้อมูลมาตามต้องการแล้วต้องการนำทำ Report
Ex ข้อมูลที่ได้มาจาก Query1
ID Name SurName ID_Man Out
๑ จิรพันธ์ อุดมญาติ ๑-๑๐๓๑-๐๐๒๙๔-๔๖-๔
๒ วัชรพล วัชนาวงษ์ ๑-๗๒๐๙-๐๐๑๘๗-๑๖-๘
๓ สุรพัฒน์ มลิทอง ๑-๗๐๙๙-๐๐๘๘๓-๘๓-๙ ลาออก
๔ วิษณุ หลีเกษม ๑-๑๐๓๐-๐๐๐๖๖-๖๔-๘ ตาย
๕ วีระพงษ์ เล่าทรัพย์ ๑-๗๒๙๙-๐๐๒๙๕-๔๘-๑
๖ ศุภณัฐ ดิษฐ์กระจัน ๑-๗๒๐๔-๐๐๑๓๕-๖๔-๙ ลาออก
๗ กิตติ ขันแก้ว ๑-๕๓๐๓-๐๐๐๖๘-๔๙-๖
๘ มนฑล จิตโสภา ๑-๑๐๐๗-๐๑๙๑๕-๘๒-๗
๙ สมบัติ ประนมพนธ์ ๑-๗๓๐๒-๐๐๒๓๐-๗๙-๖
๑๐ จงดี รักอู่ ๑-๗๒๐๙-๐๐๑๘๖-๐๔-๘
๑๑ สราวุฒิ รักอู่ ๑-๗๒๐๙-๐๐๑๘๙-๖๓-๒
๑๒ นพดล ชูศรีจันทร์ ๑-๗๒๐๙-๐๐๑๘๕-๓๗-๘
๑๓ ชยณัฐ จันทร์ประสพพร ๑-๗๒๐๙-๐๐๑๘๕-๓๐-๑ ย้ายโรงงาน
๑๔ ประสิทธิ์ชัย อาจคงหาญ ๑-๗๒๙๙-๐๐๒๘๘-๔๓-๔ ย้ายแผนก
๑๕ กิตปกรณ์ รักน้อย ๑-๗๒๐๙-๐๐๑๘๑-๙๘-๔ ลาออก
๑๖ อานนท์ ยิ้ม ไพบูรณ์ ๑-๗๒๐๙-๐๐๑๘๑-๑๖-๐ ลาพักร้อน
๑๗ ภาคภูมิ นามโชติ ๑-๗๒๐๙-๐๐๑๘๕-๖๐-๒
๑๘ ธนพล ปานสอนดี ๑-๗๔๙๙-๐๐๓๖๙-๗๖-๑
๑๙ ปิยะ ทำทวี ๑-๗๒๐๙-๐๐๑๘๕-๕๐-๕
๒๐ จิณณวัตร หมอยาดี ๑-๗๓๐๒-๐๐๒๓๘-๖๗-๓
Report ที่ต้องการ
กรณีไม่มีรายการใน [Out] ให้แสดงรายการ
[Out] เป็นบรรทัดว่าง
(Running) (ID) (Name)
(SurName)
(ID_Man)
หากมีรายการใน(Out) ให้นำข้อมูลใน (ID) และ (Out) มาแสดงแทน (ไม่ต้องแสดงName,SureName,ID_Man)
พร้อมกับเลื่อนข้อมูลลำดับถัดไปมาแสดงในหน้ากระดาษรายงาน
(หน้าคี่) มีส่วนหัวกระดาษ
จำนวน เลขที่ รายการ
(RunningSum) ( ID )
๑ ๑ นาย จิรพันธ์
อุดมญาติ
๑-๑๐๓๑-๐๐๒๙๔-๔๖-๔
๒ ๒ นาย วัชรพล
วัชนาวงษ์
๑-๗๒๐๙-๐๐๑๘๗-๑๖-๘
๓ ลาออก ,๔ ตาย
๓ ๕ นาย วีระพงษ์
เล่าทรัพย์
๑-๗๒๙๙-๐๐๒๙๕-๔๘-๑
๖ ลาออก
๔ ๗ นาย กิตติ
ขันแก้ว
๑-๕๓๐๓-๐๐๐๖๘-๔๙-๖
๕ ๘ นาย มนฑล
จิตโสภา
๑-๑๐๐๗-๐๑๙๑๕-๘๒-๗
๖ ๙ นาย สมบัติ
ประนมพนธ์
๑-๗๓๐๒-๐๐๒๓๐-๗๙-๖
......................ขึ้นหน้าใหม่ (หน้าคี่, หน้าคู่) ว่างระเบียนไม่เท่ากัน เนื่องจากหน้าคี่ มีส่วนหัวกระดาษ หน้าคู่ ไม่มี จึงต้องการลดระยะบนในหน้าคู่เพื่อให้ได้ข้อมูล
ในรายงาน รายงาน ๑ แผ่น วาง ๑๓ ระเบียน (หน้าคี่ ๖ ระเบียบ, หน้าคู่ ๗ ระเบียบ)
(หน้าคู่) ไม่มีส่วนหัวกระดาษ
จำนวน เลขที่ รายการ
(RunningSum) ( ID )
๗ ๑๐ นาย จงดี
รักอู่
๑-๗๒๐๙-๐๐๑๘๖-๐๔-๘
๘ ๑๑ นาย สราวุฒิ
รักอู่
๑-๗๒๐๙-๐๐๑๘๙-๖๓-๒
๙ ๑๒ นาย นพดล
ชูศรีจันทร์
๑-๗๒๐๙-๐๐๑๘๕-๓๗-๘
๑๓ ย้ายโรงงาน, ๑๔ ย้ายแผนก, ๑๕ ลาออก, ๑๖ ลาพักร้อน
๑๐ ๑๗ นาย ภาคภูมิ
นามโชติ
๑-๗๒๐๙-๐๐๑๘๕-๖๐-๒
๑๑ ๑๘ นาย ธนพล
ปานสอนดี
๑-๗๔๙๙-๐๐๓๖๙-๗๖-๑
๑๒ ๑๙ นาย ปิยะ
ทำทวี
๑-๗๒๐๙-๐๐๑๘๕-๕๐-๕
๑๓ ๒๐ นาย จิณณวัตร
หมอยาดี
๑-๗๓๐๒-๐๐๒๓๘-๖๗-๓
รายงานที่ทดลองออกแบบแล้วโดยจัดรูปแบบดังนี้ครับ
ในส่วน Detail ( ใช้TextBoxทั้งหมดในรายงาน ) ในหนึ่งระเบียบ กำหนดไว้ ๔ บรรทัด
[Out] Ctrl : =IIf([Out] Is Not Null,[Sd_27] & " " & [Out],Null)
[ลำดับ] Ctrl : =IIf([Name] Is Not Null,1,Null) ; [ID] Ctrl : =IIf([Out] Is Null,[Sd_27],Null) ; [Name] Ctrl : =IIf([Out] Is Null,"นาย " & ![Name],Null)
[SurName] Ctrl : =IIf([Out] Is Null,[SurName],Null)
[ID_Man] Ctrl : =IIf([Out] Is Null,[ID_Man],Null)
สั่ง Runได้รูปแบบรายงานแบบนี้ครับ
จำนวน เลขที่ รายการ
(RunningSum) ( ID )
๑ ๑ นาย จิรพันธ์
อุดมญาติ
๑-๑๐๓๑-๐๐๒๙๔-๔๖-๔
๒ ๒ นาย วัชรพล
วัชนาวงษ์
๑-๗๒๐๙-๐๐๑๘๗-๑๖-๘
๓ ลาออก
๓ (บรรทัดว่าง)
(บรรทัดว่าง)
(บรรทัดว่าง)
๔ ตาย
๔ (บรรทัดว่าง)
(บรรทัดว่าง)
(บรรทัดว่าง)
๕ ๕ นาย วีระพงษ์
เล่าทรัพย์
๑-๗๒๙๙-๐๐๒๙๕-๔๘-๑
๖ ลาออก
๖ (บรรทัดว่าง)
(บรรทัดว่าง)
(บรรทัดว่าง)
๗ ๗ นาย กิตติ
ขันแก้ว
๑-๕๓๐๓-๐๐๐๖๘-๔๙-๖
๘ ๘ นาย มนฑล
จิตโสภา
๑-๑๐๐๗-๐๑๙๑๕-๘๒-๗
ฯลฯ
สรุป
บรรทัดที่มีข้อมูลใน [Out] จะแสดงค่าเป็นบรรทัดว่างทั้งหมด (รายงานที่ต้องการกำจัดบรรทัดว่างในรายงานโดยการเลื่อนลำดับข้อมูลขึ้นไปแทน)
ถ้ามีข้อมูลใน [Out] ในระเบียบนถัดไปให้นำไปเรียงต่อกันจนถึงระเบียบที่ [Out] เป็นค่าว่างจึงเริ่มแสดงข้อมูลใหม่
คำถาม
1. มีวิธีการกำหนดอย่างไรเพื่อให้ได้รายงานตามที่กำหนด ต้องเขียน Code หรือวาง Sub Report อย่างไรถึงจะได้รูปแบบตามต้องการ
2. หากต้องการให้รายงานมี หน้าคี่, หน้าคู่ไม่เหมือนกัน (หน้าคี่ ๖ ระเบีบน มีหัวกระดาษ) (หน้าคู่ ๗ ระเบียบ ไม่มีหัวกระดาษ) ต้องเขียน Code อย่างไร
รบกวนอาจารย์และท่านผู้รู้ท่านอื่นด้วยครับ ขอขอบพระคุณเป็นอย่างสูง
ขออภัยอธิบายยาวไปหน่อย
หมายเหตุ ผมมีความรู้ Access แบบงู ๆ ปลา ๆ นะครับ ปกติที่ใช้งานอยู่ส่วนมากจะใช้ Query ดึงข้อมูลที่ต้องการไปออกรายงาน Code
SQL หรือ VBA ไม่ค่อยได้ใช้ถ้าไม่จำเป็นจริง ๆ นิพจน์ในรายงานในการเลือกก็จะใช้ IIf เป็นส่วนมาก
โดยมีข้อมูลดังนี้
Table1 : ID, Name, SurName, ID_Man
Table2 : ID_Man Out
ใช้ Query1 ได้ข้อมูลมาตามต้องการแล้วต้องการนำทำ Report
Ex ข้อมูลที่ได้มาจาก Query1
ID Name SurName ID_Man Out
๑ จิรพันธ์ อุดมญาติ ๑-๑๐๓๑-๐๐๒๙๔-๔๖-๔
๒ วัชรพล วัชนาวงษ์ ๑-๗๒๐๙-๐๐๑๘๗-๑๖-๘
๓ สุรพัฒน์ มลิทอง ๑-๗๐๙๙-๐๐๘๘๓-๘๓-๙ ลาออก
๔ วิษณุ หลีเกษม ๑-๑๐๓๐-๐๐๐๖๖-๖๔-๘ ตาย
๕ วีระพงษ์ เล่าทรัพย์ ๑-๗๒๙๙-๐๐๒๙๕-๔๘-๑
๖ ศุภณัฐ ดิษฐ์กระจัน ๑-๗๒๐๔-๐๐๑๓๕-๖๔-๙ ลาออก
๗ กิตติ ขันแก้ว ๑-๕๓๐๓-๐๐๐๖๘-๔๙-๖
๘ มนฑล จิตโสภา ๑-๑๐๐๗-๐๑๙๑๕-๘๒-๗
๙ สมบัติ ประนมพนธ์ ๑-๗๓๐๒-๐๐๒๓๐-๗๙-๖
๑๐ จงดี รักอู่ ๑-๗๒๐๙-๐๐๑๘๖-๐๔-๘
๑๑ สราวุฒิ รักอู่ ๑-๗๒๐๙-๐๐๑๘๙-๖๓-๒
๑๒ นพดล ชูศรีจันทร์ ๑-๗๒๐๙-๐๐๑๘๕-๓๗-๘
๑๓ ชยณัฐ จันทร์ประสพพร ๑-๗๒๐๙-๐๐๑๘๕-๓๐-๑ ย้ายโรงงาน
๑๔ ประสิทธิ์ชัย อาจคงหาญ ๑-๗๒๙๙-๐๐๒๘๘-๔๓-๔ ย้ายแผนก
๑๕ กิตปกรณ์ รักน้อย ๑-๗๒๐๙-๐๐๑๘๑-๙๘-๔ ลาออก
๑๖ อานนท์ ยิ้ม ไพบูรณ์ ๑-๗๒๐๙-๐๐๑๘๑-๑๖-๐ ลาพักร้อน
๑๗ ภาคภูมิ นามโชติ ๑-๗๒๐๙-๐๐๑๘๕-๖๐-๒
๑๘ ธนพล ปานสอนดี ๑-๗๔๙๙-๐๐๓๖๙-๗๖-๑
๑๙ ปิยะ ทำทวี ๑-๗๒๐๙-๐๐๑๘๕-๕๐-๕
๒๐ จิณณวัตร หมอยาดี ๑-๗๓๐๒-๐๐๒๓๘-๖๗-๓
Report ที่ต้องการ
กรณีไม่มีรายการใน [Out] ให้แสดงรายการ
[Out] เป็นบรรทัดว่าง
(Running) (ID) (Name)
(SurName)
(ID_Man)
หากมีรายการใน(Out) ให้นำข้อมูลใน (ID) และ (Out) มาแสดงแทน (ไม่ต้องแสดงName,SureName,ID_Man)
พร้อมกับเลื่อนข้อมูลลำดับถัดไปมาแสดงในหน้ากระดาษรายงาน
(หน้าคี่) มีส่วนหัวกระดาษ
จำนวน เลขที่ รายการ
(RunningSum) ( ID )
๑ ๑ นาย จิรพันธ์
อุดมญาติ
๑-๑๐๓๑-๐๐๒๙๔-๔๖-๔
๒ ๒ นาย วัชรพล
วัชนาวงษ์
๑-๗๒๐๙-๐๐๑๘๗-๑๖-๘
๓ ลาออก ,๔ ตาย
๓ ๕ นาย วีระพงษ์
เล่าทรัพย์
๑-๗๒๙๙-๐๐๒๙๕-๔๘-๑
๖ ลาออก
๔ ๗ นาย กิตติ
ขันแก้ว
๑-๕๓๐๓-๐๐๐๖๘-๔๙-๖
๕ ๘ นาย มนฑล
จิตโสภา
๑-๑๐๐๗-๐๑๙๑๕-๘๒-๗
๖ ๙ นาย สมบัติ
ประนมพนธ์
๑-๗๓๐๒-๐๐๒๓๐-๗๙-๖
......................ขึ้นหน้าใหม่ (หน้าคี่, หน้าคู่) ว่างระเบียนไม่เท่ากัน เนื่องจากหน้าคี่ มีส่วนหัวกระดาษ หน้าคู่ ไม่มี จึงต้องการลดระยะบนในหน้าคู่เพื่อให้ได้ข้อมูล
ในรายงาน รายงาน ๑ แผ่น วาง ๑๓ ระเบียน (หน้าคี่ ๖ ระเบียบ, หน้าคู่ ๗ ระเบียบ)
(หน้าคู่) ไม่มีส่วนหัวกระดาษ
จำนวน เลขที่ รายการ
(RunningSum) ( ID )
๗ ๑๐ นาย จงดี
รักอู่
๑-๗๒๐๙-๐๐๑๘๖-๐๔-๘
๘ ๑๑ นาย สราวุฒิ
รักอู่
๑-๗๒๐๙-๐๐๑๘๙-๖๓-๒
๙ ๑๒ นาย นพดล
ชูศรีจันทร์
๑-๗๒๐๙-๐๐๑๘๕-๓๗-๘
๑๓ ย้ายโรงงาน, ๑๔ ย้ายแผนก, ๑๕ ลาออก, ๑๖ ลาพักร้อน
๑๐ ๑๗ นาย ภาคภูมิ
นามโชติ
๑-๗๒๐๙-๐๐๑๘๕-๖๐-๒
๑๑ ๑๘ นาย ธนพล
ปานสอนดี
๑-๗๔๙๙-๐๐๓๖๙-๗๖-๑
๑๒ ๑๙ นาย ปิยะ
ทำทวี
๑-๗๒๐๙-๐๐๑๘๕-๕๐-๕
๑๓ ๒๐ นาย จิณณวัตร
หมอยาดี
๑-๗๓๐๒-๐๐๒๓๘-๖๗-๓
รายงานที่ทดลองออกแบบแล้วโดยจัดรูปแบบดังนี้ครับ
ในส่วน Detail ( ใช้TextBoxทั้งหมดในรายงาน ) ในหนึ่งระเบียบ กำหนดไว้ ๔ บรรทัด
[Out] Ctrl : =IIf([Out] Is Not Null,[Sd_27] & " " & [Out],Null)
[ลำดับ] Ctrl : =IIf([Name] Is Not Null,1,Null) ; [ID] Ctrl : =IIf([Out] Is Null,[Sd_27],Null) ; [Name] Ctrl : =IIf([Out] Is Null,"นาย " & ![Name],Null)
[SurName] Ctrl : =IIf([Out] Is Null,[SurName],Null)
[ID_Man] Ctrl : =IIf([Out] Is Null,[ID_Man],Null)
สั่ง Runได้รูปแบบรายงานแบบนี้ครับ
จำนวน เลขที่ รายการ
(RunningSum) ( ID )
๑ ๑ นาย จิรพันธ์
อุดมญาติ
๑-๑๐๓๑-๐๐๒๙๔-๔๖-๔
๒ ๒ นาย วัชรพล
วัชนาวงษ์
๑-๗๒๐๙-๐๐๑๘๗-๑๖-๘
๓ ลาออก
๓ (บรรทัดว่าง)
(บรรทัดว่าง)
(บรรทัดว่าง)
๔ ตาย
๔ (บรรทัดว่าง)
(บรรทัดว่าง)
(บรรทัดว่าง)
๕ ๕ นาย วีระพงษ์
เล่าทรัพย์
๑-๗๒๙๙-๐๐๒๙๕-๔๘-๑
๖ ลาออก
๖ (บรรทัดว่าง)
(บรรทัดว่าง)
(บรรทัดว่าง)
๗ ๗ นาย กิตติ
ขันแก้ว
๑-๕๓๐๓-๐๐๐๖๘-๔๙-๖
๘ ๘ นาย มนฑล
จิตโสภา
๑-๑๐๐๗-๐๑๙๑๕-๘๒-๗
ฯลฯ
สรุป
บรรทัดที่มีข้อมูลใน [Out] จะแสดงค่าเป็นบรรทัดว่างทั้งหมด (รายงานที่ต้องการกำจัดบรรทัดว่างในรายงานโดยการเลื่อนลำดับข้อมูลขึ้นไปแทน)
ถ้ามีข้อมูลใน [Out] ในระเบียบนถัดไปให้นำไปเรียงต่อกันจนถึงระเบียบที่ [Out] เป็นค่าว่างจึงเริ่มแสดงข้อมูลใหม่
คำถาม
1. มีวิธีการกำหนดอย่างไรเพื่อให้ได้รายงานตามที่กำหนด ต้องเขียน Code หรือวาง Sub Report อย่างไรถึงจะได้รูปแบบตามต้องการ
2. หากต้องการให้รายงานมี หน้าคี่, หน้าคู่ไม่เหมือนกัน (หน้าคี่ ๖ ระเบีบน มีหัวกระดาษ) (หน้าคู่ ๗ ระเบียบ ไม่มีหัวกระดาษ) ต้องเขียน Code อย่างไร
รบกวนอาจารย์และท่านผู้รู้ท่านอื่นด้วยครับ ขอขอบพระคุณเป็นอย่างสูง
ขออภัยอธิบายยาวไปหน่อย
หมายเหตุ ผมมีความรู้ Access แบบงู ๆ ปลา ๆ นะครับ ปกติที่ใช้งานอยู่ส่วนมากจะใช้ Query ดึงข้อมูลที่ต้องการไปออกรายงาน Code
SQL หรือ VBA ไม่ค่อยได้ใช้ถ้าไม่จำเป็นจริง ๆ นิพจน์ในรายงานในการเลือกก็จะใช้ IIf เป็นส่วนมาก
Time: 0.2384s