วันอังคารที่ 8 มีนาคม พ.ศ. 2554

บทที่ 4 การใช้งานคำสั่งและฟังก์ชั่นต่าง ๆ บน Visual Basic 6.0

ฟังก์ชั่น หมายถึงชุดคําสั่ง(Routine) ที่ใช้ในการทํางานอย่างใดอย่างหนึ่ง โดยการส่งค่าที่ฟังก์ชั่นต้องการไป(ค่าพารามิเตอร์) เพื่อให้ฟังก์ชั่นทํางานตามข้อกําหนดในฟังก์ชั่นนั้นๆ แล้วคืนค่าต่างๆ ตามการทํางานของฟังก์ชั่นกลับมา บางฟังก์ชั่นสามารถเป็นคําสั่งได้ด้วย

คําสั่ง หมายถึง คําสั่งโดยทั่วไปที่ใช้ในการเขียนโปรแกรม เช่น กลุ่มคําสั่งในการกระโดดข้ามไปทํางานยังบรรทัดที่ต้องการ (Branching) กลุ่มคําสั่งในการวนรอบการทํางาน (Iteration) และกลุ่มคําสั่งเงื่อนไข (Condition)


4.1 การควบคุมการทํางานของโปรแกรม
4.1.1 Iteration เป็นคําสั่งที่ใช้ในการทําซ้ํา มีอยู่ด้วยกัน 3 รูปแบบคือ คําสั่ง For…Next, Do…Loop และ While… End ซึ่งแต่ละแบบก็จะมีลักษณะการทํางานที่ซ้ําที่แตกต่างกันไป
1) For...Next
การทําซ้ําในแบบ Block โดยกําหนดค่าเริ่มต้น และค่าสิ้นสุด ที่ใช้ควบคุมจํานวนครั้งของ
การทําซ้ํา ซึ่งถูกควบคุมโดยตัวนับ (Counter) ตัวนับนี้จะถูกกําหนดให้มีค่าเท่ากับค่าเริ่มต้น และจะถูกเปลี่ยนแปลงค่าทุกครั้งในแต่ละรอบของการทําซ้ำ จนกระทั่งค่าของตัวนับมีค่าเกินค่าสิ้นสุดที่กําหนดไว้ ก็จะออกจาก Block การทําซ้ํา เพื่อทํางานในบรรทัดถัดไป

ตัวอย่างที่ 4.1 For..next โปรแกรมบวกเลขตั้งแต่ 1 ถึง 10


2) Do…Loop
มีรูปแบบอยู่ 4 แบบ แบ่งตามลักษณะเงื่อนไขการจบของ Loop ดังนี้ Do While, Do
Until และ Loop Until ทั้ง 4 แบบนี้จะทําซ้ําไปเรื่อยๆ จนกว่าเงื่อนไขที่ใช้ควบคุมมีค่าเป็น False
ขั้นตอนการทํางานของทั้ง 4 แบบแสดงด้วย Flow Chart ได้ดังนี้


ตัวอย่างที่ 4.2 การใช้ Do While ..Loop


ตัวอย่างที่ 4.3 การใช้ Do Until ..Loop


3) Conditional การกําหนดเงื่อนไข
ใช้กําหนดให้กลุ่มคําสั่งภายใต้เงื่อนไขทํางาน เมื่อเงื่อนไขที่ใช้ควบคุมเป็นจริงหรือเป็นเท็จ
คําสั่งเหล่านี้ได้แก่ If … Then…Else และ Select Case … End Select


ตัวอย่างที่ 4.4 การใช้ if ….then หรือ select case


4.2 ฟังก์ชัน
1) ฟังก์ชั่น Str แปลงตัวเลขให้เป็นตัวอักษร เช่น


2) ฟังก์ชั่น ตัดคําใน String ได้แก่ Left, Mid ,Right

ตัวอย่างที่ 4.5 แสดงข้อความใน text1 เฉพาะ3 หลักซ้าย และ 2 หลักขวา



3) ฟังก์ชั่น Asc และ Chr ใช้ในการดูค่ารหัส ASCII


ตัวอย่างที่ 4.6 แสดงรหัส Ascii เมื่อกด key ใดๆ


