Visual Basic 6.0 หน่วยการเรียนรู้ที่ 2

Download Report

Transcript Visual Basic 6.0 หน่วยการเรียนรู้ที่ 2

Visual Basic 6.0
1
Check box ใช้ กบั การเลือกแบบ ถูก/ผิด ( True/False, Yes/No)
Combo box เป็ นตัว control เป็ นการผสมระหว่าง Text box กับ List
box ซึ่งจะปรากฏรายการ เมื่อมีการคลิกลูกศร และ Combo
box ไม่ สนับสนุนการเลือกแบบหลายค่ า
Command button ปุ่ มคาสั่ งเป็ นตัว control ทีใช้ ในทุกฟอร์ ม ตามปกติจะ
เขียนคาสั่ งใน Click event procedure ของตัว control น
Data เป็ นตัว control ทีส่ ามารถรวมข้ อมูลกับฐานข้ อมูลได้ และเป็ นส่ วน
ที่ Visual Basic ให้ ผู้ใช้ สามารถติดต่ อระหว่ างตัว control บนฟอร์ ม
กับฟิ ลด์ ใน table ของฐานข้ อมูล โดย Data จะทางานกับ Database
Jet ของฐานข้ อมูล แต่ ไม่ สามารถทางานกับ ActiveX Data Object
(ADO) ได้
2
Directory List box เป็ น List box แบบหนึ่ง ที่แสดงไดเรคทอรีและ
พาร์ ทที่เลือก
Drive List box คล้ายกับ Combo box ที่ใช้ เลือกชื่อของไดร์ ฟในระบบ
File list box เป็ น List box ชนิดพิเศษที่ใช้ แสดงชื่อไฟล์ในไดเรคทอรี
Frame สามารถใช้ เป็ น container สาหรับตัว control อืน่
Horizontal และ
ใช้ เป็ นแถบเลือ่ นแบบ stand-alone แต่ มักจะไม่
Vertical Scroll Bar ค่ อยมีการใช้ เพราะตัว control อืน่ ๆ ส่ วนใหญ่
จะมีแถบเลือ่ นของตัวเอง
Image เป็ นตัว control ใช้ เก็บภาพคล้ายกับ Picture box แต่ไม่ สามารถ
ทางานแบบ container ได้ Image มีข้อดีทใี่ ช้ ทรัพยากรของระบบ
3
น้ อยกว่ า Picture box
Label
เป็ นตัว control ที่ใช้ แสดงข้ อความ หรือป้ายชื่อ
Line
เป็ นตัว control ใช้ สาหรับการตกแต่ งด้ านกราฟฟิ ก
List box เป็ นตัว control ทีเ่ ก็บรายการของค่า และให้ ผู้ใช้ เลือก
ซึ่งสามารถเป็ นการเลือกค่ าเดียวหรือหลายค่ า ขึน้ กับ
การกาหนดคุณสมบัติ MultiSelect
OLE container เป็ นตัว control ที่สามารถเป็ น Host window
ให้ กบั โปรแกรมภายนอก เช่ น Microsoft Excel
หรืออาจจะกล่าวว่ าเป็ นการสร้ าง window ให้ กบั
โปรแกรมอืน่ บนโปรแกรมประยุกต์ Visual Basic
4
การสร้ างฟอร์ ม Visual
Basic Project
วิธีการ
1. คลิกทีเ่ มนู File >> New
Project
2. เลือก Standard EXE
3.คลิกปุ่ ม Open
5
วิธีการ คลิกที่ทูลบาร์
เลือก Form
6
วิธีการ ที่ Project Explorer
1. คลิกขวาบริเวณชือ่ ฟอร์มที่
ต้องการลบ
2. เลือก Remove Form
(n) ม
การลบฟอร์
7
ให้ นักเรียนเขียนโปรแกรมเข้ าสู่ ระบบดังภาพ
8
กาหนดคุณสมบัติ
ชนิดของออบเจ็กต์
Properties
ค่ าทึต่ ้งั
Label
Name
Caption
lbl_name
กรุณากรอกชื่อ
lbl_surname
กรอกนามสกุล
Label
Name
Caption
Text
Name
Text
txt_name
ปล่อยว่าง
Text
Name
Text
txt_surname
ปล่อยว่าง
Command
button
Form
Name
Caption
cmd_ok
เข้าสู่ ระบบ
Name
Caption
Frm_login
เข้าสู่ ระบบ
9
คาสั่ ง (Code)
Private Sub cmd_ok_Click()
MsgBox " ยินดีตอ้ นรับ " & Text1.Text & " " & Text2.Text,
vbOKOnly, " เข้าสู่ ระบบ "
End Sub
บันทึกตั้งชื่อ Project2 และ Form1 จัดเก็บในโฟลเดอร์ของตนเอง
10
11
12
13
14
Textbox
Checkbox
Form
Option
Button
15
การเรียกใช้งาน
ปุ่ ม Start
>> Programs
>> Microsoft Visual Studio 6.0
>> Microsoft Visual Basic 6.0
16
ส่วนประกอบของ Visual Basic
แถบ Title Bar
แถบ Menu Bar
แถบ Tool Bar
หน้าต่าง Form Windows
◦View Object
17
ส่วนประกอบของ Visual Basic
 หน้าต่าง
Project Explorer
◦View  Project Explorer
<Ctrl+R>
 หน้าต่าง Properties
◦View  Properties Window
<F4>
18
ส่วนประกอบของ Visual Basic
หน้าต่าง
Form Layout
◦View  Form Layout
Window
แถบเครือ
่ งมือ Toolbox
◦View  Toolbox
19
เริม
่ ต้นการสร้าง
Application
20
การสร้าง Application ใหม่
 File
 New Project
 เลือก Standard EXE
 คลิกปุ่ ม OK
21
การบันทึก Application
การบันทึกจะบันทึกแยก ระหว่าง
Form กับ Project
File  Save Form หรือ Project
ตัง้ ชือ
่ ฟอร์ม หรือ ชือ
่ project
คลิกปุ่ ม Save
22
การเพิม
่ Form ใหม่
 Project
 Add Form
หรือ
 คลิก Toolbar ในการเพิม
่ Form
23
การเพิม
่ Form ทีม
่ ีอยูแ
่ ล้ว
 Project
 Add File
 เลือกฟอร์มทีต
่ อ
้ งการ
 คลิกปุ่ ม Open
24
ยกเลิก Form ออก
 เลือกฟอร์ม
 Project
 Remove ชือ
่ Form
25
การ Run Application
 Run
 Start
หรือ
 กดคีย์ F5 หรือใช้ Toolbar
26
การ Stop Application
 Run
 End
หรือ
 ใช้ Toolbar
27
การกาหนดฟอร์มทีร่ น
ั
เมนู Project  Project
Properties…
 แท็บ General
 กาหนดที่
Startup Object

28
พื้นฐานทีใ่ นการสร้างโปรแกรมใน VB6
การสร้างคอนโทรลบนฟอร์ม
การย้ายคอนโทรล
การเปลีย
่ นขนาดคอนโทรล
การลบคอนโทรลออกจากฟอร์ม
29
พื้นฐานทีใ่ นการสร้างโปรแกรมใน VB6

การกาหนดคุณสมบัตข
ิ องคอนโทรล
 กาหนดทีห
่ น้าต่าง Properties Windows
 Object
List
Box: แสดงรายชื่อของ
คอนโทรลทัง้ หมดในฟอร์ม
 Properties List: แสดงชือ
่ คุณสมบัตแ
ิ ละ
ค่าทีก
่ าหนดสาหรับคอนโทรลทีเ่ ราเลือก
 Description Pane: แสดงคาอธิบายสัน
้ ๆ
เกีย่ วกับคุณสมบัตท
ิ เี่ ราเลือก
 กาหนดโดยการเขียน Code คาสั่ง
30
พื้นฐานทีใ่ นการสร้างโปรแกรมใน VB6

การเขียน Code คาสั่งเพือ
่ ตอบสนองต่อ Event
 เปิ ดหน้าต่าง Code Editor
 ด้านซ้ายสาหรับเลือกชือ
่ Object
 ด่านขวาสาหรับกาหนด Event
 ใส่คาสั่งลงไประหว่างข้อความ
