การเรียกใช้ Function จาก Module

ศักดา  ศักดิ์ศรีพาณิชย์

ภาควิชาสาธารณสุข

วิทยาลัยการสาธารณสุขสิรินธร จังหวัดพิษณุโลก

4  ตุลาคม  2547

 

เมื่อผู้ใช้เขียน Function ที่ Module เพื่อให้โปรแกรมทำงานที่ต้องการเสร็จแล้ว ขั้นต่อไปคือ การกำหนดให้มีการเรียกใช้ Function ที่เขียนขึ้นนั้น โดยใส่เครื่องหมายเท่ากับ( =  ) แล้วตามด้วยชื่อ Function  ในเหตุการณ์ (Event) กับ Properties ของ Object นั้น  เช่น  ตัวอย่างที่ 1 เป็น Command button object   และตัวอย่างที่ 2 เป็น Form object

ตัวอย่างที่ 1

                เขียน 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

 

 

 

ตัวอย่างที่  2

ขอยกตัวอย่างจากไฟล์ 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

 

******************