สมัครสมาชิก
 

สร้างบิลที่มีรายการสินค้ามาก จึงพิมพ์บิลใบที่1 2 3...



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

07 ก.ย. 62 , 16:23:12
อ่าน 222 ครั้ง

kunlek

สร้างบิลกำกับส่ินค้า มีรายการสินค้าแต่ละบิลมาก เมื่อสั่งพิมพ์แต่ละ IV จะออกมามากกว่า 1 ใบ  ปัญหาใบที่ 1 คือรายการจำนวนรวมของบิล  ตารางท้ายบิล หายไปหมด ไปอยู่หน้าสุดท้าย
ปัญาใบที่ 2 คือ หัวบิลหาย เริ่มพิมพ์ตั้งแต่ page header
เรียนถามวิธีสร้างบิล ให้หน้าที่ 1 และหน้าที่ 2 ข้อความและตารางฟอร์มอยู่ครบ แตกต่างเพียง ข้อมูลสินค้าที่ขายครับ



 

07 ก.ย. 62 , 18:33:45
ตอบกลับ #1

สันติสุข

- Report Header/Footer section จะพิมพ์ครั้งเดียวเป็นเหมือนใบแปะหน้าแรกและหน้าสุดท้ายของรายงาน
- Page Header/Footer section จะพิมพ์ทุกๆหน้า ยกเว้นเรากำหนด Property หรือเขียนโค้ดควบคุมเพื่อซ่อนไว้ ไม่ให้พิมพ์
- Group Header/Footer section จะพิมพ์เมื่อข้อมูลที่ใช้ในการกำหนดกลุ่ม เปลี่ยนแปลงไป พิมพ์เมื่อเริ่มต้นกลุ่มใหม่และสิ้นสุดกลุ่มเดิม ยกเว้นเรากำหนด Property หรือเขียนโค้ดควบคุมเพื่อซ่อนไว้ ไม่ให้พิมพ์

ดังนั้นหัวกระดาษจึงไม่ควรอยู่ที่ Report section แต่ควรอยู่ที่ Page section มากกว่าครับ แต่ถ้าเกิดว่า 1 IV มีรายการเกิน 1 หน้า และอยากให้มีหัวกระดาษเฉพาะใบแรกของแต่ละ IV ก็เปลี่ยนจากที่ไว้ใน Page section มาเป็น Group section ที่รวมกลุ่มตามเลข IV และกำหนด Force New Page property เป็น Before Section แทนก็ได้ครับ
ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บ
 

07 ก.ย. 62 , 20:26:39
ตอบกลับ #2

kunlek

ในกรณีนี้ ผมจึงต้องให้ หัวบิล รายละเอียดเลขอินวอยซ์ ทุกอย่างอยู่ใน page header/footer  ส่วนของreport header/footer ไม่ต้องใช้ เพื่อดูเหมือนใช้ print form ใช่ไหมครับ 

 

07 ก.ย. 62 , 20:29:40
ตอบกลับ #3

สันติสุข

ควรเป็นอย่างนั้นครับ
ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บ
 

08 ก.ย. 62 , 09:41:35
ตอบกลับ #4

kunlek

ที่ทำมาผิดหมด แก้ไขเสร็จแล้ว แต่สังเกตว่าบิลใบที่1 ใบที่2 จำนวนเงินมียอดและรายการเท่ากัน  อจ.มี codeที่ไม่ให้บิลใบที่ 1แสดงหรือไม่ครับ กรณีบิลมีมากกว่า 1 หน้า

 

08 ก.ย. 62 , 16:10:37
ตอบกลับ #5

สันติสุข

ไม่เข้าใจครับ บิลใบที่ 1 และ 2 เหมือนกัน ?  หมายถึงบิลเลขเดียวกัน แต่มีจำนวนเกิน 1 หน้า แล้วจะให้แสดง Page Footer เฉพาะหน้าสุดท้าย หรือว่ายังไง ?
ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บ
 

08 ก.ย. 62 , 16:13:24
ตอบกลับ #6

kunlek

ครับ ให้แสดงเฉพาะ page footer หน้าสุดท้าย

 

08 ก.ย. 62 , 16:34:04
ตอบกลับ #7

สันติสุข

1. ให้สร้าง Group ในรายงานโดยกลุ่มตามหมายเลข IV  ให้มีแต่ Group Footer section สมมุติชื่อ GroupFooter1  ไม่ต้องมี Group Header   ให้ความสูงเป็น 0 ก็ได้   กำหนดให้ Force New Page property เป็น After Section   ตัว Group section จะครอบ Detail section เอาไว้โดยอัตโนมัติ

2. ใส่โค้ดต่อไปนี้ลงไป
โค๊ด: [Select]
Option Compare Database
Option Explicit

Dim ShowPageFooter As Boolean

Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer)
    ShowPageFooter = False
    Me.Section("PageFooterSection").Visible = True
End Sub

Private Sub GroupFooter1_Format(Cancel As Integer, FormatCount As Integer)
    ShowPageFooter = True
End Sub

Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer)
    If Not ShowPageFooter Then Me.Section("PageFooterSection").Visible = False
End Sub
ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บ
 

08 ก.ย. 62 , 21:23:47
ตอบกลับ #8

kunlek

ยังไม่ได้ครับ เอา code นี้ไปใส่ในโมดูล ถูกต้องไหมครับ และ froce new page เปลี่ยนเป็น after section

 

08 ก.ย. 62 , 21:47:55
ตอบกลับ #9