Private Sub<ชือ
่ คอนโทรล>_<ชือ
่ อีเว็นต์>
กับ
End Sub
เป็ นตัวบอกว่าคาสั่งทีต
่ อบสนองนัน
้ เริม
่ ต้นและจบลงทีใ่ ด
31
การกาหนด Properties โดยการเขียนโค้ด
Object_Name.Properties_Name = ค่าของproperties
เช่น
Form1.Caption = “โปรแกรมการคานวณภาษี "
Form1.FontSize = 20
32
Properties พื้นฐานของ Control
 Name
 Caption
 ForeColor
 BackColor
 Height, Width
 Left ,Top
 TabIndex
 Enabled
 Visible
 FontBold,FontIt
alic
 FontName,Font
Size
 FontUnderline
 MousePointer
30
การทางานกับ Form
34
Properties ของ Form
 Name
 Icon
 BackColor
 MinButton
 ForeColor
 MaxButton
 Caption
 Enabled
 Font
 Height
 Width
 AutoRedraw
32
Properties ของ Form
 MousePointer
 MouseIcon
( MousePointer=Custom )
 Picture
 Visible
 CurrentX
 CurrentY
33
Method ของ Form
Print "ข้อความ" & ตัวแปร
Form_Name.Hide
Form_Name.Show
Form_Name.Cls
37
การใช้ Method โดยการเขียนโค้ด
Object_Name.Method_Name
[พารามิเตอร์ของ Method]
เช่น
Form1.Print "Siam Computer"
Me.Show
38
Event ของ Form
 Activate
 Click
 DblClick
 Load
 UnLoad
เมือ่ ฟอร์ม Activate
เมือ่ คลิกทีฟ
่ อร์ม
เมือ่ ดับเบิล้ คลิกทีฟ
่ อร์ม
้ มาทางาน
เมือ่ เปิ ดฟอร์มขึน
เมือ่ ปิ ดฟอร์ม
39
ตัวอย่างงาน
Sub Form_Activate( )
Form1.FontSize=20
Print “Test Visual Basic”
Print “Siam Computer”
End Sub
40
ตัวอย่างงาน
เพิม่ เซมิโคลอน ( ; )
Sub Form_Activate( )
Form1.Font.Size=20
Print “Test Visual Basic” ;
Print “Siam Computer”
CurrentX = 1500
CurrentY = 1000
Print “New Position”
End Sub ( )
41
ตัวอย่างที่ 2
คอนโทรล
คุณสมบัติ
ค่าทีก
่ าหนด
Form
Name
Form1
AutoRedraw
True
CommandButton Name
Caption
Command1
Clear
42
ตัวอย่างที่ 2
Sub Form_Activate()
Form1.Print “
Form_Activate ”
End Sub
Sub Form_Click()
Form1.Print “ Form_Click
”
End Sub
Sub Command1_Click()
Form1.Cls
End Sub
Sub Form_DblClick()
Form1.Print
“Double_Click ”
End Sub
Sub Form_Resize()
Form1.Print “
Form_Resize”
End Sub
43
Object พื้นฐาน
ตัวแปรและ Operator
44
Label (properties)
 Name
 BackStyle
 Alignment
 Caption
 AutoSize
 Left
 BorderStyle
 Top
42
Text Box (properties)
 Name
•
 Text
•
 MaxLenght
•
 PasswordChar
•
 Multiline
ScrollBars
TabIndex เริม
่ ที่ 0
TabStop
ToolTipText
46
Method
Object_Name.SetFocus
กาหนดให้ cursor ไป focus ที่ Object
เช่น
Text1.Setfocus
Command1. Setfocus
47
Properties..
 SelStart
กาหนดตาแหน่ งเริม
่ เลือก
 SelLength กาหนดความยาวทีต
่ อ
้ งการ
เลือกข้อความ
48
Event
 Change
เมือ
่ มีการเปลีย่ นแปลงที่ Text
 GotFocus เมือ
่ Text ได้รบั Focus
 LostFocus เมือ
่ Text สูญเสีย Focus
49
Command Button (properties)
 Name
 Caption
 Default
 Picture
 Style
50
ตัวอย่างงาน
หาผลคูณระหว่าง 2 Text Box
51
Source Code
Sub cmdMultiply_Click()
a = txtnum1.Text
b = txtnum2.Text
lblResult.Caption = a & " * " & b & " = " & a * b
End Sub
52
Operator ในการเชือ
่ มต่อข้อมูล
& และ +
ใช้ในการเชือ
่ มข้อมูล
' ใช้ในการเปลีย่ นประโยคคาสั่งเป็ นComment
53
การเปลีย่ น Font ใน View Code
 เพือ
่ ให้หน้าต่าง
Code แสดง
ภาษาไทยได้
 เมนู Tools Option… Editor
Format
 ในช่อง Font ต้องเลือก Font ทีล
่ ง
ท้ายด้วย UPC หรือ DSE
เช่น BrowalliaUPC
54
ทาไมต้องประกาศตัวแปร
 เพือ
่ การทางานทีถ
่ ก
ู ต้องขอโปรแกรม
 เมนู
Tools Option… Editor
 Require Variable
Declaration
จะได้ Option Explicit ใน View
Code
55
การประกาศตัวแปรและค่าคงที่
Dim variable_name As Data_Type
Const const_name = Value
เช่น
Dim data1 As Integer
Const name = “Somjate”
56
กฎการตัง้ ชือ
่ ตัวแปร
้ ด้วยตัวอักษร
 ชือ
่ ตัวแปรต้องขึน
 ชือ
่ ตัวแปรห้ามยาวเกิน 255 ตัวอักษร
 ใช้ตวั อักษร,ตัวเลขและ _ ผสมกัน
เป็ นชือ
่ ได้
 ห้ามซา
้ กับคาสงวน เช่น Dim
 ชือ
่ ตัวแปรห้ามซา้ กันถ้าอยูใ่ นขอบเขต
เดียวกัน
57
ชนิดของข้อมูล
Byte 0 ถึง 255 (1 Byte)
 Integer  -32,768 ถึง 32,767 (2 Byte)
 Long  -2,147,483,648 ถึง 2,147,483,647
(4 Byte)
 Currency -922,337,203,685,477.5808 ถึง
922,337,203,685,477.5807 (8 Byte)

58
ชนิดของข้อมูล (ต่อ)
Single จานวนจริงมีทศนิยม (4 Byte)
ค่าลบ
-3.402823x1038 ถึง -1.401298x10-45
และ
ค่าบวก 1.401298x10-45 ถึง 3.402823x1038
 Double  จานวนจริงมีทศนิยม (8 Byte)
ค่าลบ
– 1.79769313486232x10308 ถึง
– 4.94065645841247x10-324 และ
ค่าบวก 4.94065645841247 x10-324 ถึง

1.79769313486232x10308
59
ชนิดของข้อมูล (ต่อ)
 Date
 ข้อมูลวันทีแ
่ ละเวลา (8
Byte)
 String  ตัวอักษรหรือข้อความ
 Boolean  ค่าทางตรรกะ (2 Byte)
 Variant  ตัวแปรพิเศษ (22 Byte)
60
Operator ทางคณิตศาสตร์
นิพจน์
+
*
/
\
Mod
^
ความหมาย
บวก
ลบ
คูณ
หาร
หารจานวนเต็ม
หารเอาแต่เศษ
ยกกาลัง
61
ตัวอย่างงาน
การทางานกับ Operator ทางคณิตศาสตร์
62
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
a = Text1.Text
b = Text2.Text
Label3.Caption = a & " / " & b & " = " & a / b
Label4.Caption = a & " \ " & b & " = " & a \ b
Label5.Caption = a & " mod " & b & " = " & a Mod b
Label6.Caption = a & " ^ " & b & " = " & a ^ b
End Sub
63
ขอบเขตของตัวแปร (Scope of variable)
 ตัวแปรแบบโลคอล (Local)
 ตัวแปรแบบโกลบอล (Global)
