การเรียกใช้ Function จาก Module
ศักดา
ศักดิ์ศรีพาณิชย์
ภาควิชาสาธารณสุข
วิทยาลัยการสาธารณสุขสิรินธร จังหวัดพิษณุโลก
4 ตุลาคม 2547
เมื่อผู้ใช้เขียน Function ที่ Module เพื่อให้โปรแกรมทำงานที่ต้องการเสร็จแล้ว
ขั้นต่อไปคือ การกำหนดให้มีการเรียกใช้ Function
ที่เขียนขึ้นนั้น โดยใส่เครื่องหมายเท่ากับ( = ) แล้วตามด้วยชื่อ Function ในเหตุการณ์ (Event) กับ Properties ของ Object นั้น เช่น ตัวอย่างที่ 1 เป็น Command button object และตัวอย่างที่ 2
เป็น Form object
เขียน Function
ชื่อ cmdbclose() เพื่อใช้เป็น Function
สำหรับปิดหน้าต่างฟอร์มต่าง ๆ
มี
Code ดังนี้
Function
cmdbclose()
If
MsgBox("Are you sure to close windows?", vbYesNo + vbCritical,
"Confirm") = vbYes Then
DoCmd.Close
Else
Exit Function
End
If
End
Function
เมื่อเขียนเสร็จให้
Save และตั้งชื่อ Module นั้น ด้วยชื่ออะไรก็ได้ เช่น modclose
ขั้นต่อไปก็เป็นการกำหนดใช้ Function ชื่อ cmdbclose()
ดังรูปข้างล่างนี้
กำหนดการใช้ Function กับ
Event On Click

ขอยกตัวอย่างจากไฟล์ Northwind.mdb
ที่ Form ชื่อ Startup ซึ่งมีวิธีการเรียกใช้ Function
คือ ใส่เครื่องหมายเท่ากับ( = ) แล้วตามด้วยชื่อ Function ในเหตุการณ์ (Event) ที่ต้องการ ได้แก่
เหตุการณ์ On Open กำหนดใช้ Function ชื่อ OpenStartup() และเหตุการณ์ On
Close กำหนดให้ใช้ Function ชื่อ HideStartupForm()
ดังรูปข้างล่างนี้
กำหนดใช้ Function กับ Event![]()

On Open ของ Form ชื่อ Startup มีการเขียน Function ไว้ดังนี้
Function
OpenStartup() As Boolean
On
Error GoTo OpenStartup_Err
If IsItAReplica() Then
DoCmd.Close
Else
If
(CurrentDb().Properties("StartupForm") = "Startup" Or _
CurrentDb().Properties("StartupForm") =
"Form.Startup") Then
Forms!Startup!HideStartupForm = False
Else
Forms!Startup!HideStartupForm = True
End
If
End If
OpenStartup_Exit:
Exit Function
OpenStartup_Err:
Const conPropertyNotFound =
3270
If Err =
conPropertyNotFound Then
Forms!Startup!HideStartupForm = True
Resume OpenStartup_Exit
End If
End
Function
On Close ของ
Form ชื่อ Startup
มีการเขียน Function ไว้ดังนี้
Function
HideStartupForm()
On
Error GoTo HideStartupForm_Err
If
Forms!Startup!HideStartupForm Then
CurrentDb().Properties.Delete "StartupForm"
Else
CurrentDb().Properties("StartupForm") = "Startup"
End
If
Exit Function
HideStartupForm_Err:
Const conPropertyNotFound =
3270
If Err =
conPropertyNotFound Then
Dim
db As DAO.Database
Dim
prop As DAO.Property
Set
db = CurrentDb()
Set
prop = db.CreateProperty("StartupForm", dbText, "Startup")
db.Properties.Append prop
Resume Next
End If
End
Function
******************