การสร้าง
chm files โดยใช้ HtmlHelp
และนำไปใช้ใน MS Access
โดย ทองจุล
ขันขาว
ความรู้พื้นฐาน: การใช้ Access การสร้าง macro
และการใช้ VBA
การใช้โปรแกรม Html Help
- โปรแกรม htmlHelp ใช้สร้าง
Help แบบใหม่ของ Windows แทน WinHelp แบบเก่า ซึ่ง Microsoft หยุดการสนับสนุนแล้ว ท่านสามารถดาวน์โหลด
htmlHelp ได้ คลิกที่นี่
- ดูตัวอย่าง help กับ
MS Access ในโปรแกรมกองทุนหมู่บ้าน
สำหรับ Office XP
- ก่อนอื่นควรสร้าง
html
file ก่อนและทำ link ระหว่างไฟล์ให้เรียบร้อย
ทั้งนี้ ต้องใส่ชื่อใน title page ให้หมด
เพราะจะนำไปใช้ในการเลือกสารบัญ หรือ TOC (Table of Contents)
- เปิด htmlHelp สร้าง project
ใหม่ (เลือก file > new > project)
- ระบุที่อยู่ของไฟล์
html ที่สร้างขึ้น (ในการสร้าง project ใหม่
โปรแกรมจะถามก่อนที่จะสร้าง project)
- แล้ว save
- สร้าง TOC (เลือก
file > new > table of contents)
- ข้อควรระวังในขณะสร้าง
คือเวลาเลือกหัวข้อและบอกว่าไฟล์อยู่ที่ไหน เวลา compile จะหาไฟล์ไม่พบ หรือ เกิด error เพราะหาไม่พบ
- เสร็จแล้วให้ save จะได้ไฟล์
นามสกุล hhc
- บอกที่อยู่ให้
project ทราบ โดยไปที่ project ที่สร้างขึ้น แล้วเลือก add/define
window definitions แล้วเลือกแถบ file แล้วคลิกหาชื่อ
- ถ้าต้องการมี index ให้สร้างไฟล์ก่อน
ไปที่ file > new > index แล้ว save ไว้ จะได้ไฟล์ นามสกุล hhk
- การทำ full text
search หลังจาก สร้าง TOC แล้ว ที่ project
ให้เปิด Add/Modify window Definitions แล้วเลือก
Navigation Pane คลิก ที่ search และ
advance เป็นอันใช้ได้ โปรแกรม จะสร้าง context
search ให้เอง
- save project แล้วคลิก compile ก็จะได้ไฟล์นามสกุล chm
- ทางที่ดี
ทุกไฟล์ที่สร้าง ควรอยู่ใน folder เดียวกัน หรือจัดห้องต่าง ๆ อยู่ใน
folder เดียวกัน เพื่อความเป็นระเบียบและหาง่าย เมื่อ compile
project เป็น chm แล้ว ก็ไม่จำเป็นต้องใช้ใฟล์เหล่านี้อีก นำไปใช้เฉพาะ
chm file เท่านั้น
การใช้กับโปรแกรม Access
- ถ้าจะทำ context sensitive โดยให้สามารถกด f1 ต้องทำ map id และใช้ Html Help API วิธีการให้อ่านใน
_displayHtmeHelp หรือ คลิกอ่านรายละเอียดได้ที่นี่
- ถ้าจะแสดง 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
- อ่านเกี่ยวกับ
hh.exe ที่นี่
- สร้าง macro เรียกเปิดฟอร์มนี้
แล้วปิดฟอร์ม เพื่อให้ฟอร์มเรียก chm
- สร้างเมนู
และให้เมนูมาเปิด macro
- วุ่นวายหน่อยเพราะ
ต้องการให้เปิด chm โดยสามารถระบุที่อยู่ของ chm ให้อยู่ใน folder เดี่ยวกับไฟล์โปรแกรม Access (.mdb/.mde) แต่ macro ไม่สามารถรับตัวแปร ต้องระบุที่อยู่ให้ชัดเจน เช่น c:\vfund\vHelp.chm
เป็นต้น ถ้าเกิดว่าผู้ใช้เอาไฟล์ ไปไว้ห้องอื่นก็จะมีปัญหา
จึงต้องใช้ VBA ในฟอร์มเป็นตัวช่วย
โดยกำหนดที่อยู่เป็นตัวแปรคือ Application.CurrentProject.Path
ด้วยประการฉะนี้
- การที่ต้องระบุไฟล์ใน
event
form close เพราะ ถ้ากำหนดใน form open เมื่อใช้
macro ปิดไฟล์ chm ก็จะถูกปิดตามไปด้วย
- ที่ต้องใช้ macro เปิดและปิด
ก็เพราะถ้าเปิดแล้วไม่ปิด ฟอร์มก็จะปรากฏให้เห็น ผู้ใช้ต้องทำการปิดเอง
และอย่างไรก็ต้องสั่งปิด เพราะเราเรียกให้ฟอร์มเรียกใช้ hh.exe ตอนปิดฟอร์ม