Private ใช้ได้ทก
ุ โปรแกรมย่อยใน
Form ทีป
่ ระกาศ
Public ใช้ได้ทก
ุ โปรแกรมย่อยใน
โปรแกรม
64
Operator ทางการเปรียบเทียบ
นิพจน์
=
>
>=
<
<=
<>
ความหมาย
เท่ากับ
มากกว่า
มากกว่าหรือเท่ากับ
น้อยกว่า
น้อยกว่าหรือเท่ากับ
ไม่เท่ากับ
65
ตัวอย่างงาน
การทางานกับ Operator ทางการเปรียบเทียบ
66
Private Sub cmdCompare_Click()
Dim a As String
Dim b As String
a = txtNumber1.Text
b = txtNumber2.Text
lblNum1.Caption = a & " > " & b & " = " & (a > b)
lblNum2.Caption = a & " < " & b & " = " & (a < b)
lblNum3.Caption = a & " = " & b & " = " & (a = b)
lblNum4.Caption = a & " <> " & b & " = " & (a <> b)
End Sub
67
Operator ทางตรรกะ
68
ลาดับการคานวณ
Arithmetic
Comparison
Logical
Exponentiation (^)
Equality (=)
Not
Negation (-)
Inequality (<>)
And
Multiplication and
division (*, /)
Less than (<)
Or
Integer division (\)
Greater than (>)
Xor
Modulus arithmetic
(Mod)
Less than or equal to
(<=)
Eqv
Addition and subtraction
(+, -)
Greater than or equal
to (>=)
Imp
String concatenation (&) Is
&
66
ฟังก์ชน
ั ทางคณิตศาสตร์
Round(number)
ใช้ในการปัดจุดทศนิยมให้เป็ นเลขจานวนเต็ม
Int(number)
ใช้ในการปัดจุดทศนิยมลงให้เป็ นเลขจานวนเต็ม
70
ฟังก์ชน
ั ทางคณิตศาสตร์
Rnd[(Number)]
Rnd ใช้ในการสุม
่ ค่าของข้อมูล
เช่น สุม
่ ค่าจานวนเต็ม 0-9
Label1.Caption = Int(Rnd * 9)
(Randomize ทาให้การสุม
่ เลขได้ไม่ซา้ )
71
ฟังก์ชน
ั ทางคณิตศาสตร์
Sqr(number)
ใช้หาค่ารากทีส่ องของข้อมูล
Abs(number)
ใช้กาหนดให้คา่ ของข้อมูลเป็ นค่าบวก
72
การทางานกับฟังก์ชน
ั ข้อความ
InStr([Start],String1,String2,[Compare])
ใช้คน
้ หาตัวอักษรใน String
Replace(String1,Find, Replace)
ใช้คน
้ หาตัวอักษรใน String แล้วแทนทีด
่ ว้ ย
73
การทางานกับฟังก์ชน
ั ข้อความ
UCase(String)
ใช้เปลีย่ น String เป็ นพิมพ์ใหญ่ทง้ ั หมด
LCase(String)
ใช้เปลีย่ น String เป็ นพิมพ์เล็กทัง้ หมด
74
ตัวอย่างงาน
75
ตัวอย่างงาน
Private Sub txtTEXT1_Change()
txtText2.Text = UCase(txtTEXT1.Text)
txtText3.Text = LCase(txtTEXT1.Text)
End Sub
Private Sub cmdClear_Click()
txtTEXT1.Text = ""
txtTEXT1.SetFocus
End Sub
76
การทางานกับฟังก์ชน
ั ข้อความ
Str(Numeric)
ใช้แปลง Numeric เป็ น String
Val(String)
ใช้แปลง String เป็ น Numeric
77
การทางานกับฟังก์ชน
ั ข้อความ
IsNumeric(String)
ตรวจสอบว่าเป็ น Numeric หรือไม่
IsDate(String)
ตรวจสอบว่าเป็ น Date หรือไม่
78
การทางานกับฟังก์ชน
ั ข้อความ
LTrim(String)
ใช้ตดั ช่องว่างทางด้านซ้ายของ String ออก
RTrim(String) ใช้ตดั ช่องว่างทาง
ด้านขวาของ String ออก
79
การทางานกับฟังก์ชน
ั ข้อความ
Trim(String) ใช้ตดั ช่องว่างทัง้ ด้านซ้าย
และขวาของ String
Format(value , "รูปแบบ")
ใช้กาหนดรูปแบบของข้อมูล
80
รูปแบบของวันที่ (Date)
 "dd/mm/yy"
 "Short Date"
 "dd/mmm/yyyy"  "Medium
Date"
 "dd/mmmm/yyyy"  "Long Date"
81
การทางานกับฟังก์ชน
ั ทางวันและเวลา
Now
จะให้คา่ วันทีแ
่ ละเวลา ณ ปัจจุบน
ั
Time
จะให้คา่ เวลา ณ ปัจจุบน
ั
82
รูปแบบของเวลา (Time)
 "HH:MM"
 "Short Time"
 "HH:MM AMPM"  "Medium
Time"
 "HH:MM:SS"  "Long Time"
83
ตัวอย่างงาน
ตรวจสอบเวลาการทางาน
84
ตัวอย่างงาน
Dim a As Date
Dim b As Date
Sub Command1_Click()
a = Time
Text1.Text = Format(a,
"HH:MM:SS")
Text2.Text =""
Label1.Caption =""
End Sub
85
ตัวอย่างงาน
Sub Command2_Click()
b = Time
Text2.Text = Format(b,
"HH:MM:SS")
End Sub
Sub Command3_Click()
Label1.Caption = Format(b - a,
"HH:MM:SS")
End Sub
86
If…Then…Else Statement
If เงือ
่ นไข Then
Statement…
Else
Statement…
End If
87
Flow-Chart
False
Statement ;
condition
True
Statement ;
88
If…Then…Statement
If เงือ
่ นไข Then Statement…
89
If…Then…Else Statement
If เงือ
่ นไข Then
Statement…
Else
Statement…
End If
If เงือ
่ นไข Then
Statement…
Elseif เงือ
่ นไข Then
Statement…
Elseif เงือ
่ นไข Then
Statement…
Else
Statement…
End if
90
ตัวอย่างการใช้ ElseIf
Dim Number, Digits, MyString
Number = Text1.Text
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
Digits = 2
Else
Digits = 3
End If
91
Unload Statement
Unload ObjectName
เช่น Private Command1_Click()
Unload Form1 'หรือ
Unload Me
End Sub
92
End Command
End
หยุดการรันโปรแกรม
เช่น Private Command1_Click()
End ' จบการทางาน
End Sub
93
ตัวอย่างงาน
Private Sub cmdOK_Click()
If txtPass.Text = "basic" Then
frmCalculate.Show
Unload Me
Else
txtPass.Text = ""
txtPass.SetFocus
End If
End Sub
ตรวจสอบรหัสผ่าน
Lcase(Text1.text)
94
ตัวอย่างงาน
โปรแกรมตรวจสอบรหัสผ่าน
95
ตัวอย่างงาน
Private Sub Command1_Click()
If Text1.Text = "basic" Then
Form1.Show
Unload Me
Else
Text1.Text = ""
Text1.SetFocus
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Lcase(Text1.text)
96
Select Case Statement
Select Case ตัวแปร
Case เงือ่ นไข1 หรือ ค่าคงที1
่
statement:
Case เงือ
่ นไข2 หรือ ค่าคงที2
่
statement:
Case Else
statement:
End Select
97
Flow-Chart
value1
S;
value2
Statement
;
condition
…
value n
Statement
;
else
S;
98
ตัวอย่ างงาน
การตรวจสอบเกรด
99
ตัวอย่างงาน
Private Sub CmdGrade_Click()
Dim score As Integer
Dim grade As String
score = Val(txtmark.Text)
100
ตัวอย่างงาน
Select Case score
Case Is >= 80: grade = "A"
Case Is >= 70: grade = "B"
Case Is >= 60: grade = "C"
Case Is >= 50: grade = "D"
Case Else: grade = "F"
End Select
lblgrade.Caption = txtName.Text & "
your grade is " & grade
End Sub
101
Check Box (properties)
 Name
 Alignment
 Caption
• Value
 0 (Unchecked)
 1 (Checked)
 2 (Grayed)
102
ตัวอย่างงาน
แสดงวันทีแ
่ ละเวลา โดยใช้ Check Box
103
ตัวอย่างงาน
Private Sub chkTime_Click()
If chkTime.Value = 1 Then
lbltime.Caption = Format(Now, "HH:MM:SS")
Else
lbltime.Caption = ""
End If
End Sub
104
Private Sub Chkdate_Click()
If chkDate.Value = 1 Then
lblDate.Caption =
Format(Now,"dd/mmmm/yyyy")
Else
lblDate.Caption = ""
End If
End Sub
105
Option Button (properties)
 Name
• Value
 Alignment
• True (Select)
 Caption