4) การตัดช่องว่างใน String ทิ้ง
ฟังก์ชันที่ใช้ในการตัดช่องว่างใน String ทิ้ง ประกอบด้วย Ltrim$ หรือ Ltrim, Trim และ Rtrim
A = “ Hello ”
B = Ltrim(A) ตัดช่องว่างทางซ้าย ได้ผลลัพธ์เป็น “Hello “
C = Rtrim(A) ตัดช่องว่างทางขวา ได้ผลลัพธ์เป็น “ Hello”
D = Trim(A) ตัดช่องว่างทั้งซ้ายและขวา ได้ผลลัพธ์เป็น “Hello”

5) การแปลงขนาดของตัวอักษรใน String โดยใช้ Lcase หรือ Ucase
A = “Hello”
B = Lcase(A) แปลงจากตัวพิมพ์ใหญ่ -> เล็ก ได้ผลลัพธ์เป็น “hello”
D = Ucase(B) แปลงจากตัวพิมพ์เล็ก->ใหญ่ ได้ผลลัพธ์เป็น “HELLO”

6) ฟังก์ชันที่แปลง String ไปเป็น Numeric
รูปแบบ : val(...)
ตัวอย่าง : val(text1.text) -> แปลงค่าใน text1 ให้เป็น ตัวเลข

7) ฟังก์ชัน Len
ใช้สําหรับนับจํานวนของตัวอักขระ โดยจะคืนค่าจํานวนอักขระเป็นตัวเลขที่ใช้ในการคํานวณได้
รูปแบบ : Len(String)
ตัวอย่าง : A = “Hello”
B = Len(A) -> ผลลัพธ์ที่ได้ คือ B = 5
C = Len(“Visual”) -> ผลลัพธ์ที่ได้คือ C = 6

8) ฟังก์ชันปัดเศษ
ใช้ปัดเศษของตัวเลขที่กําหนด
รูปแบบ : Round(expression[, numdecimalplaces])
ตัวอย่าง : Round(45.528,2) หรือ Round(text1.text,2)

9) การแปลงชนิดของตัวแปร
- ใช้สําหรับแปลงค่าของตัวแปร ซึ่งเก็บอยู่ในรูปแบบหนึ่งไปเก็บอยู่ในตัวแปรอีกรูปแบบหนึ่ง โดยยังคงค่าในตัวแปรนั้นไว้เช่นเดิม
- เช่น แปลงจากตัวแปรแบบ Double ไปเป็นแบบ Currency หรือแปลงจากตัวแปรแบบ Integer ไปเป็นตัวแปรแบบ Double เป็นต้น

CcurCCur(expression)แปลงค่า expressionให้อยู่ในรูป Currency
CDbl CDbl(expression)แปลงค่า expressionให้อยู่ในรูป Double
CInt CInt(expression)แปลงค่า expressionให้อยู่ในรูป Integer
CLng CLng(expression)แปลงค่า expressionให้อยู่ในรูป Long
CSngCSng(expression)แปลงค่า expressionให้อยู่ในรูป Single
CStrCStr(expression)แปลงค่า expressionให้อยู่ในรูป String
CvarCvar(expression)แปลงค่า expressionให้อยู่ในรูป Variant
CBool CBool(expression)แปลงค่า expressionให้อยู่ในรูป Boolean
CByteCByte(expression)แปลงค่า expressionให้อยู่ในรูป Byte
CDec CDec(expression)แปลงค่า expressionให้อยู่ในรูป Decimal

10) ฟังก์ชัน CVDate และ CDate
- ใช้สําหรับแปลงวันที่จาก String หรือตัวเลขให้อยู่ในรูปของ Date
- CVDate จะคืนค่าข้อมูลกลับมาเป็นประเภท Variant
- CDate จะคืนค่าข้อมูลกลับมาเป็นประเภท Date
รูปแบบ :
 CDate(string หรือตัวเลข)
 CVDate(string หรือตัวเลข)

11) คําสั่งและฟังก์ชั่น Date, Date$
- ฟังก์ชัน Date$ จะคืนค่ากลับมาเป็นวันที่ในรูปของ String (10 ตัวอักษร)ในรูปแบบ mm-dd-yyy
- ฟังก์ชัน Date จะคืนค่ากลับมาเป็นวันที่ในรูปของ Date แต่ในกรณีที่นําฟังก์ชัน Date ไปใช้กับ
textbox มันจะถูกแปลงให้อยู่ในรูปแบบ m/d/yy โดยอัตโนมัติ

