กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
338 3
URL.หัวข้อ /
URL
รบกวน อ. สุภาพ อธิบาย การใช้ Module ครับ
เรียน อ. สุภาพ
อยากให้ อาจารย์ช่วยอธิบายการใช้งาน Module ให้ฟังครับ คือว่าผมได้เข้ามาอ่าน Webboard แล้วเจอฟังค์ชั่นหลายอย่างที่มีการใช้ Module ได้ D/L ไปที่เครื่องแต่พอจะใช้ใช้ไม่เป็นครับ
ยกตัวอย่างเช่น Function BahtText
ขอบคุณครับ
อยากให้ อาจารย์ช่วยอธิบายการใช้งาน Module ให้ฟังครับ คือว่าผมได้เข้ามาอ่าน Webboard แล้วเจอฟังค์ชั่นหลายอย่างที่มีการใช้ Module ได้ D/L ไปที่เครื่องแต่พอจะใช้ใช้ไม่เป็นครับ
ยกตัวอย่างเช่น Function BahtText
ขอบคุณครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R01478
ในตัวอย่างของ BahtText() ผมจะเขียนโค้ดไว้ใน Module เลย เพื่อจะให้สามารถเรียกใช้ฟังก์ชันนี้ได้จากทุกที่ในโปรแกรม
ส่วนมากถ้าฟังก์ชันไหนที่ต้องใช้งานร่วมกันจะเก็บไว้ใน Module ครับ
ที่อื่นๆ ที่เราสามารถเขียดโค้ดได้ก็จะมีใน Form และ Report ครับ แต่โค้ดเหล่านี้จะสามารถเรียกใช้ได้เฉพาะในแต่ละ Form หรือ Report เท่านั้น
ส่วนการเรียกใช้ฟังก์ชัน ก็ให้ดูตัวอย่างการใช้ BahtText() ใน Report ที่ผมได้ยกตัวอย่างไว้ครับ
2 @R01590
ฟังก์ชั่น:
1. ฟังก์ชั่นที่คืนค่าหรือส่งกลับค่าเมื่อมีการเรียกใช้ฟังก์ชั่นนั้น เช่น
BathText() โดยสามารถระบุค่าที่จะให้ฟังก์ชั่นส่งค่ากลับเป็นชนิดใดชนิดหนึ่งหากไม่ระบุก็จะอนุมานว่าเป็นชนิด Variant โดยปริยาย หรือจะกำหนดเป็น BathText() As Currency เป็นต้น ค่าที่ส่งกลับก็จะเป็นชนิด Currency การรับค่าที่ส่งกลับจากฟังก์ชั่นมาใช้ก็อาจเป็นการประกาศใช้ตัวแปร (Variable) ซึ่งควรประกาศใช้ตัวแปรเป็นชนิดเดียวกับค่าที่ส่งกลับมาหรือมีขนาดของตัวแปรที่ใหญ่กว่าชนิดของค่าที่ส่งกลับนั้นเพื่อที่จะได้ค่ามาครบและสามารถเก็บค่าไว้ในตัวแปรนั้นได้ ดังในกรณีของค่าชนิดที่เป็นจำพวก Number ทั้งหลาย (Currency, Integer, Single, Double, Long, etc.) หรือสามารถรับค่าโดยกำหนดค่าให้กับคอนโทรล (Control) เช่น TotalAmount.Value = BathText(TotalAmount.Value) ปต. จะเห็นว่าการรับค่าเช่นนี้มีการส่ง argument (เอ...ภาษาไทยว่าไงหนอ) ด้วย นั่นแสดงว่าฟังก์ชั่นนั้นต้องการ arg ในการประมวลผลด้วย เวลาที่ใช้ฟังก์ชั่นอย่างนั้นก็ต้องส่ง arg ให้ด้วย เว้นแต่กรณีที่ arg นั้นระบุไว้ว่าเป็น Optional (Keyword) เช่น BathText(Optional BathDigit As Currency) As Currency ปต.
2. ฟังก์ชั่นที่ทำตัวคล้าย Sub (Procedure) โดยการเรียกใช้งานแบบไม่ต้องมีค่าส่งกลับ ทั้งที่มี arg หรือไม่มี เช่น Function BathText() หรือ BathText(ByVal BathDigit As Currency) เวลาเรียกใช้งานฟังก์ชั่นชนิดนี้ก็เหมือนกับใช้งาน Sub เป็นต้นว่า BathText TotalAmount.Value ไม่จำเป็นต้องครอบ arg ด้วย ( ) ซึ่งตรงข้ามกับประเภทแรกเนื่องจากต้องมีตัวมารับค่าและเป็นไวยากรณ์ของการรับค่าจากฟังก์ชั่น จำไว้ว่าเมื่อไรก็ตามที่มีการรับค่าจากฟังก์ชั่นและฟังก์ชั่นนั้นมี arg ด้วยจะต้องมี ( ) ตามฟังก์ชั่นนั้นเสมอ
3. สรุป:
---------- Variable = Function
---------- Variable = Function(arg1, arg2,...argN)
---------- Control.Property = Funtion
---------- Control.Property = Function(arg1, arg2,...argN)
---------- Funtion
---------- Function(arg1, arg2,...argN) หรือ Function arg1, arg2,...argN
ถ้าเป็นฟังก์ชั่นแบบ Global ที่ประกาศใช้ใน Class Module ไม่ใช่ Form Module จะเรียกใช้ได้จากทุกที่ของโปรแกรม ถ้าประกาศแบบ Public ยังสามารถอนุญาตให้เรียกใช้งานจากโปรแกรมภายนอกได้ด้วย เว้นแต่มี Statement ที่ต้น Module บอกว่า Option Private เสร็จ! Access denied ทันที
>> ถ้าบกพร่องอย่างไรโปรดชี้แนะ เพราะยังมือใหม่หัดเขียน(ไม่กี่พรรษา) <<
3 @R01591
อ.ชอนไช.NET รายละเอียดแบบนี้เราจะหาได้จากที่ไหนครับ
Time: 0.1679s