• False (Not
Select)
106
ตัวอย่างงาน
เลือกเพศโดยใช้ Option Button
107
ตัวอย่างงาน
Private Sub Optmale_Click()
lblgender.Caption = "Male"
End Sub
Private Sub Optfemale_Click()
lblgender.Caption = "Female"
End Sub
108
ตัวอย่างงาน
การคานวณพื้นที่
109
Private Sub OptRectangle_Click()
txtnumber1.Text = ""
txtNumber2.Text = ""
lblResult.Caption = ""
txtNumber1.SetFocus
lblName1.Caption = "กว้าง"
lblName2.Caption = "ยาว"
lblName3.Caption = "พื้นทีส่ เี่ หลีย่ ม"
End Sub
110
Private Sub OptTriangle_Click()
txtNumber1.Text = ""
txtNumber2.Text = ""
lblResult.Caption = ""
txtNumber1.SetFocus
lblName1.Caption = "ฐาน"
lblName2.Caption = "สูง"
lblName3.Caption = "พื้นทีส่ ามเหลีย่ ม"
End Sub
111
Private Sub cmdCal_Click()
txtNumber1.SetFocus
If Optrectangle.Value = True Then
lblResult.Caption =
Val(txtnumber1.Text) *
Val(txtNumber2.Text)
Else
lblResult.Caption = 0.5 *
Val(txtNumber1.Text) *
Val(txtNumber2.Text)
End If
End Sub
112
Frame (properties)
 Name
 Caption
113
ตัวอย่างงาน
ค้นหาตาแหน่ งจากเพศและการศึกษา
114
เงือ
่ นไข
การศึกษา
ปริญญาตรี
ปวส.
ปวช.
ชาย
อาจารย์
ช่าง
คนขับรถ
หญิง
เลขา
ประชาสัมพันธ์
แม่บา้ น
115
Private Sub cmdposition_Click()
If Optmale.Value = True Then
If Optedu1.Value = True Then
lblCareer.Caption = "อาจารย์"
ElseIf Optedu2.Value = True Then
lblCareer.Caption = "ช่าง"
ElseIf Optedu3.Value = True Then
lblCareer.Caption = "คนขับรถ"
End If
Else ' ElseIf Option2.Value = True Then
116
If Optedu1.Value = True Then
lblCareer.Caption = "เลขา"
ElseIf Optedu2.Value = True Then
lblCareer.Caption = "ประชาสัมพันธ์"
ElseIf Optedu3.Value = True Then
lblCareer.Caption = "แม่บา้ น"
End If
End If
End Sub
117
Function MsgBox
MsgBox Prompt [,Buttons] [,Title]
 Prompt “ข้อความทีต
่ อ
้ งการแสดง”
 Buttons ปุ่ มทางานและสัญลักษณ์
 Title
 “ข้อความทีแ
่ สดงทีห
่ วั Box”
118
ตัวอย่าง Message Box
Icon
Title
Buttons
119
ตัวอย่างของสัญลักษณ์ (Icon)
vbCritical
vbInformation
vbExclamation
vbQuestion
117
Function MsgBox
ตัวแปร = MsgBox(Prompt [,Buttons] [,Title])
121
ตัวอย่างการใช้ Msgbox
122
HScrollBar และ VScrollBar (properties)
Name
Min
Max
Min
• LargeChange
• SmallChange
• Value
Max
•
•
Scroll Box
LargeChange
SmallChange
123
Event
 Change
เมือ่ ทาการเลือ
่ นที่
LargeChange หรือ SmallChange
 Scroll เมือ
่ ทาการเลือ
่ นที่ Scroll Box
124
ตัวอย่างงาน
การตรวจสอบ Properties ของ Scrollbar
กาหนด Properties
Min = 0
Max = 100
LargeChange = 10
SmallChange = 2
125
Sub HScroll1_Change()
lblInfo.Caption = "Value = " & HScroll1.Value
End Sub
Sub HScroll1_Scroll()
lblInfo.Caption = "Value = " & HScroll1.Value
End Sub
126
การเรียกใช้คา่ สี
 Object_Name.Properties
Color_Name
=
เช่น
lblName.ForeColor = VbRed
frmData.BackColor = VbGreen
127
ตัวอย่างงาน
ปรับแต่งรูปแบบตัวอักษร
128
ตัวอย่างงาน
ปรับแต่งรูปแบบตัวอักษร
129
130
Dim data As String
Private Sub Form_Load()
'Width = 4125
Height = 1440
End Sub
131
Private Sub cmdFont_Click()
data = txtName.Text
lblName.Caption = data
'Width = 4125
Height = 4080
End Sub
132
Private Sub chklowercase_Click()
If chklowercase.Value = 1 Then
chkuppercase.Value = 0
lblName.Caption = LCase(data)
Else
lblName.Caption = data
End If
End Sub
133
Private Sub chkuppercase_Click()
If chkuppercase.Value = 1 Then
chklowercase.Value = 0
lblName.Caption = UCase(data)
Else
lblName.Caption = data
End If
End Sub
134
Private Sub chkItalic_Click()
If chkitalic.Value = 1 Then
lblName.Font.Italic = True
Else
lblName.Font.Italic = False
End If
End Sub
135
Private Sub chkBold_Click()
If chkbold.Value = 1 Then
lblName.Font.Bold = True
Else
lblName.Font.Bold = False
End If
End Sub
136
Private Sub HScsize_Change()
lblName.Font.Size = HScsize.Value
End Sub
Private Sub Command3_Click()
'Width = 4125
Height = 1440
End Sub
137
Private Sub optRed_Click()
lblName.ForeColor = vbRed
End Sub
Private Sub optBlue_Click()
lblName.ForeColor = vbBlue
End Sub
138
Private Sub cmdOk_Click()
'Width = 4125
Height = 1440
txtName.Text = lblName.Caption
txtName.Font.Bold = lblName.Font.Bold
txtName.Font.Italic = lblName.Font.Italic
txtName.Font.Size = lblName.Font.Size
txtName.ForeColor = lblName.ForeColor
End Sub
139
การทางานกับฟังก์ชน
ั สี
QBColor(n)
โดย n มีคา่ ตัง้ แต่ 0 - 15
เช่น
Label1.BackColor = QBColor(1)
140
การทางานกับฟังก์ชน
ั สี
RGB(Red,Green,Blue)
โดยค่าสีอยูใ่ นช่วง 0 - 255
เช่น
Label1.BackColor = RGB(0,0,255)
Label1.ForeColor = RGB(255,0,255)
141
ตัวอย่างงาน
การผสมสีโดยใช้ Scroll Bars
142
Private Sub Form_Load()
lblRed.Caption = "Red = " & HScRed.Value
lblGreen.Caption = "Green = " & HScGreen.Value
lblBlue.Caption = "Blue = " & HScBlue.Value
lblShow.BackColor=RGB(0,0,0)
lblshow.ForeColor=RGB(255,255,255)
End Sub
143
และเหตุการณ์ Scroll
Private Sub HScRed_Change()
lblShow.BackColor = RGB(HScRed.Value, _
HScGreen.Value, HScBlueValue)
lblShow.ForeColor = RGB(255 - HScRed.Value, _
255 - HScGreen.Value, 255 - HScBlue.Value)
lblRed.Caption = "Red = " & HScRed.Value
End Sub
144
Private Sub HScGreen_Change()
lblShow.BackColor = RGB(HScRed.Value, _
HScGreen.Value, HScBlue.Value)
lblShow.ForeColor = RGB(255 - HScRed.Value, _
255 - HScGreenValue, 255 – HScBlue.Value)
lblGreen.Caption = "Green = " & HScGreen.Value
End Sub
145
Private Sub HScBlue_Change()
lblShow.BackColor = RGB(HScRed.Value, _
HScGreen.Value, HScBlue.Value)
lblShow.ForeColor = RGB(255 - HScRed.Value, _
255 - HScGreen.Value, 255 - HScBlue.Value)
lblBlue.Caption = “Blue = " & HScBlue.Value
End Sub
146
LOOP
147
For…Next Statement
For ตัวแปร = ค่าเริม
่ ต้น To ค่าสุดท้าย
[ Step เพิม
่ /ลดค่าตัวแปร ]
statement…
statement…
Next ค่าตัวแปร
148
ตัวอย่าง For…Next Statement
For I = 0 To 100 Step 2
statement…
statement…
Next I
149
Flow-Chart
for loop
Statement ;
.
.
end
150
ตัวอย่างงาน
แสดงตัวเลข 1 ถึง 20
Private Sub Form_Click()
Dim i As Integer
For i = 1 To 20
Print i ;
Next i
End Sub
151
Do…Loop Statement
Do while
(เงือ
่ นไข)
Do Until (เงือ
่ นไข)
Statement
:
Statement
:
Loop
Loop
152
Do…Loop Statement (ต่อ)
Do
Statement
:
Loop while
(เงือ
่ นไข)
Do
Statement
:
Loop Until
(เงือ่ นไข)
153
Flow-Chart (Do While)
False
condition
True
Statement ;
Statement ;
.
.
.
.
end
154
Flow-Chart (Do…Until)
Statement ;
.
.
True
condition
False
155
ตัวอย่างงาน
แสดงตัวเลข 1 ถึง 20
Private Sub Form_Click()
Private Sub Form_Click()
Dim i As Integer
Dim i As Integer
i=1
i=1
Do While (i <= 20)
Do
Print i
Print i
i=i+1
i=i+1
Loop
Loop Until (i > 20)
End Sub
End Sub
152
ตัวอย่างงาน
แสดงตัวเลข 10 ลงไปหา 1
Private Sub Form_Click()
Dim i As Integer
i = 10
Do While (i >= 1)
Print i
i=i-1
Loop
End Sub
Private Sub Form_Click()
Dim i As Integer
i = 10
Do
Print i
i=i-1
Loop Until (i = 0)
End Sub
157
While…Wend Statement
While (เงือ
่ นไข)
statements
:
Wend
158
ตัวอย่างงาน
แสดงตัวเลข 10 ลงไปหา 1
Private Sub Form_Click()
Dim i As Integer
i = 10
While i > 0
Print i
i=i-1
Wend
End Sub
159
List Box (properties)
 Name
 Columns
 List
 ListIndex
 Text
