การสร้าง chm files โดยใช้ HtmlHelp และนำไปใช้ใน MS Access

โดย ทองจุล ขันขาว

 

ความรู้พื้นฐาน: การใช้ Access การสร้าง macro และการใช้ VBA

 

การใช้โปรแกรม Html Help

  1. โปรแกรม htmlHelp ใช้สร้าง Help แบบใหม่ของ Windows แทน WinHelp แบบเก่า ซึ่ง Microsoft หยุดการสนับสนุนแล้ว  ท่านสามารถดาวน์โหลด htmlHelp ได้ คลิกที่นี่
  2. ดูตัวอย่าง help กับ MS Access ในโปรแกรมกองทุนหมู่บ้าน สำหรับ Office XP
  3. ก่อนอื่นควรสร้าง html file ก่อนและทำ link ระหว่างไฟล์ให้เรียบร้อย ทั้งนี้ ต้องใส่ชื่อใน title page ให้หมด เพราะจะนำไปใช้ในการเลือกสารบัญ หรือ  TOC (Table of Contents)
  4. เปิด htmlHelp สร้าง project ใหม่ (เลือก file > new > project)
  5. ระบุที่อยู่ของไฟล์ html ที่สร้างขึ้น (ในการสร้าง project ใหม่ โปรแกรมจะถามก่อนที่จะสร้าง project)
  6. แล้ว save
  7. สร้าง TOC (เลือก file > new > table of contents)
  8. ข้อควรระวังในขณะสร้าง คือเวลาเลือกหัวข้อและบอกว่าไฟล์อยู่ที่ไหน เวลา compile จะหาไฟล์ไม่พบ หรือ เกิด error เพราะหาไม่พบ
  9. เสร็จแล้วให้ save จะได้ไฟล์ นามสกุล hhc
  10. บอกที่อยู่ให้ project ทราบ โดยไปที่ project ที่สร้างขึ้น แล้วเลือก add/define window definitions แล้วเลือกแถบ file แล้วคลิกหาชื่อ
  11. ถ้าต้องการมี index ให้สร้างไฟล์ก่อน ไปที่ file > new > index แล้ว save ไว้ จะได้ไฟล์ นามสกุล hhk
  12.  การทำ full text search หลังจาก สร้าง TOC แล้ว ที่ project ให้เปิด Add/Modify window Definitions แล้วเลือก Navigation Pane คลิก ที่ search และ advance เป็นอันใช้ได้ โปรแกรม จะสร้าง context search ให้เอง
  13. save project แล้วคลิก compile ก็จะได้ไฟล์นามสกุล chm
  14. ทางที่ดี ทุกไฟล์ที่สร้าง ควรอยู่ใน folder เดียวกัน หรือจัดห้องต่าง ๆ อยู่ใน folder เดียวกัน เพื่อความเป็นระเบียบและหาง่าย เมื่อ compile project เป็น chm แล้ว ก็ไม่จำเป็นต้องใช้ใฟล์เหล่านี้อีก นำไปใช้เฉพาะ chm file เท่านั้น

 

 

 

การใช้กับโปรแกรม Access

  1. ถ้าจะทำ context sensitive โดยให้สามารถกด f1 ต้องทำ map id และใช้  Html Help API วิธีการให้อ่านใน _displayHtmeHelp หรือ คลิกอ่านรายละเอียดได้ที่นี่
  2. ถ้าจะแสดง Help โดยการคลิกเลือกที่เมนู ให้สร้าง form แล้วใช้ VBA เรียกใข้ไฟล์ hh.exe เพื่อเรียกไฟล์ chm โดยเรียกจาก event form close ดังนี้

 

Option Explicit

 

Private Sub Form_Close()

 

Dim RetVal

RetVal = Shell("c:\windows\hh.exe " & Application.CurrentProject.Path & "\vFHelp.chm", vbNormalFocus)

 

End Sub

 

  1. อ่านเกี่ยวกับ  hh.exe ที่นี่
  2. สร้าง macro เรียกเปิดฟอร์มนี้ แล้วปิดฟอร์ม เพื่อให้ฟอร์มเรียก chm
  3. สร้างเมนู และให้เมนูมาเปิด macro
  4. วุ่นวายหน่อยเพราะ ต้องการให้เปิด chm โดยสามารถระบุที่อยู่ของ chm ให้อยู่ใน folder เดี่ยวกับไฟล์โปรแกรม Access (.mdb/.mde) แต่ macro ไม่สามารถรับตัวแปร ต้องระบุที่อยู่ให้ชัดเจน เช่น c:\vfund\vHelp.chm เป็นต้น ถ้าเกิดว่าผู้ใช้เอาไฟล์ ไปไว้ห้องอื่นก็จะมีปัญหา จึงต้องใช้ VBA ในฟอร์มเป็นตัวช่วย โดยกำหนดที่อยู่เป็นตัวแปรคือ Application.CurrentProject.Path ด้วยประการฉะนี้
  5. การที่ต้องระบุไฟล์ใน event form close เพราะ ถ้ากำหนดใน form open เมื่อใช้ macro ปิดไฟล์ chm ก็จะถูกปิดตามไปด้วย
  6. ที่ต้องใช้ macro เปิดและปิด ก็เพราะถ้าเปิดแล้วไม่ปิด ฟอร์มก็จะปรากฏให้เห็น ผู้ใช้ต้องทำการปิดเอง และอย่างไรก็ต้องสั่งปิด เพราะเราเรียกให้ฟอร์มเรียกใช้ hh.exe ตอนปิดฟอร์ม