รายงานเลขไม่รันตามที่สั่งครับ
กระทู้เก่าบอร์ด อ.Yeadram

 2,824   9
URL.หัวข้อ / URL
รายงานเลขไม่รันตามที่สั่งครับ

คืออยากทราบว่าทำไมเวลาที่ผมเขียนโค๊ตใน sql ให้มันเรียงจากวันที่ (Report)
พอกดแสดงแล้วปรากฏว่ามันไม่ยอมรันตามวันที่ กระโดดไป กระโดดมา พอผมเอา
โค๊ตที่เขียนหาผลรวมใน textbox ออก มันก็จะรันวันทีั่่ได้ปกติครับ ซึ่งโค๊ตที่ผมเขียนหาผลรวม
ก็คือ =Sum([amount]) เป็นต้นครับ
มันเป็นเพราะอะไรหรอครับ

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

1 @R03495
เพราะอะไรหรอครับ
2 @R03499
โค้ด ใน sql ของคุณ เป็นอย่างไร
โค้ด ใน textbox ของคุณ เป็นอย่างไร
textbox ของคุณวางไว้ section ไหนใน Report
Report ของคุณ มีกรุ๊ป หรือไม่
มีการเรียงลำดับหรือไม่ เรียงตามอะไร
3 @R03518
งั้นผมรบกวนถามคุณ yeadram หน่อยครับว่า
ถ้าเราจะเขียนโค๊ตหาผลรวมของ amount ที่หน้า vba เนี่ยต้องเขียนยังไงหรอครับ
4 @R03519
sum(amount)
5 @R03525
ไม่ไ้ด้ครับ
ผมเขียนไว้ที่ส่วนของ Private Sub ReportFooter_Print(Cancel As Integer, PrintCount As Integer)
Text40 = Sum(amount)

มันก็ฟ้องว่า
Compile Error
Sub or function not define
6 @R03527
แก้ปัญหาผิดจุดแล้วล่ะครับ
ไม่จำเป็นต้องเขียน vba หรอกครับ
ถ้าจะเขียน vba คุณต้อง จำลองเรคคอร์ดเซ็ต แล้ว sum เอาจากตรงนั้น

ทำไม ไม่กลับไปเขียนเป็น นิพจน์ ใน textbox เอาล่ะครับ
ปัญหาที่มัน เรียงลำดับผิดๆ ถูกๆ ก็ไปแก้ปัญหามันตรงนั้นเลย ไม่ต้อง มาเขียน sum ด้วย vba หรอก

- การแก้ปัญหา เรียงผิดๆ ถูกๆ ให้ตรวจสอบ ตามความเห็น (R03499)
- แต่ถ้าอยากเขียนเป็นโค้ด อาจต้องเขียนเยอะกว่านั้นนะ เท่าที่ผมเข้าใจ เพราะระบบรายงาน มันไม่ได้ทำงานแบบพรึ่บเดียว เห็นข้อมูลทั้งหมด แต่มันจะไล่วนลูปแสดงผลทีละรายการ ตั้งแต่รายการแรก จนรายการสุดท้าย นั่นหมายความว่า เมื่อมันแสดงผลรายการที่ 2 มันก็จำค่าต่างๆ ของรายการที่ 1 ไม่ได้แล้วเพราะมันไม่สนจะจำหรอก มันแค่วนรอบ
- 1 หาค่าทุกๆ ฟิลด์ ของรายการนั้นๆ
- 2 โปรยค่าต่างๆ นั้นลงใน control (จะทำตามเงื่อนไขของแต่ละคอนโทรลในจังหวะนี้ รวมถึงการประมวลผลนิพจน์ด้วย)
- 3 ไปทำงานในรายการใหม่ (ลืมค่าของรายการก่อนหน้านี้หมดแล้ว)

