สอบถามเกี่ยวกับงานบัตรนักเรียน
กระทู้เก่าบอร์ด อ.Yeadram

 1,773   2
URL.หัวข้อ / URL
สอบถามเกี่ยวกับงานบัตรนักเรียน

คือว่าได้ออกแบบบัตรนักเรียนด้วย access ดูค่ะ เกิดปัญหาตรงที่ในโรงเรียนแบ่งเป็น 2 ช่วงชั้น คือช่วงชั้นแต่ละช่วงชั้นก็จะมี 3 ชั้น ปัญหามีดังนี้ค่ะ
1.เวลาจะพิมพ์บัตรออกมาก็ต้องให้เป็นคนละสีเช่น ช่วงชั้นที่ 1 สีเขียว ช่วงชั้นที่ 2 สีฟ้า
2.แล้วเวลาเราจะใส่รูปให้เป็นพื้นหลังตอนรายงานพิมพ์เราจะทำอย่างไรให้แต่ละบัตรมีรูปพื้นหลังรูปนั้นคะ(คือที่ลองทำเวลาพิมพ์รูปเดียวมันตัดแบ่งแต่ละบัตรค่ะ)
3.เราจะทำอย่างไรให้เวลารายงานพิมพ์ออกมามีบัตรอยู่ 2 คอลัมน์ (ที่พิมพ์ออกมาแค่คอลัมน์เดียวค่ะ)
4.เราจะทำอย่างไรให้ผู้ใช้โปรแกรมปรับเวลาได้คะ เช่น ในค่าที่เราตั้งให้ ชั้นที่ิ 1 วันออกบัตร 15/5/54 บัตรหมดอายุ 31/4/57 (ช่วงเวลาในการใช้บัตรของนร.3 ปีค่ะ)แต่พอปีหน้าเราต้องทำบัตรใหม่ให้ ชั้นที่ 1 ในปี 55 บัตรหมดอายุปี 58 อีก จะต้องทำอย่างไรคะ
5.เราจะทำรายงานหลังบัตรอย่างไรดีคะ รายละเอียดหลังบัตรคือ ตราโรงเรียน,ชื่อโรงเรียน,เงื่อนไขการใช้บัตร,และที่สำคัญที่สุดจะมีบาร์โค้ดรหัสประจำตัวนักเรียนอยู่ด้านหลังค่ะ

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

1 @R11080
1-2 ให้ลองค้น onformat หรือ onprint ครับ มันคือการฝังคำสั่งในขั้นตอนการโปรยข้อมูลแต่ละเรคคอร์ดออกรายงาน (จะทำให้การออกรายงานช้าลงมากนะครับ แต่สำหรับงานของคุณ ก็คุ้มครับ เพราะเป็นงานที่ต้องการความแม่นยำและระเบียบสวยงามครับ เพราะฉะนั้นควรคิวรี่ข้อมูลให้ออกรายงานทีละน้อยๆ เรคคอร์ดนะครับ)
3 ให้ลองค้นหาการสร้าง Label หรือ Printlabel ลองค้นตัวอย่างมาดูก็ได้ครับ ในนั้นจะทำให้คุณเข้าใจการสร้างรายงานแบบเป็นคอลัมน์ครับ
4 คุณปรับวันเวลาได้ง่ายๆ ด้วยการใช้ฟังก์ชั่น DateAdd() ครับ จะให้ปรับแค่ส่วนแสดงผลก็เขียนเป็นนิพจน์ใน textbox ที่ต้องการก็ได้ หรือจะให้ปรับแล้วบันทึกค่าที่ได้เข้าตารางด้วย ก็อาจสร้างเป็นคิวรี่อัพเดตข้อมูลก็ได้ แต่ไม่ว่าอย่างไร ก็ใช้ DateAdd() เช่นกันครับ ศึกษาการใช้จาก help ดูได้ครับ
การหา วันเวลาปัจจุบันใช้ Data() หรือ Now()
การหาปีของข้อมูล ใช้ Year()
ถ้าต้องการหาปี ของวันเวลาปัจจุบันก็เอาสองอย่างมารวมกันก็จะได้ว่า year(now())
ถ้าอยากได้ เลขปีของอีก 3 ปีข้างหน้า ก็เอา DateAdd() มาใช้ร่วมกับผลการหาปีปัจจุบัน year(DateAdd("yyyy",3,now())) หรือให้หาปีปัจจุบันให้ได้ก่อนแล้วค่อยบวกด้วย 3 เช่น year(now())+3
ศึกษาเพิ่มเติมฟังก์ชั่นพื้นฐานพวกนี้ได้จาก help ของ Access ครับ