12) ฟังก์ชัน DateSerial
ใช้สําหรับแปลงค่าที่เป็น ตัวเลข  Date
รูปแบบ : DateSerial(year,month,day)
โดยที่
year หมายถึง ตัวเลขที่มีค่าระหว่าง 10-9999
month 1-12
day 1-31
ตัวอย่าง : dateserial(2003,11,10)

13) ฟังก์ชัน DateValue
ใช้แปลงค่าที่เป็น String  Date
รูปแบบ : DateValue(date)
ตัวอย่าง : datevalue(“25/10/03”)

14) ฟังก์ชัน WeekDay, Day, Month และ Year
A = Year(Date)
B = Month(Date)
C = Day(Date)
D = WeekDay(Date)

15) คําสั่งและฟังก์ชัน Time, Time$
- Time คืนค่าในรูปของ time
A จะมีค่าเป็น 2003 (วันที่ปัจจุบันเป็น 12/11/2003)
B จะมีค่าเป็น 11
C จะมีค่าเป็น 12
D จะมีค่าเป็น 5 (วันพุธ)
- Time$ คืนค่ากลับมาเป็นเวลาในรูปของ String (8 ตัวอักษร)

16) ฟังก์ชัน TimeSerial
ใช้สําหรับแปลงค่าที่เป็นตัวเลข เวลา
รูปแบบ : TimeSerial(hour, minute , second)
โดยที่ hour หมายถึง ตัวเลขที่มีค่าระหว่าง 0-23
minute หมายถึง ตัวเลขที่มีค่าระหว่าง 0-59
second หมายถึง ตัวเลขที่มีค่าระหว่าง 0-59

17) ฟังก์ชัน TimeValue
ใช้สําหรับแปลงค่าที่เป็น String เวลา
รูปแบบ : TimeValue(time)
โดยที่ time จะหมายถึงเวลาที่อยู่ในรูปแบบของ String เช่น “3:05”, “3:05:20”, “3:05 pm”

18) ฟังก์ชัน Hour, Minute และ Second
รูปแบบ : Hour (time) | Minute (time) | second (time)
โดยที่ Time หมายถึง เวลาที่อยู่ในรูปแบบของ Date เช่น
A = Hour(Time)
B = Minute(Time)
C = Second
A จะมีค่าเป็น 10 (เวลาปัจจุบันเป็น 10:15:29)
B จะมีค่าเป็น 15
C จะมีค่าเป็น 29
หมายเหตุ : ค่าที่ปรากฏในวงเล็บของทั้ง 3 ฟังก์ชัน คือ เวลา ซึ่งในที่นี้ฟังก์ชัน Time เพื่อบอกเวลาปัจจุบัน

19) ฟังก์ชัน Now
ใช้สําหรับแสดงค่าของวันและเวลาปัจจุบันในรูปแบบของ Date เช่น text1.text = now

20) ฟังก์ชั่น Format( )
เป็นฟังก์ชั่นที่ใช้ในการแสดงผลตัวเลขในรูปแบบต่างๆ โดยมีรูปแบบที่นิยมใช้งานดังนี้
รูปแบบ : Format(ข้อมูลที่แสดงผล , “สัญลักษณ์รูปแบบการแสดงผล”)

สัญลักษณ์แสดงผลรายละเอียด
0ใช้ แทนด้วย 0 ในกรณีที่ต้องการให้หลักที่ไม่มีตัวเลขเป็น 0
#ใช้กําหนดแทนการแสดงผลด้วยตัวเลขทั่วไป
.ใช้กําหนดตําแหน่งที่ต้องการแสดงจุดทศนิยม
,ใช้กําหนดเครื่องหมายจุลภาคคั่น
:แสดง : สําหรับค่าเวลา (ใช้ hh:mm:ss แทนชั่วโมง นาที และวินาที)
/แสดง / สําหรับค่าวันที่
General Numberแสดงตัวเลขทั่วไปโดยไม่มีเครื่องหมายจุลภาค
Currencyแสดงตัวเลขในทางการเงินโดยมีเครื่องหมายจุลภาคและจะมีทศนิยมได้ตามที่กําหนดไว้ใน Control Panel
Fixedแสดงตัวเลขโดยไม่มีจุลภาคและมีทศนิยมสองตําแหน่ง

