วันจันทร์ที่ 22 กรกฎาคม พ.ศ. 2556

การสร้างปุ่มบนริบบิ้น Access 2010 โดยใช้ภาพที่สร้างขึ้นเอง

วันก่อน เคยพูดเรื่อง การสร้างปุ่มบนริบบิ้น ของ MS Access 2007 แต่ยังติดขัดที่ต้องใช้ภาพที่เป็น idMso ของ Access ภาพที่สร้างขึ้นเอง มีปัญหาเรื่อง Transparency วันนี้ ไปพบเรื่องเดียวกัน ที่ http://www.accessribbon.de/en/ แต่สามารถใช้ภาพ png ที่เป็น Transparent และนำมาใช้งาน ได้ และมี Transparency เหมือนกับการใช้ภาพจาก idMso ดังตัวอย่างข้างล่างนี้


การสร้าง ใช้การนำภาพเข้าตาราง และเรียกใช้งานฟังก์ชัน AddBinFile() ของ Sascha Trowitzsch ในโมดูล "basBlob" และ "basGDIPlus"

ภาพที่ใช้สร้างเอง โดยใช้โปรแกรมสร้างภาพกราฟฟิก เช่น Gimp Photoshop หรือ Illustrator ก็ได้ และบันทึกเป็นไฟล์ png โดยให้มี Trasparent ด้วย

วิธีการ

  1. สร้างไฟล์ ขนาด 200 X 200 pixels สำหรับเป็นภาพ icon ที่ต้องการ โดยสร้างเป็นไฟล์ png และให้มี Transparent
  2. บันทึกไว้ในห้องเดียวกับไฟล์ Access ในตัวอย่างนี้ ไฟล์ภาพ ชื่อ abc_nfe.png อยู่ในห้อง E:\socialMedia
  3. สร้างไฟล์ใหม่ ด้วย Access 2010 และบันทึกไว้ในห้องเดียวกับภาพ คือ E:\socialMedia
  4. นำเข้าโมดุล  "basBlob" โดยไปที่ ข้อมูลภายนอก > Access แล้วทำตามหน้าจอการนำเข้า
    (โมดูลนี้ มีอยู่ในไฟล์ที่ดาวน์โหลด หรือจะไปเอามาจากเว็บต้นฉบับ ของ Sascha Trowitzsch ตามลิงค์ ก็ได้)
  5. กด Alt + F11 เพื่อเปิดหน้าจอเขียนโค้ด
  6. กด Ctrl + G เพื่อเปิดหน้าจอการเรียกใช้สูตร หรือ Immediate Window
  7. ที่หน้าต่าง immediate เรียกใช้งานฟังก์ชัน AddBinFile() โดยระบุ Path ที่อยู่ในห้องเดียวกัน

          AddBinFile(Application.CurrentProject.Path &"\abc_nfe.png")
  8. กด Enter ฟังก์ชัน AddBinFile() จะนำภาพเข้าตาราง tblBinary โดยถ้าไม่มีตารางนี้อยู่ก่อน จะสร้างขึ้นให้เอง ถ้ามีอยู่แล้ว จะเอาภาพไปต่อจากข้อมูลที่มีอยู่เดิม
  9. กลับไปดูที่ วัตถุของ Access ในหน้าแรก จะเห็นมีตารางเกิดขึ้น พร้อมกับมีชื่อไฟล์และข้อมูลที่เป็น Binary ของไฟล์นี้
  10.  จากนั้น จึงสร้างตาราง USysRibbons ตามขั้นตอนการสร้าง Ribbons แบบกำหนดเอง และเรียกใช้งานภาพนี้ ก็จะได้ภาพ icon ที่มี Transparent เหมือนกับภาพ icon ของระบบโดยทั่วไป สามารถทำให้อยู่ในสถานะไม่พร้อมใช้งาน เป็นสีเทาจาง ๆ ก็ได้
  11. ถ้าจะไม่ใช้ Immediate Window ตามขั้นตอนข้างต้น จะเรียกใช้ ฟังก์ชันนี้ พร้อมกับส่งภาพทีละหลาย ๆ ภาพ ก็ได้

สุดท้าย การเรียกใช้ IRibbonControl จำเป็นต้องอ้างถึง (Reference) Microsoft Office 15.0 Object Library ด้วย มิฉะนั้น จะเกิด Error "User-defined type is not defined."

ดาวน์โหลดไฟล์ต้วอย่าง คลิกที่นี่

ความรู้พื้นฐาน วิธีการสร้าง รายละเอียดอื่น ๆ อ่านที่ http://www.thongjoon.com/2011/03/ms-access-2007-2010-custom-ribbon.html?q=ribbon


อ้างอิง
http://www.accessribbon.de/en/


ไม่มีความคิดเห็น:

แสดงความคิดเห็น