การรันตัวเลขในแต่ละหน้าให้เท่ากันในรายงาน
กระทู้เก่าบอร์ด อ.Yeadram

 963   10
URL.หัวข้อ / URL
การรันตัวเลขในแต่ละหน้าให้เท่ากันในรายงาน

เรียน อาจารย์ทุกท่านครับ ผมต้องการสร้างรายงานให้แต่ละหน้ามีหมายเลข ที่ ตั้งแต่เลข 1-30 ไม่ทราบว่าต้องทำอย่างไรครับ เช่น
   ข้อมูลในหน้าที่ 1
ที่      รหัส            ชื่อ
1      001             ก
2      002             ข
3      003             ค
.......................ไปเรื่อยๆ
29    029             ง
30    030             จ

   ข้อมูลในหน้าที่ 2
ที่      รหัส            ชื่อ
1      031             ม    
2      032             ย
3      033             ร
.......................ไปเรื่อยๆ
29    029             น
30    030             บ

สรุปคือ ตรง txt=ที่   ให้รันหมายเลขเริ่มต้นเป็น 1 - 30 พอขึ้นหน้าใหม่ ก็ให้รันหมายเลขเริ่มต้นเป็น 1 - 30 ไปอย่างนี้ทุกๆหน้าครับ

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

1 @R22805
สิ่งที่ต้องการนั้น มีอยู่ 2 ส่วน อย่างแรกคือเมื่อพิมพ์ครบ 30 รายการแล้ว ก็ให้ขึ้นหน้าใหม่ อันนี้ให้ดูวิธีทำจาก http://www.thai-access.com/yeadram_view.php?topic_id=449 โดยปรับจาก mod 4 เป็น mod 29

ส่วนอย่างที่สองคือ ในทุกๆหน้า ให้พิมพ์เลขบรรทัดเริ่มจาก 1 ใหม่ ก็ให้ Control Source property ของเท็กซ์บ็อกซ์ "ที่" มีค่าเป็น = myCounter - (30 * int((myCounter-1)/30)) (ต้องมีเครื่องหมาย = ด้วยนะครับ)
2 @R22807
เรียน อาจารย์สันติสุข
เท็กซ์บ็อกซ์ "ที่" มันเป็นสีเขียว และ ตอน printer preview ตรงช่อง เท็กซ์บ็อกซ์ "ที่" มันขึ้นเป็น #Type! ครับ
3 @R22808
โค้ดที่ผมให้ไปในลิงค์ก่อนหน้าผิด ให้เปลี่ยนจาก myCount Mod เป็น myCounter Mod ครับ นอกนั้นถูกต้องแล้ว
4 @R22809
ผมใส่ดังนี้ ก็ยังคงเป็นเหมือนเดิมครับ
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    Me!myPageBreak.Visible = ((Me!myCounter Mod 29) = 0)
End Sub

ที่               รหัส            ชื่อ
#Type!      001             ก
#Type!      002             ข
#Type!      003             ค

ตรง เท็กซ์บ็อกซ์ "ที่" เวลาพิมพ์มันจะขึ้นดังนี้ครับ access 2010
=[myCounter]-(30*Int(([myCounter]-1)/30))
5 @R22810
คุณลองเปลี่ยนจาก =[myCounter]-(30*Int(([myCounter]-1)/30)) มาเป็น =[myCounter] ดูครับ ว่าพิมพ์ได้หรือไม่ แต่ค่าที่พิมพ์จะไม่ใช่อย่างที่ต้อง ตรงนี้ช่างมันก่อน
6 @R22811
พิมพ์ได้ครับ
7 @R22812
ลองเปลี่ยนเป็น =Int([myCounter]) ว่าทำงานได้ไหม ถ้าได้ ลองเพิ่มทีละส่วนใน expression ดูครับ ว่าเพิ่มจนถึงจุดไหนที่ทำให้เกิดปัญหา เพิ่มจนกว่าจะเหมือนตามที่เราต้องการครับ
8 @R22813
พอผมพิมพ์ =[myCounter] ผมสังเกตุดู เท็กซ์บ็อกซ์ที่ผมตั้งชื่อว่า "myCounter"
จะมีเครื่องหมายตกใจ เอาเมาส์ไปชี้ดูจะมีข้อความว่า "This control has a reference to itself" ครับ

พอผมพิมพ์ =Int([myCounter]) มันก็ยังมีเครื่องหมายตกใจเหมือนเดิม
9 @R22814
Control Source property ของเท็กซ์บ็อก myCounter จะมีค่าเป็น =1 เสมอ ไม่ต้องแก้ไขอะไรนะครับ ให้ทดลองทำเฉพาะเท็กซ์บ็อกซ์ "ที่" เท่านั้น
10 @R22815
ได้แล้วครับอาจารย์ ขอบคุณมากครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3508s