*เขียนให้ report มัน sum ค่าในหน้าเดียวกันแต่ปริ้นออกมาแล้วค่าเพี้ยนช่วยหน่อยครับ ...
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 437   4
URL.หัวข้อ / URL
*เขียนให้ report มัน sum ค่าในหน้าเดียวกันแต่ปริ้นออกมาแล้วค่าเพี้ยนช่วยหน่อยครับ ...

คือผมได้เขียน ให้ report มัน Sum ค่า เป็นหน้าๆ ไปน่ะครับและทีนี้ค่าที่ Sum ได้ก็ถูกต้องครับ(เวลา preview นะ) แต่มีปัญหาตรงที่ว่า เวลาปริ้นออกมาสิครับ ค่า Sum ที่ปริ้นออกมา ดันไม่ตรงอ่ะครับ คือบางหน้าก็ ตรง บ้างหน้าก็ติดลบ ไปเป็นแสนๆ เลย หรือบางหน้าก็เป็นค่า 0 งงมากครับ ทั้งที่ ค่า Sum ตอนเรา preview report ดูก็ตรงหมด แต่ไหง พอปริ้นออกมาแล้ว ค่าดันไม่ตรง(แต่รู้สึกว่าตอนที่ปริ้นออกมาแล้วค่าเพี้ยนนี่ จะเลือกหน้าพิมพ์นะครับ แต่ถ้ากดปุ่มพิมพ์ทีเดียวทั้งหมดค่าจะตรงครับ แล้วก็เวลาที่เรา preview แล้วค่าจะตรง แต่พอเราปรับขอบหรือตั้งค่าหน้ากระดาษใหม่ ค่าจะเพี้ยนทันทีด้วย) ไม่ทราบว่าเป็น Bug ของ Access เองหรือว่าผมเขียน code ผิดไปหรือปล่าวครับ (แต่ก็ modify มาจาก ตัวอย่างทีอาจารย์สุภาพเคยให้แหละครับ) เอ้อ ส่วนปริ้นเตอร์ ผมก็ลองเปลี่ยนมาตั้งแต่ Canon Inkjet > Epson Inkjet > HP Laser

Code ดังนี้ครับ

Option Compare Database
Option Explicit
Dim X, Y As Currency (ตรงนี้ลองเป็นเป็น Double,Integer, Long แล้วก็ยังเป็นเหมือนเดิมครับ)

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If TheCounter Mod 8 = 0 Then
Me.PageBreak.Visible = True
Else
Me.PageBreak.Visible = False
End If
End Sub

Private Sub PageFooterSection_Print(Cancel As Integer, PrintCount As Integer)

SAL_SUM_PAGE = SAL_SUM_RUN - X
X = SAL_SUM_RUN

DEB_TAXMONEY_PAGE = DEB_TAXMONEY_RUN - Y
Y = DEB_TAXMONEY_RUN

TAX_PAYER = Forms![tax_money_month_report]!Label25.Caption
TAX_PAYER_POSITION = Forms![tax_money_month_report]!Label24.Caption
End Sub

-----------
คือใน code นี้ผมเขียนให้ มัน sum ค่าใน report หน้าละ สองค่าด้วยน่ะครับ แล้วก็ให้แสดงส่วนของ detail หน้าละ 8 record เอ้อ แล้ว property ของ textbox ที่ชื่อ SAL_SUM_PAGE กับ DEB_TAXMONEY_PAGE นี่ผม set ให้เป็นแบบ standard นะครับ แล้ว จุดทศนิยมเป็น 0 ครับ( แล้ว SAL_SUM_PAGE กับ DEB_TAXMONEY_PAGE ผมก็ให้มันไว้ในส่วน PageFootersection แล้วน่ะครับ)

ใช้ Winxp Pro sp1a
Access XP sp2 Thai
ครับ

ลองแก้มาหลายรอบแล้วครับ
รบกวนด้วยนะครับ
ขอบคุณมากๆ ครับ

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

1 @R05372
(อะ ทำไม post แล้วเป็ฯ ??? หมดเลยอ่า เอาใหม่ๆ ละกันนะครับ)
เอ่อ ขอรบกวนถามอีกคำถามนึงนะครับ

คือใน report น่ะครับ ผมได้วาง พวก textbox ไว้ที่ PageFooterSection (ก็คือมันจะแสดงท้ายหน้าตลอดใช่ไหมครับ) แล้วทีนี้ ในส่วน Detail ก็จะแสดงเรคอดในหน้าแรกกับหน้ากลางๆ เท่ากันหมดอยู่แล้ว(กรณีที่มีหลายๆ หน้านะ) แต่หน้าสุดท้าย ถ้าเกิดเหลือเรคอดน้อย มันก็จะทำให้แสดงเรคอดไม่สุดถึงท้ายหน้านั้นใช่ไหมครับ ก็เลยทำให้ textbox ที่วางไว้ในส่วน PageFooterSection ในหน้าสุดท้ายมันอยู่ห่างจากส่วน Detail น่ะครับ (ตอนนี้พูดถึงหน้าสุดท้ายอย่างเดียวนะ ก็คือผมได้วาง textbox และตีเส้นเป็นตารางด้วยน่ะครับ พอหน้าสุดท้ายเรคอดมันไม่ถึงสุดหน้า ก็ทำให้ตารางแหว่งไป)

กรณีนี้นี่ มีวิธีแก้ไขไหมครับ ไม่ทราบว่าใครเคยทำบ้าง

รบกวนอีกรอบนะครับ (ผมแนบ file รูป report มาให้ดูด้วยนะครับ)
ขอบคุณมากๆ เลยครับผม
2 @R05392
ครับ

พอดีผมได้ลองทดสอบใหม่ โดยใช้คำสั่ง

DoCmd.OpenReport stDocName, acNormal, , stWhere

(ตอนแรกใช้ acPreview แล้ว print ออกมาค่าก็ยังเป็น 0 ในหน้าแรก และบางหน้าน่ะครับ แต่พอใช้เป็น acNormal คือปริ้นเลย ค่าตรงแล้วล่ะครับ)

แต่ตอนนี้ก็ยังติดปัญหาตรงที่ว่า ทำไมค่า sum บางหน้า มันขาดไปหนึ่งน่ะครับ (คือ ค่า value ใน report ผมทั้งหมดตั้งให้เป็นแบบ standard และไม่มีจุดทศนิยมด้วยน่ะครับ ไม่รู้ว่ามันไปเอาค่า แบบมีจุดทศนิยมมา sum เองหรือปล่าว ทั้งที่ผมตั้งให้ไม่มีจุดแล้ว มันเลยขาดไปหนึ่งน่ะครับ แต่ว่ากรณีนี้เคย Sum ใน excel ก็เป็นครับ)

อย่างเช่น ค่า sum บางหน้าควรจะเป็น 20 แต่ ที่ทั้งลอง preview ดูหรือ print ออกมาแล้วก็ได้ 19 น่ะครับ

ไม่ทราบว่าใครเคยเจอปัญหานี้บ้างครับ
3 @R05394
ปัญหาน่าจะมาจากที่ไม่มีเหตุการณ์บางอย่างที่จะทำให้มีการคำนวณค่าตามที่ต้องการได้

แต่ตอนเปิดแบบ preview จะมีเหตุการณ์นั้น

ลองแก้แบบให้ preview report ก่อน แล้วค่อย print

ลองค้นด้วยคำว่า PrintOut ดูครับ
4 @R05464
ลองใช้ array แก้ปัญหาแทนครับ
http://www.thai-access.com/suphap.php?topic_id=2736
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0958s