kunlek

สร้าง group footer

 

08 ก.ย. 62 , 22:10:10
ตอบกลับ #10

สันติสุข

โมดูลของรายงานตัวนี้นะครับ ไม่ใช่โมดูลแยกต่างหาก และบรรทัด Private Sub GroupFooter1_Format(Cancel As Integer, FormatCount As Integer)  เปลี่ยนชื่อ GroupFooter1 ไปเป็นชื่อกรุ๊ปของคุณหรือยัง
« แก้ไขครั้งสุดท้าย: 08 ก.ย. 62 , 22:17:26 โดย สันติสุข »
ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บ
 

09 ก.ย. 62 , 07:02:51
ตอบกลับ #11

kunlek

ชื่อ groupfooter1 แต่หาโมดูลของ form ไม่เจอครับ ผมคงใส่โมดูลผิด   หรือเป็นว่าส่วนยอดรวมทั้งหมดผมอยู่ที่ pagefooter

 

09 ก.ย. 62 , 07:16:25
ตอบกลับ #12

kunlek

รายงานผมมี page header,  detail, voucher_s_id footer , page footer   

 

09 ก.ย. 62 , 07:22:36
ตอบกลับ #13

kunlek

โมดูลที่ใส่เป็นอย่างนี้ครับ

Option Compare Database

Option Explicit

Dim ShowPageFooter As Boolean

Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer)
    ShowPageFooter = False
    Me.Section("PageFooterSection").Visible = True
End Sub


Private Sub voucher_s_id_footer_Format(Cancel As Integer, FormatCount As Integer)

    ShowPageFooter = True
End Sub

Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer)
    If Not ShowPageFooter Then Me.Section("PageFooterSection").Visible = False
End Sub

 

09 ก.ย. 62 , 10:55:26
ตอบกลับ #14

สันติสุข

ตามรูป เมื่อคลิกไปโค้ดที่บอกแล้ว ที่ Title ตามตำแหน่งที่ลูกศรชี้ จะต้องเป็น Report_ชื่อรายงานของคุณ
ส่วนชื่อของ Group จะดูตามตำแหน่งที่วงกลมไว้ เช็คดูว่าถูกต้องหรือไม่

ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บ
 

09 ก.ย. 62 , 14:54:52
ตอบกลับ #15

kunlek

เจอ error ไปไม่ถูกเลยครับ ขอความกรุณาช่วยทีครับ




 

09 ก.ย. 62 , 15:13:57
ตอบกลับ #16

สันติสุข

ลบส่วนที่ผมตีกรอบเอาไว้
ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บ
 

09 ก.ย. 62 , 20:28:46
ตอบกลับ #17

kunlek

ได้แล้วครับ อจ. รายการที่อยู่ section pagefooter หายหมด  จะไปโชว์เฉพาะหน้าสุดท้าย  อจ.ครับ ....ถ้าจะให้หน้าแรก ที่ footer หายหมด ให้แสดงลายมือชื่อผู้ขาย  ผู้จัดการ เหมือนหน้าสุดท้าย เราจะเอาไปไว้ใน section ไหนของ page ครับ

 

09 ก.ย. 62 , 23:26:00
ตอบกลับ #18

สันติสุข

Access มี Page Footer section ให้แค่อันเดียว  ไม่มี Page Footer ซ้อนกันหลายๆอัน  ถ้าจะให้แสดงเฉพาะบางส่วนในทุกๆหน้า แทนที่จะซ่อน Page Footer ทั้ง section  ก็ต้องซ่อนเฉพาะบางส่วนใน section แทน คือ กำหนด .Visible ให้เท็กซ์บ็อกซ์, ลาเบล ฯลฯ ให้เป็น = True หรือ False ไปทีละตัว

แต่กรณีมีหลายๆเท็กซ์บ็อกซ์, ลาเบล ที่จะต้องซ่อน เหมือนอย่างกรณีนี้ เราอาจใช้การสร้างกล่องสี่เหลี่ยมสีขาวทึบ และจัดให้มันอยู่ชั้นบนสุด โดยทับส่วนข้อความที่จะซ่อนเอาไว้ เช่นตัวอย่างในรูป เราสร้าง Box1 และ Box2 (ของจริงต้องสีขาวทึบ ไม่ใช่สีเหลืองโปร่งแสง)  เมื่อต้องการซ่อนข้อความต่างๆ เราก็ให้แสดง Box1, Box2   ถ้าต้องการแสดงข้อความ ก็กลับเป็นให้ซ่อน Box1, Box2 ไปแทน


ส่วนโค้ดก็เปลี่ยนเป็น

Option Compare Database
Option Explicit

Dim ShowPageFooter As Boolean

Private Sub GroupFooter1_Format(Cancel As Integer, FormatCount As Integer)
    ShowPageFooter = True
End Sub

Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer)
    Me.Box1.Visible = Not ShowPageFooter
    Me.Box2.Visible = Not ShowPageFooter
End Sub

Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer)
    ShowPageFooter = False
End Sub

อย่าลืมไปเปลี่ยน Box1, Box2 เป็นชื่อที่คุณสร้างบนรายงานด้วย และถ้ามีกี่ Box ก็เขียนโค้ดซ้ำๆกันไปเท่านั้นบรรทัด
ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บ
 

10 ก.ย. 62 , 10:27:32
ตอบกลับ #19

kunlek

ขอบพระคุณครับ เรียบร้อยครับ

 


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