กระทู้เก่าบอร์ด อ.Yeadram
1,460 8
URL.หัวข้อ /
URL
แยกจำนวนช่วงอายุ
สวัสดีครับ
ผมกำลังทำรายงานผู้มาใช้บริการ ในหน้ารายงานก็มีมี Heading เป็นชื่อ นามสกุล อายุ เพศ
ส่วนใน Detail ก็จะเป็นพวกวันที่ แล้วก็รายละเอียดการมาใช้บริการ
คำถามคือ
ผมจะแบ่งช่วงอายุได้ยังไง ผ่มใช้สูตร =Count(IIF([Age],"5") ผลที่ได้คือมันเป็นจำนวน Record ใน Detail แทนที่จะนับจำนวนใน Page Headerให้ผมนะครับ
ขอบคุณครับ
ผมกำลังทำรายงานผู้มาใช้บริการ ในหน้ารายงานก็มีมี Heading เป็นชื่อ นามสกุล อายุ เพศ
ส่วนใน Detail ก็จะเป็นพวกวันที่ แล้วก็รายละเอียดการมาใช้บริการ
คำถามคือ
ผมจะแบ่งช่วงอายุได้ยังไง ผ่มใช้สูตร =Count(IIF([Age],"5") ผลที่ได้คือมันเป็นจำนวน Record ใน Detail แทนที่จะนับจำนวนใน Page Headerให้ผมนะครับ
ขอบคุณครับ
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R23470
รายละเอียดไม่เพียงพอ ไม่กล้าตอบเพราะกลัวจะเข้าใจไม่ตรงกัน ถ้ามีตัวอย่างข้อมูล และตัวอย่างของผลลัพธ์ที่ต้องการอยากจะได้ ก็น่าจะพอช่วยตอบได้ครับ
2 @R23474
ตัวอย่าง
Report Header
ชื่อ อายุ เพศ
Report Detail
วันที่ รายการสินค้า
Report Footer
ช่วงอายุที่มาซื้อสินค้า
10-15 ปี จำนวน คน
15-30 ปี จำนวน คน
มากกว่า 30 ปี จำนวน คน
เป็นผู้หญิง คน
เป็นผู้ชาย คน
ผมก็มีข้อมูลตามหัวข้อต่างๆไล่มา แล้วก็ทำฟอร์มเพื่อใส่ criteria ต่างๆให้ดึงข้อมูล เช่นเคสลายการ์ตูน ในช่วง 1-01-2017 - 31-01-2017 แล้วพอเปิดรายงานมาก็จะมีข้อมูลว่าคนนี้อายุเท่านี้ เพศนี้ ซื้อสิ้นค้่าวันที่ รายการสินค้าเคสลายการ์ตูน
แล้วพอมาหน้าสุดท้ายผมก็ต้องมากรุ๊ปว่า ช่วงอายุเท่านี้ถึงเท่านี้ มีกี่คนที่ซื้อไป
ประมาณนี้นะครับ
ไม่แน่ใจว่า Access สามารถทำได้หรือเปล่า เพราะผมก็ไม่เก่งเท่าไหร่นะครับ
ขอบคุณครับ
Report Header
ชื่อ อายุ เพศ
Report Detail
วันที่ รายการสินค้า
Report Footer
ช่วงอายุที่มาซื้อสินค้า
10-15 ปี จำนวน คน
15-30 ปี จำนวน คน
มากกว่า 30 ปี จำนวน คน
เป็นผู้หญิง คน
เป็นผู้ชาย คน
ผมก็มีข้อมูลตามหัวข้อต่างๆไล่มา แล้วก็ทำฟอร์มเพื่อใส่ criteria ต่างๆให้ดึงข้อมูล เช่นเคสลายการ์ตูน ในช่วง 1-01-2017 - 31-01-2017 แล้วพอเปิดรายงานมาก็จะมีข้อมูลว่าคนนี้อายุเท่านี้ เพศนี้ ซื้อสิ้นค้่าวันที่ รายการสินค้าเคสลายการ์ตูน
แล้วพอมาหน้าสุดท้ายผมก็ต้องมากรุ๊ปว่า ช่วงอายุเท่านี้ถึงเท่านี้ มีกี่คนที่ซื้อไป
ประมาณนี้นะครับ
ไม่แน่ใจว่า Access สามารถทำได้หรือเปล่า เพราะผมก็ไม่เก่งเท่าไหร่นะครับ
ขอบคุณครับ
3 @R23475
ดูเหมือนว่าต้องออกแบบ4Query แล้วนำมาเชื่อมโยงกันเป็น1Query เพื่อแสดงผลในหน้ารายงานครับ ซึ่งผมไม่ค่อยมีความรู้เรื่องโค้ดVBเท่าไหร่ ถ้าเป็นผมผมจะทำอย่างนี้ครับ
1.สร้างQuery สำหรับข้อมูลชื่อ อายุ เพศ วันที่ รายการสินค้า
2.สร้างQuery กรองข้อมูลสำหรับอายุ 10-15ปี
3.สร้างQuery กรองข้อมูลสำหรับอายุ 16-30ปี
4.สร้างQuery กรองข้อมูลสำหรับอายุมากกว่า 30ปี
แล้วนำเอาทั้ง4Queryมารวมกันเป็น1Queryครับ เคยมีงานอยู่ชิ้นหนึ่งผมทำแบบนี้ไม่ติดปัญหาอะไรครับ แต่เสียดายเป็นไฟล์ของบริษัทเก่าซึ่งผมลาออกไปแล้ว ไม่มีสำเนาไว้ด้วยครับ
ลองทำดูหรือว่าจะรอท่านอื่นมาให้ข้อมูลใหม่เกี่ยวกับVBก็ได้ครับ
1.สร้างQuery สำหรับข้อมูลชื่อ อายุ เพศ วันที่ รายการสินค้า
2.สร้างQuery กรองข้อมูลสำหรับอายุ 10-15ปี
3.สร้างQuery กรองข้อมูลสำหรับอายุ 16-30ปี
4.สร้างQuery กรองข้อมูลสำหรับอายุมากกว่า 30ปี
แล้วนำเอาทั้ง4Queryมารวมกันเป็น1Queryครับ เคยมีงานอยู่ชิ้นหนึ่งผมทำแบบนี้ไม่ติดปัญหาอะไรครับ แต่เสียดายเป็นไฟล์ของบริษัทเก่าซึ่งผมลาออกไปแล้ว ไม่มีสำเนาไว้ด้วยครับ
ลองทำดูหรือว่าจะรอท่านอื่นมาให้ข้อมูลใหม่เกี่ยวกับVBก็ได้ครับ
4 @R23477
ไฟล์ตัวอย่างครับ
https://drive.google.com/open?id=0BwzAwbv8tImLaFduVE5oMk1BZlU
ลักษณะการทำงาน ผมจะใช้Queryเป็นหลักเพราะไม่ถนัดVBครับ
1.สร้างคำสั่งลบข้อมูลในตาราง Table1 และตารางข้อมูลรายการขาย(เพราะถ้าไม่ลบมันจะมีข้อมูลเก่ารวมอยู่ด้วยทุกครั้งที่ส่งข้อมูล ทำให้ข้อมูลผิดพลาดครับ)
2.สร้างคำสั่ง Append Query เก็บข้อมูลทั้งหมดไว้ใน Table1 และตารางข้อมูลรายการขาย(ข้อมูลล่าสุด)
3.สร้างQuery สำหรับแสดงผลในรายงาน ชื่อQuery ข้อมูล
4.สร้างรายงานจากQuery ข้อมูล
ทั่้งหมดนี้อยู่อยู่ในปุ่มเดียวคือปุ่มส่งข้อมูลหรือปุ่มพิมพ์รายการในหน้าฟอร์ม สิ่งที่คุณประกันต้องทำคือ
1.เพิ่มลูกค้าจากTable ชื่อว่า "ชื่อลูกค้า"
2.เพิ่มรายการสินค้าจาก Table ชื่อว่า"Item"
3.ทำงานในฟอร์มชื่อว่า Bill ตามปกติ แล้วกดปุ่มส่งข้อมูล หรือกดปุ่มพิมพ์รายการอย่างใดอย่างหนึ่งครับ
4.ได้ข้อมูลตามที่คุณประกันต้องการครับ
ลักษณะคำสั่งที่ใช้ในปุ่มส่งช้อมูลคือ
DoCmd.SetWarnings (0)
DoCmd.OpenQuery ("ลบข้อมูลก่อนส่ง")
DoCmd.OpenQuery ("ลบข้อมูลก่อนส่ง2")
DoCmd.OpenQuery ("ส่งข้อมูลรายการขาย")
DoCmd.OpenQuery ("1015Query")
DoCmd.OpenQuery ("1630Query")
DoCmd.OpenQuery ("มากกว่า30Query")
DoCmd.OpenQuery ("เพศชายQuery")
DoCmd.OpenQuery ("เพศหญิงQuery")
DoCmd.SetWarnings (1)
MsgBox "ส่งข้อมูลเรียบร้อย", vbInformation, "Done"
ลองปรับใช้ดูครับ
รบกวนท่านอ.สันติสุขหรือคุณTTTช่วยดูให้หน่อยนะครับ มีวิธีที่ดีกว่านี้ไหม ผมไม่ค่อยถนัดVB แต่สามารถประยุกต์ใช้จากQuery แบบนี้พอไปได้ไหมครับ
https://drive.google.com/open?id=0BwzAwbv8tImLaFduVE5oMk1BZlU
ลักษณะการทำงาน ผมจะใช้Queryเป็นหลักเพราะไม่ถนัดVBครับ
1.สร้างคำสั่งลบข้อมูลในตาราง Table1 และตารางข้อมูลรายการขาย(เพราะถ้าไม่ลบมันจะมีข้อมูลเก่ารวมอยู่ด้วยทุกครั้งที่ส่งข้อมูล ทำให้ข้อมูลผิดพลาดครับ)
2.สร้างคำสั่ง Append Query เก็บข้อมูลทั้งหมดไว้ใน Table1 และตารางข้อมูลรายการขาย(ข้อมูลล่าสุด)
3.สร้างQuery สำหรับแสดงผลในรายงาน ชื่อQuery ข้อมูล
4.สร้างรายงานจากQuery ข้อมูล
ทั่้งหมดนี้อยู่อยู่ในปุ่มเดียวคือปุ่มส่งข้อมูลหรือปุ่มพิมพ์รายการในหน้าฟอร์ม สิ่งที่คุณประกันต้องทำคือ
1.เพิ่มลูกค้าจากTable ชื่อว่า "ชื่อลูกค้า"
2.เพิ่มรายการสินค้าจาก Table ชื่อว่า"Item"
3.ทำงานในฟอร์มชื่อว่า Bill ตามปกติ แล้วกดปุ่มส่งข้อมูล หรือกดปุ่มพิมพ์รายการอย่างใดอย่างหนึ่งครับ
4.ได้ข้อมูลตามที่คุณประกันต้องการครับ
ลักษณะคำสั่งที่ใช้ในปุ่มส่งช้อมูลคือ
DoCmd.SetWarnings (0)
DoCmd.OpenQuery ("ลบข้อมูลก่อนส่ง")
DoCmd.OpenQuery ("ลบข้อมูลก่อนส่ง2")
DoCmd.OpenQuery ("ส่งข้อมูลรายการขาย")
DoCmd.OpenQuery ("1015Query")
DoCmd.OpenQuery ("1630Query")
DoCmd.OpenQuery ("มากกว่า30Query")
DoCmd.OpenQuery ("เพศชายQuery")
DoCmd.OpenQuery ("เพศหญิงQuery")
DoCmd.SetWarnings (1)
MsgBox "ส่งข้อมูลเรียบร้อย", vbInformation, "Done"
ลองปรับใช้ดูครับ
รบกวนท่านอ.สันติสุขหรือคุณTTTช่วยดูให้หน่อยนะครับ มีวิธีที่ดีกว่านี้ไหม ผมไม่ค่อยถนัดVB แต่สามารถประยุกต์ใช้จากQuery แบบนี้พอไปได้ไหมครับ
5 @R23478
แก้ไขครับ
2.สร้างคำสั่ง Append Query เก็บข้อมูลทั้งหมดไว้ใน Table1 และตารางข้อมูลรายการขาย(ข้อมูลล่าสุด)
เปลี่ยนจาก(ข้อมูลล่าสุด) เปลี่ยนเป็น(ข้อมูลทั้งหมด)
หน้าตาของบิลครับ
2.สร้างคำสั่ง Append Query เก็บข้อมูลทั้งหมดไว้ใน Table1 และตารางข้อมูลรายการขาย(ข้อมูลล่าสุด)
เปลี่ยนจาก(ข้อมูลล่าสุด) เปลี่ยนเป็น(ข้อมูลทั้งหมด)
หน้าตาของบิลครับ
6 @R23484
ว้าวว สุดยอด ขอบคุณมากเลยครับ อาจารย์ ผมนั่งเครียดมาสองวันแล้วกับเรื่องนี้
7 @R23487
ขอถามอีกนิครับ Table ที่ชื่อตารางข้อมูลรายงานการขาย สร้างมาเพื่ออะไรอะครับ ขอบคุณครับ
8 @R23489
ใช้พักข้อมูลสำหรับให้Queryแยกอายุและเพศ (ซึ่งมีทั้งหมด5Query) ดึงค่าจากตารางนี้มาคำนวนครับ ซึงจะทำให้รู้ว่าระหว่างอายุที่ต้องการมีกี่คนและแต่ละเพศมีกี่คนครับ
Time: 0.3204s