แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - mtaccess

หน้า: 1 ... 6 7 8 [9]
129
ถ้าเป็นในรายงานเราสามารถทำ Running Sum ได้เลย โดยการสร้าง Text Box เปล่าๆ ขึ้นมาใหม่ สมมุติชื่อ txtrun แล้วกำหนด Control Source: =1 กำหนดตรง Running Sum: Over All (หรือ Over Group หากสร้าง Group)
เราจะได้เลยที่เรียงลำดับขึ้นมา จากนั้นก็เปลี่ยนเงื่อนไขใน Text Box ที่เรานับเลข 1-40 ใหม่เป็น
=IIf([txtrun] Mod 40=0,40,[txtRun] Mod 40)
อ้างที่ [txtrun] แทนการอ้างที่ [ID] ส่วนจะให้แสดงหรือไม่ก็กำหนดในส่วน Visible เอาว่าจะเป็น Yes หรือ No
ส่วนเรื่องอยากให้หน้าละ 20 เรคคอร์ดก็ปรับส่วนพื้นที่ Detail ของรายงานให้ความสูงได้ 20 เรคคอร์ดกับหน้ากระดาษที่กำหนดไว้ แล้วแก้โค้ดที่ Detail > Event > On Print:
Const Blank_Line = 20 'จากเดิม 40 เป็น 20 แทน ก็น่าจะใช้ได้แล้วครับ
ไฟล์ตัวอย่างแก้ไข link


ลองทำตามคำแนะนำได้ข้อมูลตามนี้ค่ะ ข้อมูลเรียงแล้วค่ะ แสดงหน้าละ 20 แล้วค่ะ แต่ยังติดปัญหาตรงช่องว่างที่ต้องแสดงให้ครบ 20 แถวในกรณีที่ข้อมูลมีไม่ครบ
รบกวนแนะนำด้วยค่ะ
หน้าที่ 1
   หน้าที่ 2
   หน้าที่ 3
   หน้าที่ 4


130
ถ้าเป็นในรายงานเราสามารถทำ Running Sum ได้เลย โดยการสร้าง Text Box เปล่าๆ ขึ้นมาใหม่ สมมุติชื่อ txtrun แล้วกำหนด Control Source: =1 กำหนดตรง Running Sum: Over All (หรือ Over Group หากสร้าง Group)
เราจะได้เลยที่เรียงลำดับขึ้นมา จากนั้นก็เปลี่ยนเงื่อนไขใน Text Box ที่เรานับเลข 1-40 ใหม่เป็น
=IIf([txtrun] Mod 40=0,40,[txtRun] Mod 40)
อ้างที่ [txtrun] แทนการอ้างที่ [ID] ส่วนจะให้แสดงหรือไม่ก็กำหนดในส่วน Visible เอาว่าจะเป็น Yes หรือ No
ส่วนเรื่องอยากให้หน้าละ 20 เรคคอร์ดก็ปรับส่วนพื้นที่ Detail ของรายงานให้ความสูงได้ 20 เรคคอร์ดกับหน้ากระดาษที่กำหนดไว้ แล้วแก้โค้ดที่ Detail > Event > On Print:
Const Blank_Line = 20 'จากเดิม 40 เป็น 20 แทน ก็น่าจะใช้ได้แล้วครับ
ไฟล์ตัวอย่างแก้ไข link

ขอบคุณมากๆนะคะ เดี๋ยวจะลองทดสอบดูและนำผลมารายงานค่ะ

131
น่าจะเพิ่มผิดตรงไหนสักจุดครับ Inbox มาครับ

ID กำหนด DATA TYPE เป็น text หรือเปล่าครับ
ปกติตรงนี้ผมกำหนดเป็น Number ครับ

ถ้าเป็น Text ใช้ Cint แปลงเป็น ตัวเลขก่อนคับ

ถ้าข้อมูล ID NO เป็น Text ลองใช้การแปลง Text เป็นตัวเลข ก่อน โดยผมสร้าง QryTable1 ขึ้นมาแสดงข้อมูลของ Table1 นะครับ