• Sorted
• Style
– Standard
– Checkbox
 ListCount
156
ตัวอย่าง List Box
161
Method
List1.AddItem “รายการ”, index
List1.RemoveItem index
List1.Clear
162
With …End With Statement
With Object_Name
.Properties = Value
.Method
End With
163
Goto Statement
Goto label
Statement…
label :
Statement…
Sub Command1_Click()
GoTo aa
Label1.Caption = “VB"
aa:
Label1.Caption = "Siam”
End Sub
164
On Error Goto…
On Error Goto label
Statement…
label :
Statement…
165
On Error Resume Next
On Error Resume Next
Statement…
Statement…
166
คาสั่งการทางานต่อเนื่อง
 Resume
:ทางานซา้ บรรทัดทีเ่ กิด
้
Error ขึน
 Resume Next : ทางานบรรทัดถัด
้
จากบรรทัดทีเ่ กิด Error ขึน
167
Error Object
 เป็ น
Object ทีจ่ ดั เก็บข้อผิดพลาดที่
้ ในโปรแกรมขณะ Run Time
เกิดขึน
 รูปแบบ
Err.Properties
168
Properties
Number
Description
169
On…Goto & On…GoSub
On expression GoSub
destinationlist
On expression GoTo
destinationlist
170
ตัวอย่างงาน
Private Sub Command1_Click()
Dim n As Integer
n=1
On n GoTo a, b
Exit Sub
a:
Print "1"
Exit Sub
b:
Print "2"
Exit Sub
End Sub
171
ตัวอย่างงาน
การย้ายรายการใน List
Sorted = True
172
Private Sub Form_Load()
lstPrg.AddItem "Widows"
lstPrg.AddItem "Word"
lstPrg.AddItem "Excel"
lstPrg.AddItem "Access"
lstPrg.AddItem "Power Point"
End Sub
หรือ
173
Private Sub Form_Load()
With lstPrg
.AddItem "Widows"
.AddItem "Word"
.AddItem "Excel"
.AddItem "Access"
.AddItem "Power Point"
End With
End Sub
174
Private Sub lstPrg_DblClick()
lstShow.AddItem lstPrg.Text
lstPrg..RemoveItem lstPrg..ListIndex
End Sub
Private Sub lstShow_DblClick()
lstPrg.AddItem lstShow.Text
lstShow.RemoveItem lstShow.ListIndex
End Sub
175
ตัวอย่างงาน
การจัดการกับ List
176
Private Sub cmdADD_Click()
If Trim(txtData.Text) <> "" Then
lstInfo.AddItem txtData.Text
End If
txtData.Text = ""
txtData.SetFocus
End Sub
177
Private Sub cmdRemove_Click()
If lstInfo.ListIndex >= 0 Then
lstInfo.RemoveItem lstInfo.ListIndex
lstInfo.ListIndex =0
End If
End Sub
Private Sub cmdClear_Click()
lstInfo.Clear ' ลบข้อมูลทัง้ หมด
End Sub
178
ตัวอย่างงาน
การย้ายข้อมูลใน List 2 List
MultiSelect=Extended
179
Private Sub Form_Load()
List1.AddItem "Pascal"
List1.AddItem "Basic"
List1.AddItem "C++"
List1.AddItem "Delphi"
List1.AddItem "Visual Basic"
List1.AddItem "Visual C++"
End Sub
180
Sub cmdMove_Click()
Dim i As Integer
Dim n As Integer
n = List1.ListCount
i=0
Do While (i < n)
If List1.Selected(i) Then
List2.AddItem
(List1.List(i))
List1.RemoveItem (i)
n = List1.ListCount
Else
i=i+1
End If
Loop
End Sub
181
Private Sub cmdMoveall_Click()
Dim i As Integer
For i = 0 To List1.ListCount - 1
List2.AddItem List1.List(i)
Next i
List1.Clear
End Sub
182
Combo Box (properties)
 Name
โดยทั่วไปใช้งานเหมือน List Box
 Style
◦ Dropdown Combo
◦ Simple Combo
◦ Dropdown List
183
ตัวอย่างงาน
การเปลีย่ นสีฟอร์มโดยใช้ Combo
184
ตัวอย่างงาน
สีเขียวอ่อน
สีมว่ ง
สีทอง
185
Private Sub Form_Load()
cmbColor.AddItem "Blue"
cmbColor.AddItem "Green"
cmbColor.AddItem “Magenta"
cmbColor.AddItem "Red"
cmbColor.AddItem "Yellow"
End Sub
186
Private Sub cmbColor_Click()
Select Case cmbColor.ListIndex
Case 0: Me.BackColor = vbBlue
Case 1: Me.BackColor = vbGreen
Case 2: Me.BackColor = vbMagenta
Case 3: Me.BackColor = vbRed
Case 4: Me.BackColor = vbYellow
End Select
End Sub
187
Function InputBox
ตัวแปร = InputBox(Prompt [,Title] [,Default])
Prompt : “ข้อความทีต
่ อ
้ งการแสดง”
Title
: “ข้อความทีแ
่ สดงทีห
่ วั ของ Box”
Default : ค่าปกติทต
ี่ ง้ ั ไว้
188
ตัวอย่างของ InputBox
Title
Prompt
189
ตัวอย่างงาน
ตอบคาถามจาก Question แล้วแสดงว่าตอบถูกกีข
่ อ
้
190
Dim n As Integer
Dim Ans As String
Private Sub Form_Load()
n=0
End Sub
191
Private Sub cmdQuestion1_Click()
Ans = InputBox("วิชานี้คอ
ื วิชา ?" & Chr(13) & _
"VB, Delphi", "Question")
If LCase(Ans) = "vb" Then
n=n+1
End If
cmdQuestion2.Enabled = True
cmdQuestion1.Enabled = False
End Sub
192
Private Sub cmdQuestion2_Click()
Ans = InputBox("ตัวอย่างนี้ใช้ฟงั ก์ชน
ั ใด ?" _
& Chr(13) & "MsgBox, InputBox", "Question")
If LCase(Ans) = "inputbox" Then
n=n+1
End If
cmdQuestion3.Enabled = True
cmdQuestion2.Enabled = False
End Sub
193
Private Sub cmdQuestion3_Click()
Ans = InputBox("ตัวแปรทีใ่ ช้รบั ค่าจากฟังก์ชน
ั
InputBox เป็ นตัวแปรชนิดใด ?" & Chr(13) & _
"Integer, String", "Question")
If LCase(Ans) = "string" Then
n=n+1
End If
cmdQuestion3.Enabled = False
lblResult.Caption = "ท่านตอบคาถามถูก " & n & "
ข้อ"
End Sub
194
DriveListBox (properties)
 Name
 Drive