5 การสร้าง "รายงานเงา" กรณีด้านหน้ามีคอลัมน์เดียว ก็ไม่น่ายากครับ
- ให้สร้างรายงานด้านหน้าไว้ก่อน เลือกฟิลด์ทีต้องการแสดงผลวางลงตามตำแหน่งที่ต้องการ วางลงไม่ต้องทุกฟิลด์ (อาจจะวางเฉพาะ ชื่อ สกุล รหัสนักเรียน เป็นต้น) พยายามอย่างยิ่งให้ขอบซ้ายขวาของกระดาษมันเท่ากันหรือ ถ้าทำไม่ได้ก็ต้องจำและจดไว้ เซฟรายงาน
- ให้คัดลอกรายงานตัวแรกนั้นมาวางให้ เปลียนชื่อรายงานแล้วเซฟ เปิดขึ้นมาในมุมมองออกแบบ เอาคอนโทรลเก่า ออกให้หมด(ถ้าจำเป็น) แล้วก็ไปลากฟิลด์ใหม่ๆ (ฟิลด์ของนักเรียนคนนี้ ที่ยังไม่ได้วางไว้ในรายงานด้านหน้า เช่น รหัสบาร์โค้ดเป็นต้น) เพิ่ม label เขียนคำเตือนคำแนะนำอะไรก็ว่ากันไป จัดวางลงไปในตำแหน่งที่เห็นสมควร   ห้ามเด็ดขาด ที่จะขยับขอบของรายงาน แล้วต้องจัดให้ขอบซ้ายของกระดาษ (พื้นที่ว่างด้านซ้ายของรายงาน) ให้เท่ากับขอบด้านขวาของรายงานตัวแรก

ทีนี้เวลาเรียกรายงาน ก็เรียกรายงานแรก แล้วตามด้วยรายงานที่ สองได้เลยครับ สั่งปริ๊นท์คนละที ก็ได้ (ผมก็เคยทำบัตรพนักงานด้วยวิธีนี้แหละ แค่กลับกระดาษ ก็ใช้ได้แล้วครับ แต่............ ของผมใช้แบบ 2 คอลัมน์ และต้องมั่นใจว่าปริ๊นท์เตอร์ของคุณ feed กระดาษได้ตรงจริงๆ อย่าให้เบ้ เชียวนะ)

กรณีต่อไป ถ้ารายงานด้านหน้า เป็นรูปแบบ 2 คอลัมน์ แล้วด้านหลังยังระบุหมายเลขให้ตรงด้านหน้า คุณอาจต้องมีการสร้าง ตารางพักข้อมูล เพื่อเรียงข้อมูลกลับด้านกัน ตามวิธีการเรียงของคุณ
ให้รายงานด้านหน้า ใช้แหล่งข้อมูลจากตารางจริง (เรียงตามปกติ)
ให้รายงานด้านหลัง ใช้แหล่งข้อมูลจากตารางพัก (เรียงสลับตามลักษณะคอลัมน์)


สรุปที่ตอบทั้งหมด พยายามตอบแบบรวบรัดที่สุด เพราะแต่ละคำถามของคุณ มันเป็นทักษะที่แตกต่างกันมากๆ ถ้าจะให้ตอบแบบรวมๆ กันคงต้องพิมพ์กันอย่างยาว และต้องถามตอบกันอีกหลายครั้งกว่าจะชัดเจน ลองค้นลองศึกษาดูแต่ละทักษะนะครับ มันไม่ยากที่จะทำหรอก แต่มันยากที่จะอธิบายครับ

อย่างไรก็ตามขอชมเชยวิธีการตั้งคำถามครับ แยกประเด็นได้ดีมากๆ ครับ อ่านเข้าใจง่ายดีครับ (แต่ต้องขออภัย แม้ผมเข้าใจคำถามดี แต่ตอบละเอียดไม่ไหว)


2 @R11081
จะทำตามที่อาจารย์แนะนำค่ะ ต้องไปศึกษาเพิ่มอีกมาก ขอบคุณอาจารย์มากนะคะที่มาให้ความรู้ค่ะ...
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3306s