ตัวอย่างด้านล่าง

ID เป็น AutoNumber ค่ะ ตัวอย่างโปรแกรมตามไฟล์ที่แนบค่ะ ตอนนี้ติดปัญหาเพิ่มช่องในกรณีที่มีข้อมูลในหน้านั้นไม่ครบ 20 และติดตรงเวลาเลือก ชั่วโมงเป็น 8 ข้อมูลไม่เริ่มรัน 1 ใหม่ รบกวนแนะนำด้วยนะคะ ขอบคุณค่ะ

ขั้นตอนการทดสอบโปรแกรมมาที่หน้านี้ค่ะ
เลือกวันที่ 08/08/2019
เลือกชั่วโมงอบรมมี 40 และ 8


ในกรณีข้อมูลไม่ครบ 20 แถว ต้องการให้แสดงช่องให้ครบ 20 แถวค่ะ


ในกรณีเลือกชั่วโมงอบรมเป็น 8 ข้อมูลไม่เริ่มนับ 1 ค่ะ



132
ใช้การ Running Number Query มาช่วยก็ได้คับ
วิธีทำ 1 สร้างคิวรี่ชื่อ QryID ใส่โค้ดนี้
โค๊ด: [Select]
SELECT (Select count(*) From Table1 as a Where a.ID <= Table1.ID) AS [Running No], Table1.ID AS RID
FROM Table1;
2.ที่ RecordSource ของ Report ใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
SELECT Table1.ID, Table1.[Product Name], Table1.Quantity, QryID.[Running No], *
FROM Table1 INNER JOIN QryID ON Table1.ID = QryID.RID;


3.สร้าง Textbox ขึ้นมาอีกอัน เอา Field RunningNo ใส่เข้าไปแล้วซ่อน textbox นี้ไว้นะครับ


4.ที่ textbox txtID ใส่โค้ดเป็นแบบนี้
โค๊ด: [Select]
=IIf([Running No] Mod 40=0,40,[Running No] Mod 40)
เท่านี้ก็จะรันลำดับอย่างถูกต้องแล้วคับ   :grin:


เดี๋ยวจะลองดูนะคะ ได้ผลยังไงจะมารายงานนะคะ ขอบคุณมากๆนะคะ

ได้ลองนำไปใช้กับงานจริง ปรากฏว่าลำดับไม่เรียงจาก 1-40 ค่ะ และในแต่ละหน้าของรายงานต้องการให้แสดงหน้าละ 20 แถวค่ะ


133
ใช้การ Running Number Query มาช่วยก็ได้คับ
วิธีทำ 1 สร้างคิวรี่ชื่อ QryID ใส่โค้ดนี้
โค๊ด: [Select]
SELECT (Select count(*) From Table1 as a Where a.ID <= Table1.ID) AS [Running No], Table1.ID AS RID
FROM Table1;
2.ที่ RecordSource ของ Report ใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
SELECT Table1.ID, Table1.[Product Name], Table1.Quantity, QryID.[Running No], *
FROM Table1 INNER JOIN QryID ON Table1.ID = QryID.RID;


3.สร้าง Textbox ขึ้นมาอีกอัน เอา Field RunningNo ใส่เข้าไปแล้วซ่อน textbox นี้ไว้นะครับ


4.ที่ textbox txtID ใส่โค้ดเป็นแบบนี้
โค๊ด: [Select]
=IIf([Running No] Mod 40=0,40,[Running No] Mod 40)
เท่านี้ก็จะรันลำดับอย่างถูกต้องแล้วคับ   :grin:


เดี๋ยวจะลองดูนะคะ ได้ผลยังไงจะมารายงานนะคะ ขอบคุณมากๆนะคะ