เช่น EditPlus
Event ส่วนใหญ่ใช้ Change
195
DirListBox (properties)
 Name
 Path
Event ส่วนใหญ่ใช้ Change
196
FileListBox (properties)
 Name
 Path
 Filename
 Pattern
เช่น *.exe;*.xls
Event ส่วนใหญ่ใช้ Click
197
ตัวอย่างงาน
แสดงชือ
่ ไฟล์ และ Path ของไฟล์
198
Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Sub File1_Click()
txtPath.Text = File1.Path
txtFilename.Text = File1.FileName
End Sub
199
Timer (properties)
 Name
 Enabled
Event ใช้ Timer
 Interval
200
การทางานกับฟังก์ชน
ั ทางวันและเวลา
Now
จะให้คา่ วันทีแ
่ ละเวลา ณ ปัจจุบน
ั
Time
จะให้คา่ เวลา ณ ปัจจุบน
ั
201
ตัวอย่างงาน
ิ าดิจต
นาฬก
ิ อลจาก Timer
198
Private Sub Timer1_Timer()
lblTime.Caption = Time
End Sub
203
ตัวแปร Static
 เป็ นตัวแปรทีไ
่ ม่ถก
ู ทาลายหลังจาก
จบโปรแกรมย่อย (แต่ละ Event)
 รูปแบบ
Static Name As Data_Type
204
ตัวอย่างงาน
นับจานวนการกดปุ่ ม
205
Private Sub cmdCount_Click()
Static n As Integer
n=n+1
lblShowNumber.Caption = "Count = " & n
End Sub
' หรือประกาศตัวแปร n เป็ นแบบ
Private
206
ตัวอย่างงาน
ตรวจสอบ Password
Dim n As Integer
Dim x As Integer
207
Private Sub cmdOK_Click()
n=n+1
If LCase(txtPassword.Text) = “dusit" Then
frmCaluculate.Show ‘form ทีต่ อ้ งการแสดง
Unload Me
Else
x = MsgBox("รหัสไม่ถูกต้อง" & Chr(13) & _
" ต้องการป้ อนอีกครัง้ หรือไม่", 5, "Answer")
208
If n < 3 And (x = 4) Then
txtPassword.Text = ""
txtPassword.SetFocus
ElseIf x = 2 Then
End
Else
MsgBox "ป้ อนรหัสผิด 3 ครัง้ ", 0, "Answer"
End
End If
End If
End Sub
209
ตัวอย่างงาน
ใช้ Timer กาหนดให้ Label เคลือ
่ นที่
คุณสมบัตข
ิ อง Timer
Enabled = False
Interval = 510
210
ตัวอย่างงาน
Private Sub cmdStart_Click()
If cmdStart.Caption = "เริม
่ " Then
Timer1.Enabled = True
cmdStart.Caption = "หยุด"
Else
Timer1.Enabled = False
cmdStart.Caption = "เริม
่ "
End If
End Sub
211
Private Sub Timer1_Timer()
lblWalk.Left = lblWalk.Left + 100
End Sub
212
Private Sub Timer1_Timer()
lblWalk.Left = lblWalk.Left + 100
If lblWalk.Left >= Me.Width Then
lblWalk.Left = 0
End If
End Sub
213
Private Sub cmdDecrease_Click()
Timer1.Interval = Timer1.Interval - 50
End Sub
214
Private Sub cmdDecrease_Click()
Timer1.Interval = Timer1.Interval - 50
If Timer1.Interval <= 10 Then
cmdDecrease.Enabled = False
End If
End Sub
215
Private Sub cmdIncrease_Click()
cmdDecrease.Enabled = True
Timer1.Interval = Timer1.Interval + 50
End Sub
216
กาหนดให้ Label วิง่ รอบฟอร์ม
Sub Form_Load()
fac = "b"
End Sub
217
กาหนดให้ Label วิง่ รอบฟอร์ม
Dim fac As String
Private Sub Timer1_Timer()
If fac = "r" Then
lblWalk.Left = lblWalk.Left + 75
lblWalk.Top = lblWalk.Top - 50
If lblWalk.Top < 0 Then
fac = "t"
End If
218
ElseIf fac = "t" Then
lblWalk.Left = lblWalk.Left + 75
lblWalk.Top = lblWalk.Top + 50
If lblWalk.Left >= Me.Width - 1000 Then
fac = "l"
End If
219
ElseIf fac = "l" Then
lblWalk.Left = lblWalk.Left - 50
lblWalk.Top = lblWalk.Top + 50
If lblwalk.Top >= Me.Height - 1000 Then
fac = "b"
End If
220
ElseIf fac = "b" Then
lblWalk.Left = lblWalk.Left - 50
lblWalk.Top = lblWalk.Top - 50
If lblWalk.Left < 0 Then
fac = "r"
End If
End If
End Sub
221
PictureBox (properties)
 Name
 AutoSize
 BorderStyle
ใช้ในด้านกราฟิ ก
 Picture
222
ImageBox (properties)
 Name
 BorderStyle
 Picture
 Stretch