ตัวอย่างที่ 4.7 การใช้ฟังก์ชั่น format


21) ฟังก์ชั่น Msgbox( )

Private Sub Cmd1_Click()
X = Text1.Text
Label4.Caption = Format(X, "#,###.00")
End Sub

Private Sub Form_Load()
Label7.Caption = "วันที่ " & Format(Date, "long date")
End Sub

Function Msgbox หรือ Message box เป็นคําสั่งและ Function ที่เรียกใช้ Dialog box ของ
windows ขึ้นมาเพื่อแสดงข้อความและโต้ตอบกับผู้ใช้
รูปแบบ : Msgbox(“ข้อความ”,[buttons],[title])
โดยที่ buttons คือรูปแบบของปุ่มที่จะปรากฎขึ้นมาโต้ตอบและสัญลักษณ์ที่แสดงขึ้นมา
title คือ ข้อความที่ปรากฏอยู่ใน Title Bar

ค่าของ buttons มีดังนี้

ค่าคงที่ค่าตัวเลขรายละเอียด
VbOKOnly0แสดงปุ่ม OK
VbOKCancel 1แสดงปุ่ม OK และ Cancel
VbAbortRetryLgnore2แสดงปุ่ม Abort Retry และ Ignore
VbYesNoCancel 3แสดงปุ่ม Yes No และ Cancel
VbYesNo 4แสดงปุ่ม Yes และ No
VbRetryCancel 5แสดงปุ่ม Retry และ Cancel
VbCritical 16แสดง Icon Critical Message
VbQuestion 32แสดง Icon Warning Query
VbExclamatin 48แสดง Icon Warning Message
VbInformation64แสดง Icon Information Message
VbDefaulbutton10กําหนดให้ปุ่มแรกมีค่าเป็นปุ่ม Default
VbDefaulbutton2256กําหนดให้ปุ่มที่สองมีค่าเป็นปุ่ม Default
VbDefaulbutton3 512กําหนดให้ปุ่มที่สามมีค่าเป็นปุ่ม Default


เช่น หากใช้คําสั่ง Msgbox “กรุณาตรวจสอบความถูกต้องของข้อมูล”,52,”โปรดยืนยัน” จะแสดง Dialog
box ได้ดังรูป


สําหรับค่า 52 มาจาก 4+48 หรืออาจเขียนแทนด้วย VbYesNo+VbExclamation แทนได้ ในกรณีที่
ผู้เขียนโปรแกรมต้องการควบคุมการทํางานหลังจากที่ได้คลิกที่ปุ่มต่างๆ จะต้องใช้ Function Msgbox โดยใช้เงื่อนไขตรวจสอบการคืนค่าของ Function Msgbox มีวิธีดังต่อไปนี้
การคืนค่าของ Function Msgbox
ในกรณีของการเขียนโปรแกรมควบคุม เมื่อผู้ใช้คลิกที่ปุ่มใดๆ ต้องการส่งผลที่แตกต่างกันในการทํางาน
จะต้องตรวจสอบการคืนค่าโดยใช้ตารางการคืนค่า Msgbox ดังตารางต่อไปนี้


ค่าคงที่ค่าตัวเลขรายละเอียด
VbOk1เมื่อปุ่ม OK ถูกคลิก
VbCancel 2เมื่อปุ่ม Cancel ถูกคลิก
VbAbort 3เมื่อปุ่ม Abort ถูกคลิก
VbRetry4เมื่อปุ่ม Retry ถูกคลิก
VbIgnore5เมื่อปุ่ม Ignore ถูกคลิก
VbYes6เมื่อปุ่ม Yes ถูกคลิก
VbNo 7เมื่อปุ่ม No ถูกคลิก

เช่น

If Msgbox (“ต้องการเลิกการทํางาน ?”,52,”โปรดยืนยัน”) = 6 Then
Unload Me
Endif

ไม่มีความคิดเห็น:

แสดงความคิดเห็น