134
เรื่องการทำเส้นให้เต็มในรายงานลองอ่านกระทู้นี้ดูนะครับ
https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=3065&PagePosition=1
ส่วนเรื่องเลขที่ตัดทุก 40 ใช้การเขียนคำสั่งหารสั้นเอาแต่เศษด้วยทำสั่ง Mod ที่เลขลำดับของเรา โดยใช้เงื่อนไข
=IIf([ID] Mod 40=0,40,[ID] Mod 40)
คือหารสั้นเอาแต่เศษด้วย 40 แต่ถ้าเศษเป็น 0 ให้เท่ากัย 40 วิธีนี้ ID ต้องเรียงเลขกันห้ามข้ามนะครับ
ไฟล์ตัวอย่าง link

หลังจากทดสอบแล้วติดปัญหาในกรณีที่ถ้ามีการลบข้อมูล ID ใน Table หมายเลขที่รันหายไปเลยค่ะ ตามรูปที่ส่งมา ซึ่งในการใช้งานจริง ID ต้องมีการลบอยู่แล้วค่ะ และข้อมูลจริงมีเยอะ 5000 กว่า Record ขึ้น และก่อนจะปริ้นรายงาน มีการค้นหาด้วยวันที่ด้วยค่ะ





135
เรื่องการทำเส้นให้เต็มในรายงานลองอ่านกระทู้นี้ดูนะครับ
https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=3065&PagePosition=1
ส่วนเรื่องเลขที่ตัดทุก 40 ใช้การเขียนคำสั่งหารสั้นเอาแต่เศษด้วยทำสั่ง Mod ที่เลขลำดับของเรา โดยใช้เงื่อนไข
=IIf([ID] Mod 40=0,40,[ID] Mod 40)
คือหารสั้นเอาแต่เศษด้วย 40 แต่ถ้าเศษเป็น 0 ให้เท่ากัย 40 วิธีนี้ ID ต้องเรียงเลขกันห้ามข้ามนะครับ
ไฟล์ตัวอย่าง link

ขอบคุณมากๆนะคะ จะลองทำตามแนวทางที่แนะนำมา ได้ผลอย่างไรจะแจ้งให้อาจารย์ทราบนะคะ

136
รบกวนสอบถามเกี่ยวกับการรันหมายเลขลำดับใน Report ใน Access
1.ต้องการให้รายงานแสดงหน้าละ 20 record ถ้าไม่ครบ 20 record ให้แสดงช่องว่างให้ครบ 20 record เช่น ถ้ามีข้อมูล 7 record ให้แสดงข้อมูล อันดับที่ 8-20 แสดงช่องว่างสำหรับสามารถปริ้นแล้วเขียนข้อมูลลงในนั้นได้ค่ะ
2.ต้องการให้รายงานรันหมายเลขลำดับที่ 1-40 ถ้ามีลำดับในข้อมูล 41 เป็นต้นไปให้เริ่มรันหมายเลขลำดับเป็น 1 ใหม่
รบกวนแนะนำด้วยค่ะ
ขอบคุณค่ะ

ตัวอย่างรายงาน
แสดงข้อมูลลำดับที่ 1-40 หน้าละ 20 แถว




ในกรณีที่มีข้อมลลำดับที่ 41 เป็นต้นไปให้รันหมายเลขลำดับใหม่ค่ะ และให้แสดงแถวให้ครบ 20 แถว ในกรณีไม่มีข้อมูลตามรูปนี้ค่ะ





137
สมมุติ Field ที่เก็บคำนำหน้าชื่อว่า TitleName
ใช้ Replace Function
โค๊ด: [Select]
Replace([TitleName],".","")


ทีนี้ในคำนำหน้าชื่อมา . กี่อันมันลบหมดเลยคับ


ขอบคุณค่ะ ทำได้แล้วค่ะ

138
สอบถามเรื่องการตัดจุดออกหลังคำนำหน้าใน Query Access ค่ะ เช่น Mr. และ Mrs. ใช้คำสั่งยังไงคะ ถ้าข้อมูลที่มีการบันทึกไม่มี . ก็ให้แสดงข้อมูล Mr และ Mrs ปรกติ ต้องการตัด . ออก รบกวนแนะนำด้วยค่ะ ขอบคุณค่ะ

หน้า: 1 ... 6 7 8 [9]