ใช้แสดงรูปภาพบน Form
223
Method ของ Picture และ Image
LoadPicture(“Directory\...\ชือ
่ ไฟล์
ภาพ”)
เช่น
Image1.Picture
=LoadPicture("c:\cat.jpg")
224
ตัวอย่างงาน
เมือ
่ คลิกฟอร์ม ให้ทาการสลับภาพ
225
Sub Form_Click()
Image2.Picture = Picture1.Picture
Picture1.Picture = Image1.Picture
Image1.Picture = Image2.Picture
End Sub
226
ตัวอย่างงาน
แสดงภาพจากไฟล์ทเี่ ลือก
227
Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
228
Sub File1_Click()
txtPath.Text = File1.Path
txtFile.Text = File1.FileName
Image1.Picture = LoadPicture(File1.Path & _
"\" & File1.FileName)
' ตัง้ ค่าที่ Pattern ด้วย
End Sub
229
แก้ปญ
ั หารูปที่ Root Drive A:\ และ C:\
Sub File1_Click()
txtPath.Text = File1.Path
txtFile.Text = File1.FileName
If File1.Path = "C:\" Or File1.Path = "a:\" Then
Image1.Picture = LoadPicture(File1.Path _
& File1.FileName)
Else
Image1.Picture = LoadPicture(File1.Path & _
"\" & File1.FileName)
End If
End Sub
230
Line (properties)
 Name
•
 BorderColor •
 BorderStyle
•
 BorderWidth •
X1
X2
Y1
Y2
231
คาสั่งในการวาดเส้นตรง
line(x1,y1) – (x2,y2),Color
เช่น
Line (500, 200)-(2000, 1000), QBColor(11)
232
ตัวอย่างงาน
สร้างตารางดังรูป
233
ตัวอย่างงาน
Sub frmShowline_Click()
Dim i As Integer
For i = 1 To 4
Line (500, 500 * i)-(2000, 500 * i)
Line (500 * i, 500)-(500 * i, 2000)
Next i
End Sub
234
Shape (properties)
 Name
 BackStyle
 BackColor
 BorderColor
 BorderStyle
•
•
•
•
BorderWidth
FillColor
FillStyle
Shape
235
ตัวอย่างงาน
Random Shape
236
Sub cmdShow_Click()
Shape1.Shape = (Rnd * 5)
Shape1.FillColor = QBColor(Rnd * 15)
Shape1.FillStyle = (Rnd * 7)
Shape1.BorderColor = QBColor(Rnd * 15)
End Sub
237
คาสั่งในการวาดวงกลม
Circle(x,y),radius,color
เช่น
Circle (1000, 1000), 500
238
ตัวอย่างงาน
วงกลมซ้อน
239
Sub Timer1_Timer()
Dim i As Integer
For i = 1 To 2000 Step 10
Circle (Me.Width \ 2, Me.Height \ 2), i, _
RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next i
End Sub
240
การทางานกับ Event ของ Mouse
 MouseDown
 MouseUp
 MouseMove
เมือ่ กดปุ่ มของเมาส์
เมือ่ ปล่อยปุ่ มของเมาส์
เมือ่ เลือ
่ นเมาส์
241
การใช้ปมบน
ุ่
Mouse พร้อมกับ Shift
ตัวแปร Button
1ปุ่ มซ้าย
2ปุ่ มขวา
4ปุ่ มกลาง
ตัวแปร Shift
1
2
4
กดปุ่ ม Shift ร่วม
กดปุ่ ม Ctrl ร่วม
กดปุ่ ม Alt ร่วม
242
พารามิเตอร์ของเหตุการณ์ ทเี่ กีย่ วกับเมาส์
Private Sub ชือ
่ ออปเจ็คต์_MouseDown( Button As Integer, _
Shift As Integer, X As Single, Y As Integer)
Private Sub ชือ
่ ออปเจ็คต์_MouseUp( Button As Integer, _
Shift As Integer, X As Single, Y As Integer)
Private Sub ชือ
่ ออปเจ็คต์_MouseMove( Button As Integer, _
Shift As Integer, X As Single, Y As Integer)
243
ตัวอย่างงาน
การกาหนดให้ Label เคลือ
่ นทีต
่ าม Mouse
244
Private Sub Form_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Me.Caption = " Value X = " & X & " Value Y = " & Y
Label1.Move X, Y
End Sub
245
ตัวอย่างงาน
วาดเส้นโดยใช้ Mouse
246
Dim d As Boolean
Dim CurrentX as Single,CurrentY as Single
Sub Form_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
d = True
CurrentX = X
CurrentY = Y
End Sub
247
Sub Form_MouseUp(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
d = False
End Sub
248
Sub Form_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If d = True Then Line -(X, Y)
' Line Form1.CurrentX,Form1.CurrentY–(X,Y)
End Sub
249
กดเมาส์ซา้ ยค้างวาดเส้น กดเมาส์ขวาค้างวาดวงกลม
Sub Form_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If d = True Then
If Button = 1 Then
Line -(X, Y)
Else
Circle (X, Y), 100, QBColor(Rnd * 15)
End If
End If
End Sub
250
กดเมาส์ซา้ ยค้างวาดเส้น กดเมาส์ซา้ ยค้างพร้อมปุ่ ม Shift วาดวงกลม
Sub Form_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If d = True Then
If Button = 1 And Shift = 1 Then
Circle (X, Y), 100, QBColor(Rnd * 15)
Else
Line -(X, Y)
End If
End If
End Sub
251
การใช้ Common Dialog

เมนู Project  Components…
◦ Microsoft Common Dialog Control 6.0
252
Dialog Open
253
Dialog Font
254
Dialog Color
255
ตัวอย่างงาน
การเรียกใช้ Dialog
251
Common Dialog (properties)
 Name
 Action
 DialogTitle
 Filter
 FilterIndex
• Flags
• InitiDir
• CancelError
257
Common Dialog (properties) (ต่อ)
 FileName
 FontName
 FontSize
 FontBold
•
•
•
•
FontItalic
FontStrikethru
FontUnderline
Color
258
Common Dialog (Method)
 ShowOpen
 ShowSave
• ShowFont
• ShowHelp
 ShowColor
 ShowPrinter
259
ตัวอย่างการใช้ Filter
.Filter= "All Files (*.*)|*.*"
.Filter= "All Files (*.*)|*.*|Text Files (*.txt)|*.txt"
"All Pictures (*.bmp;*.gif;*.jpg)|*.bmp;*.gif;*.jpg"
FilterIndex = 2
260
การเรียกใช้ Dialog Open
Private Sub cmdShowOpen_Click()
dlg1.Flags = cdlOFNHideReadOnly
dlg1.Filter = "All Files (*.*)|*.*|Text Files" & _
"(*.txt)|*.txt"
dlg1.FilterIndex = 2
dlg1.ShowOpen
MsgBox dlg1.FileName
End Sub
261
การเรียกใช้ Dialog Color
Private Sub cmdShowColor_Click()
dlg1.Flags = cdlCCRGBInit
dlg1.ShowColor
Label1.ForeColor = dlg1.Color
End Sub
262
การเรียกใช้ Dialog Font
Private Sub cmdShowFont_Click()
dlg1.Flags = cdlCFBoth
dlg1.ShowFont
lblShow.FontName=dlg1.FontName
lblShow.FontSize=dlg1.FontSize
lblShow.FontBold=dlg1.FontBold
lblShow.FontItalic=dlg1.FontItalic
End Sub
263
Private Sub cmdExit_Click()
End
End Sub
264
การเรียกใช้ Dialog Save
Private Sub cmdShowSave_Click()
dlg1.Flags = cdlOFNHideReadOnly
dlg1.Filter = "All Files (*.*)|*.*|Text Files" & _
"(*.txt)|*.txt"
dlg1.FilterIndex = 2
dlg1.ShowSave
MsgBox dlg1.FileName
End Sub
265
การเรียกใช้ Dialog Print
Private Sub cmdShowPrinter_Click()
dlg1.ShowPrinter
End Sub
266
การเรียกใช้ Dialog Help
Private Sub
cmdShowHelp_Click()
dlg1.HelpFile = _
"c:\windows\help\winhlp32.hlp"
dlg1.HelpCommand
=cdlHelpContents
dlg1.ShowHelp
End Sub
267
MDI Form
 สร้าง
Multiple Document
Interface
MDI Form
 Project  Add MDI Form
 เลือก MDI Form
 Open
268
ตัวอย่างงาน
การใช้งาน MDI Form
MDI Form
MDI Child Form
269
การกาหนดฟอร์มลูกของ MDI Form
 ให้กาหนด
Properties  MDIChild
ของฟอร์มลูกเป็ น True
270
การสร้างเมนู (Menu)
 Tools
Menu Editor...
Caption : ข้อความทีจ
่ ะแสดงเป็ นเมนู
Name
: กาหนดชือ
่ เมนู
คลิกปุ่ ม : เพือ
่ กาหนดเมนูยอ
่ ย
** สร้างได้ 6 ระดับ
271
ตัวอย่างงาน
สร้างเมนูดงั รูป
272
เมนูไฟล์
Caption
&File
Openform1
Openform2
Exit
Name
mnufile
mnuform1
mnuform2
mnuline
mnuexit
273
เมนู Font
Caption
&Font
10
12
15
20
Color
Red
Green
Blue
Name
mnufont
mnu10
mnu12
mnu15
mnu20
mnucolor
mnured
mnugreen
mnublue
274
การเขียนคาสั่งใน Menu
Sub mnuform1_Click()
Form1.Show
End Sub
Sub mnuform2_Click()
Form2.Show
End Sub
Sub mnuexit_Click()
End
End Sub
275
สร้าง MDI Form และเมนู ดัง
รูป
276
กาหนดให้ คุณสมบัตข
ิ อง Form1 และ Form2
277
ดูความแตกต่างระหว่างฟอร์ม 2 และ 3
Sub mnuform1_Click() Sub mnuform3_Click()
Form1.Show
Form3.Show
End Sub
End Sub
Sub mnuform2_Click() Sub mnuexit_Click()
Form2.Show
End
End Sub
End Sub
278
Popup Menu
 Tools
Menu Editor...
 กาหนดรายการเมนูเหมือนการสร้าง
เมนู โดยรายการหลักให้ ยกเลิก
Visible ออก
279
ตัวอย่างงาน
สร้าง Popmenu
Visible=False
Caption
popup
Cut
Copy
Paste
Name
mnupopup
mnucut
mnucopy
mnupaste
280
การเรียกใช้งาน Popup Menu
Popupmenu PopupMenu_Name
เช่น
PopupMenu mnupopup
281
การกาหนดให้ popup menu แสดงเมือ
่ คลิกเมาส์ขวา
Private Sub Form_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnupopup
End If
End Sub
282
โปรแกรมย่อย (Procedure)
Sub
(Sub Program)
Function
283
Sub Program
Sub ชือ
่ โปรแกรมย่อย
(parameter)
Statement
:
End Sub
284
ขอบเขตของ Sub Program
Sub ชือ
่ โปรแกรมย่อย
(parameter)
เป็ นโปรแกรมทีใ่ ช้ได้ใน Form นัน
้ ๆ
 Public Sub ชือ
่ โปรแกรมย่อย
(parameter)
เป็ นโปรแกรมทีใ่ ช้ได้ในทุกๆ Form
 Sub ชือ
่ โปรแกรมย่อย (parameter)
เหมือนกับ Public Sub
 Private
285
การเรียกใช้ Sub Program
Call ชือ
่ โปรแกรมย่อย(ค่าทีส่ ง่ )
หรือ
ชือ่ โปรแกรมย่อย(ค่าทีส่ ง่ )
286
ตัวอย่างงาน
Sub Program แบบไม่มี Parameter
287
Sub Color()
lblShow.BackColor = RGB(HScroll1.Value, _
HScroll2.Value, HScroll3.Value)
lblShow.ForeColor = RGB(255 - HScroll1.Value, _
255 - HScroll2.Value, 255 - HScroll3.Value)
End Sub
288
Private Sub HScRed_Change()
Call Color
lblRed.Caption = "Red = " & HScRed.Value
End Sub
Private Sub HScGreen_Change()
Call Color
lblGreen.Caption = "Green = " & HScGreen.Value
End Sub
289
Private Sub HScBlue_Change()
Call Color
lblBlue.Caption = “BLUE = " &
HScBlue.Value
End Sub
290
ตัวอย่างงาน
Sub Program แบบมี Parameter
291
Sub table(r As Integer, c As Integer)
Dim i As Integer
For i = 1 To r + 1
Line (500, 500 * i)-(500 * (c + 1), 500 * i)
Next i
For i = 1 To c + 1
Line (500 * i, 500)-(500 * i, 500 * (r + 1))
Next i
End Sub
292
Private Sub cmdTable_Click()
Me.Cls
Call table(Val(txtRow.Text), Val(txtCol.Text))
txtRow.Text = ""
txtCol.Text = ""
txtRow.SetFocus
End Sub
293
Function
Function ชือ
่ function (parameter)
As datatype
Statement
:
End Function
294
การเรียกใช้ Function
ตัวแปร หรือ Object = ชือ่ Function(ส่งค่า Parameter)
295
ตัวอย่างงาน
การหาค่า Factorial
296
Function Fac(n As Integer) As Long
If n = 1 Then
Fac = 1
Else
Fac = n * Fac(n - 1)
End If
End Function
297
Private Sub cmdFac_Click()
Dim data As Long
data = Fac(Val(txtNumber.Text))
lblResult.Caption = txtNumber.Text & " != "
& data
txtNumber.Text = ""
txtNumber.SetFocus
End Sub
298
การประกาศตัวแปร Array
Dim ชือ
่ ตัวแปร(UpperBound) As Type
เช่น
Dim Cost(5) As Integer
Cost(0) = 20
Cost(5) = val(Text1.Text)
299
การประกาศตัวแปร Array
Dim ชือ
่ ตัวแปร(LBound To UBound) As Type
เช่น
Dim Score(1 To 4) As Integer
Dim Name(97 To 100) As String
300
Object แบบ Array
ถ้าต้องการใช้ Object แบบ Array
ให้ทาการคัดลอก Object
301
ตัวอย่างงาน
หาค่าเฉลีย่ โดยใช้ Array
คัดลอก Text1 อีก 2 ตัว
302
Private Sub cmdAverage_Click()
Dim n(2) As Integer
Dim i As Integer
Dim sum As Integer
sum = 0
For i = 0 To 2
n(i) = Val(txtNum(i).Text)
sum = sum + n(i)
Next i
lblResult.Caption = "Average = " & sum / 3
End Sub
303
การทางานกับฐานข้อมูล
299
Data Control (properties)
 Name
 Caption
 Connect
 DatabaseName
 RecordSource
305
Method ของ Record Set
 AddNew
 Update
• Delete
• Refresh
 CancelUpdate
306
Method ของ Record Set
 MoveFirst
•
 MoveLast
•
 MoveNext
•
 MovePrevious •
FindFirst
FindLast
FindNext
FindPrevious
307
การกาหนดให้ Object อ้างข้อมูลในฐานข้อมูลได้
กาหนดคุณสมบัติ
DataSource
DataField
308
การเขียนคาสั่งโปรแกรมกับ Data Control
การย้ายไปยังเรคคอร์ดต่างๆ ใน ReccordSet





MoveFirst
MoveLast
MoveNext
MovePrevious
Move
ย้ายไปยังเรคคอร์ดแรก
ย้ายไปยังเรคคอร์ดสุดท้าย
ย้ายไปยังเรคคอร์ดถัดไป
ย้ายไปยังเรคคอร์ดก่อนหน้า
ย้ายไปยังเรคคอร์ดทีร่ ะบุ
309
การเขียนคาสั่งโปรแกรมกับ Data Control
การค้นหาข้อมูลใน ReccordSet




FindFirst ค้นหาเรคคอร์ดแรกทีต
่ รงกับเงือ
่ นไข
FindLast ค้นหาเรคคอร์ดสุดท้ายทีต
่ รงกับเงือ
่ นไข
FindNext ค้นหาเรคคอร์ดถัดไปทีต
่ รงกับเงือ
่ นไข
FindPrevious ค้นหาเรคคอร์ดก่อนหน้าทีต
่ รงกับเงือ
่ นไข
310
ตัวอย่างงาน
้
แสดงข้อมูลจากฐานข้อมูลทีส่ ร้างขึน
Data1 กาหนด DatabaseName และ RecordSource
Text กาหนด DataSource และ DataField
311
Private Sub cmdAdd_Click() ' ปุ่ ม Add
Data1.Recordset.AddNew
txtId.SetFocus
cmdOK.Visible = True
cmdADD.Visible = False
End Sub
312
Private Sub cmdOK_Click() 'ปุ่ ม OK
Data1.Recordset.Update
cmdADD.Visible = True
cmdOK.Visible = False
End Sub
เมือ่ ทาการรันให้ ปุ่ ม OK ซ้อนปุ่ ม Add
313
Private Sub cmdDelete_Click() 'ปุ่ ม Delete
X = MsgBox("Delete " & Text2.Text & _
" Yes or No ?", 1, "Check Data")
If X = 1 Then
Data1.Recordset.Delete
Data1.Recordset.MoveFirst
End If
End Sub
314
Private Sub cmdFind_Click() 'ปุ่ ม Find
Dim str As String
str = "id='" & txtEnID.Text & "'"
Data1.Recordset.FindFirst str
If Data1.Recordset.NoMatch Then
MsgBox "Data Not Found"
End If
txtEnID.Text = ""
txtEnID.SetFocus
End Sub
315
316
' ให้ใส่ตาแหน่ งทีม
่ ีอยูใ่ น Database
Private Sub Form_Load()
cmbPosition.AddItem "Manager"
cmbPosition.AddItem "Saleman"
cmbPosition.AddItem “Reception"
End Sub
317
Dim t As String
Private Sub cmdFind1_Click() 'ปุ่ ม Find
If optName.Value = True Then
t = "name='" & txtFindName.Text & "'"
ElseIf optSex.Value = True Then
If optMale.Value = True Then
t = "sex='f‘ "
Else
t = "sex='m‘ "
End If
318
ต่อปุ่ ม Find
ElseIf optPosition.Value = True Then
t = "position='" & cmbPostion.Text & "'"
End If
Data1.Recordset.FindFirst t
If Data1.Recordset.NoMatch Then
MsgBox "Data Not Found", 16
End If
End Sub
319
Private Sub cmdFindNext_Click() 'ปุ่ ม FindNext
Data1.Recordset.FindNext t
If Data1.Recordset.NoMatch Then
MsgBox "End of Data", 32
End If
End Sub
320
ตัวอย่างงาน
ป้ อน user name และ password เพือ
่ เข้าไปใช้ Database
ถ้าป้ อน admin และ password = dusit สามารถใช้ Database ได้ครบ
ถ้าป้ อน user และ password = sitd สามารถใช้ Database บางส่วน
321
Private Sub cmdOK_Click()
If txtUser.Text = "admin" And txtPass.Text = “dusit" Then
Form35.Visible = True
Form36.Visible = False
ElseIf txtUser.Text = "user" And txtPass.Text = "masi" Then
Form35.Visible = True
Form35.Command1.Visible = False
Form35.Command3.Visible = False
Form36.Visible = False
322
Else
MsgBox "Password or User name not
Correct", 16
txtUser.SetFocus
txtUser.SelStart = 0
txtUser.SelLength = Len(Text1.Text)
txtPass.Text = ""
End If
End Sub
Sub cmdCancel_Click()
End
End Sub
323
จบบทเรียน
319