ดังนั้นการ sum คุณต้องไปเขียนโค้ดในเหตุการณ์อื่นก่อน คืออาจจะเขียนยอดบวกเอาไว้ใน เหตุการณ์ตอนที่มันกำลังโปรยข้อมูล แล้วบวกเพิ่มเรื่อยๆ เข้าตัวแปร พอมาถึงเหตุการณ์ ReportFooter_Print ของคุณนี้ ค่อยเอาค่าตัวแปรมาแสดงผล


การเขียนด้วยนิพจน์ คือการพึ่งความสามารถของ Access สำหรับงานอย่างนี้ ผมว่ามันง่ายกว่าเยอะ
การเขียนด้วย โค้ด คือการพึ่งพาความสามารถของ VBA มันก็ทำได้แต่มันจะยากกว่าสักหน่อย

-นั่นสำหรับส่วน "รายงาน" นะครับ
-ส่วน "ตาราง" ควบคุมด้วย Access ง่ายกว่า VBA
-ส่วน "คิวรี่" ควบคุมด้วย Access ง่ายกว่า VBA
-ส่วน "ฟอร์ม" ควบคุมด้วย VBA ง่ายกว่า Access
- การควบคุม "รายงาน" ด้วย VBA มีข้อจำกัดเยอะ บางครั้งผมยังได้ยิน อ.สันติสุข บ่นๆ เลยว่า "ระบบรายงานของ Access ยังไม่ดีพอ" เพราะฉะนั้นถ้าเลือกได้ ขอให้ควบคุมมันด้วยการเขียนเป็น นิพจน์ดีกว่าครับ

ถ้ามองหาสาเหตุไม่เจอจริงๆ (เป็นไปได้ที่เราจะมีช่วงมืดตึ๊บ ทุกคนเคยเป็นทั้งนั้นครับ) ลองส่งตัวอย่างเข้า เมล์ของบอร์ดมาครับ (คัดข้อมูลเฉพาะที่จำเป็นมาก็ได้ เพื่อให้ไฟล์เล็กๆ)
เขียนหัวข้ออีเมล์ให้ สังเกตง่าย (เผื่อคนอื่นๆ ตามเข้ามาค้นความรู้ในภายหลัง)
เดี๋ยวจะช่วยดูให้ครับ
7 @R03533
ผมลองๆมาเช็คดูแล้วเหมือนว่า มันไม่ยอมรันตามที่ผมเขียน order by ไว้อะครับ
คือผมเขียน select ไว้ในส่วนคิวรี่ ครับ ผมรองรันในคิวรี่เลยมันก็รันเลขให้นะครับ
แต่พอรันที่หน้ารายงานมันกลับไม่ยอมรันเลขให้ครับ ตอนแรกที่เป็นที่หน้าอื่นๆคือ พอผมเอา =Sum([amount]) ที่เขียนไว้ใน textbox ออกมันก็จะสามารถรันเลขที่ได้ครับ
แต่หน้าที่เป็นปัญหาอยู่ตอนนี้ผมลองเอาออกหมดก็รันไม่ได้ครับ มันเกิดเพราะอะไรหรอครับ แล้วเมล์ของบอร์ดนี่อะไรหรอครับผมหาไม่เจอเลยอะ ตอนนี้กำลังเข้าสู่โหมดมึนตึ๊บจริงๆครับ
8 @R03537
accboard @ gmail . com

เผื่ออยากเข้าไปค้นหาตัวอย่างอื่นๆ ก็เข้าได้ครับ
www.gmail.com
user : accboard
pwd : accgmail

เข้าไปดูก่อนก็ได้ครับ อาจจะได้รู้ว่า
ส่วนใหญ่แล้วเวลาคนอื่นเขาฝากไฟล์เข้ามา เข้าเขียน หัวข้อจดหมายกันอย่างไร ถึงจะค้นหาง่าย
9 @R06381
เขียน Code แล้วพอขึ้นหน้าใหม่ค่ามันกระโดดไปทีละ 1 record ไม่รู้ไปเอาค่าจากไหนมาบวกเพิ่มหาแล้วไม่เจอ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3707s