End

advertisement
Visual Basic 6.0
1
ความเป็ นมาของ Visual Basic
 พัฒนามาจากภาษา
QBASIC
 เป็ นภาษาทีเ่ หมาะกับการเริม
่ ต้น
 Visual Basic V. 1.0 เมือ
่ ปี 1991
 Visual Basic V. 6.0 เมือ
่ ปี 1998
 Visual Studio .NET เมือ
่ ปี 2002
2
ทาไมต้องเริม
่ ที่ Visual Basic
1. ง่ายต่อการเรียนรู ้
2. ความนิยมของตัวภาษา
3. เป็ นซอฟต์แวร์ของ Microsoft
4. การพัฒนาอย่างต่อเนื่อง
3
ทาไมต้องเริม
่ ที่ Visual Basic
5. Visual Basic for Application
(VBA) ในชุด Microsoft Office
6. VB Script Edition ใช้ในการเขียน
สร้าง Home Page
7. ASP (Active Server Page)
4
การเขียนโปรแกรมแบบ Event-driven
้ อยูก
 การทางานของโปรแกรมจะขึน
่ บ
ั
การกระทากับส่วนประกอบต่างๆ ของ
หน้ า ต่า ง (Window) ของโปรแกรม
เช่น ปุ่ มต่างๆ, เลือ
่ นเมาส์
 การท างานจะเป็ นไปตามเหตุ ก ารณ์
้
(Event) ทีเ่ กิดขึน
5
การเขียนโปรแกรมแบบ Procedural
โปรแกรมเมอร์ ต้ อ งเขี ย น Code
ควบคุมการทางานของโปรแกรมเอง
ทัง้ หมด โดยต้องตรวจสอบเหตุการณ์
้ ด้วยตนเอง
ต่างๆ ทีเ่ กิดขึน
6
ขัน
้ ตอนการออกแบบโปรแกรม
1. ศึกษาความต้องการของผูใ้ ช้
2. ออกแบบหน้าจอของโปรแกรม
และขัน
้ ตอนการทางานของ
โปรแกรม
3. เริม
่ เขียนและพัฒนาโปรแกรม
4. รวบรวมและทดสอบโปรแกรม
5. ส่งมอบโปรแกรมสูผ
่ ใู้ ช้
7
รุน
่ ต่างๆ ของ Visual Basic
Learning
Edition
Professional Edition
Enterprise Edition
8
การติดตัง้ โปรแกรม
 ระบบปฏิบต
ั ก
ิ าร Windows 98-XP
้ ไป
 CPU Pentium ขึน
้ ไป
 หน่ วยความจา (RAM) 32 MB ขึน
 CD-ROM, Mouse, Keyboard
 แผ่นโปรแกรม Microsoft Visual
Studio 6.0
 แผ่นโปรแกรม MSDN เป็ นส่วนของ
Help
9
คุณสมบัตข
ิ อง Visual Basic
 คอมไพเลอร์และการเขียนโปรแกรม
บน Microsoft Windows
 หลักการของ OOP
(Object Oriented Programming)
10
ส่วนประกอบของ Visual Basic
Object
 Properties
 Method
 Event

11
Textbox
Checkbox
Form
Option
Button
12
การเรียกใช้งาน
ปุ่ ม Start
>> Programs
>> Microsoft Visual Studio 6.0
>> Microsoft Visual Basic 6.0
13
ส่วนประกอบของ Visual Basic
แถบ Title Bar
แถบ Menu Bar
แถบ Tool Bar
หน้าต่าง Form Windows
◦View Object
14
ส่วนประกอบของ Visual Basic
 หน้าต่าง
Project Explorer
◦View  Project Explorer
<Ctrl+R>
 หน้าต่าง Properties
◦View  Properties Window
<F4>
15
ส่วนประกอบของ Visual Basic
หน้าต่าง
Form Layout
◦View  Form Layout
Window
แถบเครือ
่ งมือ Toolbox
◦View  Toolbox
16
เริม
่ ต้นการสร้าง
Application
17
การสร้าง Application ใหม่
 File
 New Project
 เลือก Standard EXE
 คลิกปุ่ ม OK
18
การบันทึก Application
การบันทึกจะบันทึกแยก ระหว่าง
Form กับ Project
File  Save Form หรือ Project
ตัง้ ชือ
่ ฟอร์ม หรือ ชือ
่ project
คลิกปุ่ ม Save
19
การเพิม
่ Form ใหม่
 Project
 Add Form
หรือ
 คลิก Toolbar ในการเพิม
่ Form
20
การเพิม
่ Form ทีม
่ ีอยูแ
่ ล้ว
 Project
 Add File
 เลือกฟอร์มทีต
่ อ
้ งการ
 คลิกปุ่ ม Open
21
ยกเลิก Form ออก
 เลือกฟอร์ม
 Project
 Remove ชือ
่ Form
22
การ Run Application
 Run
 Start
หรือ
 กดคีย์ F5 หรือใช้ Toolbar
23
การ Stop Application
 Run
 End
หรือ
 ใช้ Toolbar
24
การกาหนดฟอร์มทีร่ น
ั
เมนู Project  Project
Properties…
 แท็บ General
 กาหนดที่
Startup Object

25
พื้นฐานทีใ่ นการสร้างโปรแกรมใน VB6
การสร้างคอนโทรลบนฟอร์ม
การย้ายคอนโทรล
การเปลีย
่ นขนาดคอนโทรล
การลบคอนโทรลออกจากฟอร์ม
26
พื้นฐานทีใ่ นการสร้างโปรแกรมใน VB6

การกาหนดคุณสมบัตข
ิ องคอนโทรล
 กาหนดทีห
่ น้าต่าง Properties Windows
 Object
List
Box: แสดงรายชื่อของ
คอนโทรลทัง้ หมดในฟอร์ม
 Properties List: แสดงชือ
่ คุณสมบัตแ
ิ ละ
ค่าทีก
่ าหนดสาหรับคอนโทรลทีเ่ ราเลือก
 Description Pane: แสดงคาอธิบายสัน
้ ๆ
เกีย่ วกับคุณสมบัตท
ิ เี่ ราเลือก
 กาหนดโดยการเขียน Code คาสั่ง
27
พื้นฐานทีใ่ นการสร้างโปรแกรมใน VB6

การเขียน Code คาสั่งเพือ
่ ตอบสนองต่อ Event
 เปิ ดหน้าต่าง Code Editor
 ด้านซ้ายสาหรับเลือกชือ
่ Object
 ด่านขวาสาหรับกาหนด Event
 ใส่คาสั่งลงไประหว่างข้อความ
Private Sub<ชือ
่ คอนโทรล>_<ชือ
่ อีเว็นต์>
กับ
End Sub
เป็ นตัวบอกว่าคาสั่งทีต
่ อบสนองนัน
้ เริม
่ ต้นและจบลงทีใ่ ด
28
การกาหนด Properties โดยการเขียนโค้ด
Object_Name.Properties_Name = ค่าของproperties
เช่น
Form1.Caption = “โปรแกรมการคานวณภาษี "
Form1.FontSize = 20
29
Properties พื้นฐานของ Control
 Name
 Caption
 ForeColor
 BackColor
 Height, Width
 Left ,Top
 TabIndex
 Enabled
 Visible
 FontBold,FontIt
alic
 FontName,Font
Size
 FontUnderline
 MousePointer
30
การทางานกับ Form
31
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
34
การใช้ Method โดยการเขียนโค้ด
Object_Name.Method_Name
[พารามิเตอร์ของ Method]
เช่น
Form1.Print "Siam Computer"
Me.Show
35
Event ของ Form
 Activate
 Click
 DblClick
 Load
 UnLoad
เมือ่ ฟอร์ม Activate
เมือ่ คลิกทีฟ
่ อร์ม
เมือ่ ดับเบิล้ คลิกทีฟ
่ อร์ม
้ มาทางาน
เมือ่ เปิ ดฟอร์มขึน
เมือ่ ปิ ดฟอร์ม
36
ตัวอย่างงาน
Sub Form_Activate( )
Form1.FontSize=20
Print “Test Visual Basic”
Print “Siam Computer”
End Sub
37
ตัวอย่างงาน
เพิม่ เซมิโคลอน ( ; )
Sub Form_Activate( )
Form1.Font.Size=20
Print “Test Visual Basic” ;
Print “Siam Computer”
CurrentX = 1500
CurrentY = 1000
Print “New Position”
End Sub ( )
38
ตัวอย่างที่ 2
คอนโทรล
คุณสมบัติ
ค่าทีก
่ าหนด
Form
Name
Form1
AutoRedraw
True
CommandButton Name
Caption
Command1
Clear
39
ตัวอย่างที่ 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
40
Object พื้นฐาน
ตัวแปรและ Operator
41
Label (properties)
 Name
 BackStyle
 Alignment
 Caption
 AutoSize
 Left
 BorderStyle
 Top
42
Text Box (properties)
 Name
•
 Text
•
 MaxLenght
•
 PasswordChar
•
 Multiline
ScrollBars
TabIndex เริม
่ ที่ 0
TabStop
ToolTipText
43
Method
Object_Name.SetFocus
กาหนดให้ cursor ไป focus ที่ Object
เช่น
Text1.Setfocus
Command1. Setfocus
44
Properties..
 SelStart
กาหนดตาแหน่ งเริม
่ เลือก
 SelLength กาหนดความยาวทีต
่ อ
้ งการ
เลือกข้อความ
45
Event
 Change
เมือ
่ มีการเปลีย่ นแปลงที่ Text
 GotFocus เมือ
่ Text ได้รบั Focus
 LostFocus เมือ
่ Text สูญเสีย Focus
46
Command Button (properties)
 Name
 Caption
 Default
 Picture
 Style
47
ตัวอย่างงาน
หาผลคูณระหว่าง 2 Text Box
48
Source Code
Sub cmdMultiply_Click()
a = txtnum1.Text
b = txtnum2.Text
lblResult.Caption = a & " * " & b & " = " & a * b
End Sub
49
Operator ในการเชือ
่ มต่อข้อมูล
& และ +
ใช้ในการเชือ
่ มข้อมูล
' ใช้ในการเปลีย่ นประโยคคาสั่งเป็ นComment
50
การเปลีย่ น Font ใน View Code
 เพือ
่ ให้หน้าต่าง
Code แสดง
ภาษาไทยได้
 เมนู Tools Option… Editor
Format
 ในช่อง Font ต้องเลือก Font ทีล
่ ง
ท้ายด้วย UPC หรือ DSE
เช่น BrowalliaUPC
51
ทาไมต้องประกาศตัวแปร
 เพือ
่ การทางานทีถ
่ ก
ู ต้องขอโปรแกรม
 เมนู
Tools Option… Editor
 Require Variable
Declaration
จะได้ Option Explicit ใน View
Code
52
การประกาศตัวแปรและค่าคงที่
Dim variable_name As Data_Type
Const const_name = Value
เช่น
Dim data1 As Integer
Const name = “Somjate”
53
กฎการตัง้ ชือ
่ ตัวแปร
้ ด้วยตัวอักษร
 ชือ
่ ตัวแปรต้องขึน
 ชือ
่ ตัวแปรห้ามยาวเกิน 255 ตัวอักษร
 ใช้ตวั อักษร,ตัวเลขและ _ ผสมกัน
เป็ นชือ
่ ได้
 ห้ามซา
้ กับคาสงวน เช่น Dim
 ชือ
่ ตัวแปรห้ามซา้ กันถ้าอยูใ่ นขอบเขต
เดียวกัน
54
ชนิดของข้อมูล
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)

55
ชนิดของข้อมูล (ต่อ)
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
56
ชนิดของข้อมูล (ต่อ)
 Date
 ข้อมูลวันทีแ
่ ละเวลา (8
Byte)
 String  ตัวอักษรหรือข้อความ
 Boolean  ค่าทางตรรกะ (2 Byte)
 Variant  ตัวแปรพิเศษ (22 Byte)
57
Operator ทางคณิตศาสตร์
นิพจน์
+
*
/
\
Mod
^
ความหมาย
บวก
ลบ
คูณ
หาร
หารจานวนเต็ม
หารเอาแต่เศษ
ยกกาลัง
58
ตัวอย่างงาน
การทางานกับ Operator ทางคณิตศาสตร์
59
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
60
ขอบเขตของตัวแปร (Scope of variable)
 ตัวแปรแบบโลคอล (Local)
 ตัวแปรแบบโกลบอล (Global)
Private ใช้ได้ทก
ุ โปรแกรมย่อยใน
Form ทีป
่ ระกาศ
Public ใช้ได้ทก
ุ โปรแกรมย่อยใน
โปรแกรม
61
Operator ทางการเปรียบเทียบ
นิพจน์
=
>
>=
<
<=
<>
ความหมาย
เท่ากับ
มากกว่า
มากกว่าหรือเท่ากับ
น้อยกว่า
น้อยกว่าหรือเท่ากับ
ไม่เท่ากับ
62
ตัวอย่างงาน
การทางานกับ Operator ทางการเปรียบเทียบ
63
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
64
Operator ทางตรรกะ
65
ลาดับการคานวณ
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)
ใช้ในการปัดจุดทศนิยมลงให้เป็ นเลขจานวนเต็ม
67
ฟังก์ชน
ั ทางคณิตศาสตร์
Rnd[(Number)]
Rnd ใช้ในการสุม
่ ค่าของข้อมูล
เช่น สุม
่ ค่าจานวนเต็ม 0-9
Label1.Caption = Int(Rnd * 9)
(Randomize ทาให้การสุม
่ เลขได้ไม่ซา้ )
68
ฟังก์ชน
ั ทางคณิตศาสตร์
Sqr(number)
ใช้หาค่ารากทีส่ องของข้อมูล
Abs(number)
ใช้กาหนดให้คา่ ของข้อมูลเป็ นค่าบวก
69
การทางานกับฟังก์ชน
ั ข้อความ
InStr([Start],String1,String2,[Compare])
ใช้คน
้ หาตัวอักษรใน String
Replace(String1,Find, Replace)
ใช้คน
้ หาตัวอักษรใน String แล้วแทนทีด
่ ว้ ย
70
การทางานกับฟังก์ชน
ั ข้อความ
UCase(String)
ใช้เปลีย่ น String เป็ นพิมพ์ใหญ่ทง้ ั หมด
LCase(String)
ใช้เปลีย่ น String เป็ นพิมพ์เล็กทัง้ หมด
71
ตัวอย่างงาน
72
ตัวอย่างงาน
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
73
การทางานกับฟังก์ชน
ั ข้อความ
Str(Numeric)
ใช้แปลง Numeric เป็ น String
Val(String)
ใช้แปลง String เป็ น Numeric
74
การทางานกับฟังก์ชน
ั ข้อความ
IsNumeric(String)
ตรวจสอบว่าเป็ น Numeric หรือไม่
IsDate(String)
ตรวจสอบว่าเป็ น Date หรือไม่
75
การทางานกับฟังก์ชน
ั ข้อความ
LTrim(String)
ใช้ตดั ช่องว่างทางด้านซ้ายของ String ออก
RTrim(String) ใช้ตดั ช่องว่างทาง
ด้านขวาของ String ออก
76
การทางานกับฟังก์ชน
ั ข้อความ
Trim(String) ใช้ตดั ช่องว่างทัง้ ด้านซ้าย
และขวาของ String
Format(value , "รูปแบบ")
ใช้กาหนดรูปแบบของข้อมูล
77
รูปแบบของวันที่ (Date)
 "dd/mm/yy"
 "Short Date"
 "dd/mmm/yyyy"  "Medium
Date"
 "dd/mmmm/yyyy"  "Long Date"
78
การทางานกับฟังก์ชน
ั ทางวันและเวลา
Now
จะให้คา่ วันทีแ
่ ละเวลา ณ ปัจจุบน
ั
Time
จะให้คา่ เวลา ณ ปัจจุบน
ั
79
รูปแบบของเวลา (Time)
 "HH:MM"
 "Short Time"
 "HH:MM AMPM"  "Medium
Time"
 "HH:MM:SS"  "Long Time"
80
ตัวอย่างงาน
ตรวจสอบเวลาการทางาน
81
ตัวอย่างงาน
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
82
ตัวอย่างงาน
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
83
If…Then…Else Statement
If เงือ
่ นไข Then
Statement…
Else
Statement…
End If
84
Flow-Chart
False
Statement ;
condition
True
Statement ;
85
If…Then…Statement
If เงือ
่ นไข Then Statement…
86
If…Then…Else Statement
If เงือ
่ นไข Then
Statement…
Else
Statement…
End If
If เงือ
่ นไข Then
Statement…
Elseif เงือ
่ นไข Then
Statement…
Elseif เงือ
่ นไข Then
Statement…
Else
Statement…
End if
87
ตัวอย่างการใช้ 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
88
Unload Statement
Unload ObjectName
เช่น Private Command1_Click()
Unload Form1 'หรือ
Unload Me
End Sub
89
End Command
End
หยุดการรันโปรแกรม
เช่น Private Command1_Click()
End ' จบการทางาน
End Sub
90
ตัวอย่างงาน
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)
91
ตัวอย่างงาน
โปรแกรมตรวจสอบรหัสผ่าน
92
ตัวอย่างงาน
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)
93
Select Case Statement
Select Case ตัวแปร
Case เงือ่ นไข1 หรือ ค่าคงที1
่
statement:
Case เงือ
่ นไข2 หรือ ค่าคงที2
่
statement:
Case Else
statement:
End Select
94
Flow-Chart
value1
S;
value2
Statement
;
condition
…
value n
Statement
;
else
S;
95
ตัวอย่ างงาน
การตรวจสอบเกรด
96
ตัวอย่างงาน
Private Sub CmdGrade_Click()
Dim score As Integer
Dim grade As String
score = Val(txtmark.Text)
97
ตัวอย่างงาน
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
98
Check Box (properties)
 Name
 Alignment
 Caption
• Value
 0 (Unchecked)
 1 (Checked)
 2 (Grayed)
99
ตัวอย่างงาน
แสดงวันทีแ
่ ละเวลา โดยใช้ Check Box
100
ตัวอย่างงาน
Private Sub chkTime_Click()
If chkTime.Value = 1 Then
lbltime.Caption = Format(Now, "HH:MM:SS")
Else
lbltime.Caption = ""
End If
End Sub
101
Private Sub Chkdate_Click()
If chkDate.Value = 1 Then
lblDate.Caption =
Format(Now,"dd/mmmm/yyyy")
Else
lblDate.Caption = ""
End If
End Sub
102
Option Button (properties)
 Name
• Value
 Alignment
• True (Select)
 Caption
• False (Not
Select)
103
ตัวอย่างงาน
เลือกเพศโดยใช้ Option Button
104
ตัวอย่างงาน
Private Sub Optmale_Click()
lblgender.Caption = "Male"
End Sub
Private Sub Optfemale_Click()
lblgender.Caption = "Female"
End Sub
105
ตัวอย่างงาน
การคานวณพื้นที่
106
Private Sub OptRectangle_Click()
txtnumber1.Text = ""
txtNumber2.Text = ""
lblResult.Caption = ""
txtNumber1.SetFocus
lblName1.Caption = "กว้าง"
lblName2.Caption = "ยาว"
lblName3.Caption = "พื้นทีส่ เี่ หลีย่ ม"
End Sub
107
Private Sub OptTriangle_Click()
txtNumber1.Text = ""
txtNumber2.Text = ""
lblResult.Caption = ""
txtNumber1.SetFocus
lblName1.Caption = "ฐาน"
lblName2.Caption = "สูง"
lblName3.Caption = "พื้นทีส่ ามเหลีย่ ม"
End Sub
108
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
109
Frame (properties)
 Name
 Caption
110
ตัวอย่างงาน
ค้นหาตาแหน่ งจากเพศและการศึกษา
111
เงือ
่ นไข
การศึกษา
ปริญญาตรี
ปวส.
ปวช.
ชาย
อาจารย์
ช่าง
คนขับรถ
หญิง
เลขา
ประชาสัมพันธ์
แม่บา้ น
112
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
113
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
114
Function MsgBox
MsgBox Prompt [,Buttons] [,Title]
 Prompt “ข้อความทีต
่ อ
้ งการแสดง”
 Buttons ปุ่ มทางานและสัญลักษณ์
 Title
 “ข้อความทีแ
่ สดงทีห
่ วั Box”
115
ตัวอย่าง Message Box
Icon
Title
Buttons
116
ตัวอย่างของสัญลักษณ์ (Icon)
vbCritical
vbInformation
vbExclamation
vbQuestion
117
Function MsgBox
ตัวแปร = MsgBox(Prompt [,Buttons] [,Title])
118
ตัวอย่างการใช้ Msgbox
119
HScrollBar และ VScrollBar (properties)
Name
Min
Max
Min
• LargeChange
• SmallChange
• Value
Max
•
•
Scroll Box
LargeChange
SmallChange
120
Event
 Change
เมือ่ ทาการเลือ
่ นที่
LargeChange หรือ SmallChange
 Scroll เมือ
่ ทาการเลือ
่ นที่ Scroll Box
121
ตัวอย่างงาน
การตรวจสอบ Properties ของ Scrollbar
กาหนด Properties
Min = 0
Max = 100
LargeChange = 10
SmallChange = 2
122
Sub HScroll1_Change()
lblInfo.Caption = "Value = " & HScroll1.Value
End Sub
Sub HScroll1_Scroll()
lblInfo.Caption = "Value = " & HScroll1.Value
End Sub
123
การเรียกใช้คา่ สี
 Object_Name.Properties
Color_Name
=
เช่น
lblName.ForeColor = VbRed
frmData.BackColor = VbGreen
124
ตัวอย่างงาน
ปรับแต่งรูปแบบตัวอักษร
125
ตัวอย่างงาน
ปรับแต่งรูปแบบตัวอักษร
126
127
Dim data As String
Private Sub Form_Load()
'Width = 4125
Height = 1440
End Sub
128
Private Sub cmdFont_Click()
data = txtName.Text
lblName.Caption = data
'Width = 4125
Height = 4080
End Sub
129
Private Sub chklowercase_Click()
If chklowercase.Value = 1 Then
chkuppercase.Value = 0
lblName.Caption = LCase(data)
Else
lblName.Caption = data
End If
End Sub
130
Private Sub chkuppercase_Click()
If chkuppercase.Value = 1 Then
chklowercase.Value = 0
lblName.Caption = UCase(data)
Else
lblName.Caption = data
End If
End Sub
131
Private Sub chkItalic_Click()
If chkitalic.Value = 1 Then
lblName.Font.Italic = True
Else
lblName.Font.Italic = False
End If
End Sub
132
Private Sub chkBold_Click()
If chkbold.Value = 1 Then
lblName.Font.Bold = True
Else
lblName.Font.Bold = False
End If
End Sub
133
Private Sub HScsize_Change()
lblName.Font.Size = HScsize.Value
End Sub
Private Sub Command3_Click()
'Width = 4125
Height = 1440
End Sub
134
Private Sub optRed_Click()
lblName.ForeColor = vbRed
End Sub
Private Sub optBlue_Click()
lblName.ForeColor = vbBlue
End Sub
135
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
136
การทางานกับฟังก์ชน
ั สี
QBColor(n)
โดย n มีคา่ ตัง้ แต่ 0 - 15
เช่น
Label1.BackColor = QBColor(1)
137
การทางานกับฟังก์ชน
ั สี
RGB(Red,Green,Blue)
โดยค่าสีอยูใ่ นช่วง 0 - 255
เช่น
Label1.BackColor = RGB(0,0,255)
Label1.ForeColor = RGB(255,0,255)
138
ตัวอย่างงาน
การผสมสีโดยใช้ Scroll Bars
139
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
140
และเหตุการณ์ 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
141
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
142
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
143
LOOP
144
For…Next Statement
For ตัวแปร = ค่าเริม
่ ต้น To ค่าสุดท้าย
[ Step เพิม
่ /ลดค่าตัวแปร ]
statement…
statement…
Next ค่าตัวแปร
145
ตัวอย่าง For…Next Statement
For I = 0 To 100 Step 2
statement…
statement…
Next I
146
Flow-Chart
for loop
Statement ;
.
.
end
147
ตัวอย่างงาน
แสดงตัวเลข 1 ถึง 20
Private Sub Form_Click()
Dim i As Integer
For i = 1 To 20
Print i ;
Next i
End Sub
148
Do…Loop Statement
Do while
(เงือ
่ นไข)
Do Until (เงือ
่ นไข)
Statement
:
Statement
:
Loop
Loop
149
Do…Loop Statement (ต่อ)
Do
Statement
:
Loop while
(เงือ
่ นไข)
Do
Statement
:
Loop Until
(เงือ่ นไข)
150
Flow-Chart (Do While)
False
condition
True
Statement ;
Statement ;
.
.
.
.
end
151
Flow-Chart (Do…Until)
Statement ;
.
.
True
condition
False
152
ตัวอย่างงาน
แสดงตัวเลข 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
154
While…Wend Statement
While (เงือ
่ นไข)
statements
:
Wend
155
ตัวอย่างงาน
แสดงตัวเลข 10 ลงไปหา 1
Private Sub Form_Click()
Dim i As Integer
i = 10
While i > 0
Print i
i=i-1
Wend
End Sub
156
List Box (properties)
 Name
 Columns
 List
 ListIndex
 Text
• Sorted
• Style
– Standard
– Checkbox
 ListCount
156
ตัวอย่าง List Box
158
Method
List1.AddItem “รายการ”, index
List1.RemoveItem index
List1.Clear
159
With …End With Statement
With Object_Name
.Properties = Value
.Method
End With
160
Goto Statement
Goto label
Statement…
label :
Statement…
Sub Command1_Click()
GoTo aa
Label1.Caption = “VB"
aa:
Label1.Caption = "Siam”
End Sub
161
On Error Goto…
On Error Goto label
Statement…
label :
Statement…
162
On Error Resume Next
On Error Resume Next
Statement…
Statement…
163
คาสั่งการทางานต่อเนื่อง
 Resume
:ทางานซา้ บรรทัดทีเ่ กิด
้
Error ขึน
 Resume Next : ทางานบรรทัดถัด
้
จากบรรทัดทีเ่ กิด Error ขึน
164
Error Object
 เป็ น
Object ทีจ่ ดั เก็บข้อผิดพลาดที่
้ ในโปรแกรมขณะ Run Time
เกิดขึน
 รูปแบบ
Err.Properties
165
Properties
Number
Description
166
On…Goto & On…GoSub
On expression GoSub
destinationlist
On expression GoTo
destinationlist
167
ตัวอย่างงาน
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
168
ตัวอย่างงาน
การย้ายรายการใน List
Sorted = True
169
Private Sub Form_Load()
lstPrg.AddItem "Widows"
lstPrg.AddItem "Word"
lstPrg.AddItem "Excel"
lstPrg.AddItem "Access"
lstPrg.AddItem "Power Point"
End Sub
หรือ
170
Private Sub Form_Load()
With lstPrg
.AddItem "Widows"
.AddItem "Word"
.AddItem "Excel"
.AddItem "Access"
.AddItem "Power Point"
End With
End Sub
171
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
172
ตัวอย่างงาน
การจัดการกับ List
173
Private Sub cmdADD_Click()
If Trim(txtData.Text) <> "" Then
lstInfo.AddItem txtData.Text
End If
txtData.Text = ""
txtData.SetFocus
End Sub
174
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
175
ตัวอย่างงาน
การย้ายข้อมูลใน List 2 List
MultiSelect=Extended
176
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
177
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
178
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
179
Combo Box (properties)
 Name
โดยทั่วไปใช้งานเหมือน List Box
 Style
◦ Dropdown Combo
◦ Simple Combo
◦ Dropdown List
180
ตัวอย่างงาน
การเปลีย่ นสีฟอร์มโดยใช้ Combo
181
ตัวอย่างงาน
สีเขียวอ่อน
สีมว่ ง
สีทอง
182
Private Sub Form_Load()
cmbColor.AddItem "Blue"
cmbColor.AddItem "Green"
cmbColor.AddItem “Magenta"
cmbColor.AddItem "Red"
cmbColor.AddItem "Yellow"
End Sub
183
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
184
Function InputBox
ตัวแปร = InputBox(Prompt [,Title] [,Default])
Prompt : “ข้อความทีต
่ อ
้ งการแสดง”
Title
: “ข้อความทีแ
่ สดงทีห
่ วั ของ Box”
Default : ค่าปกติทต
ี่ ง้ ั ไว้
185
ตัวอย่างของ InputBox
Title
Prompt
186
ตัวอย่างงาน
ตอบคาถามจาก Question แล้วแสดงว่าตอบถูกกีข
่ อ
้
187
Dim n As Integer
Dim Ans As String
Private Sub Form_Load()
n=0
End Sub
188
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
189
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
190
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
191
DriveListBox (properties)
 Name
 Drive
เช่น EditPlus
Event ส่วนใหญ่ใช้ Change
192
DirListBox (properties)
 Name
 Path
Event ส่วนใหญ่ใช้ Change
193
FileListBox (properties)
 Name
 Path
 Filename
 Pattern
เช่น *.exe;*.xls
Event ส่วนใหญ่ใช้ Click
194
ตัวอย่างงาน
แสดงชือ
่ ไฟล์ และ Path ของไฟล์
195
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
196
Timer (properties)
 Name
 Enabled
Event ใช้ Timer
 Interval
197
การทางานกับฟังก์ชน
ั ทางวันและเวลา
Now
จะให้คา่ วันทีแ
่ ละเวลา ณ ปัจจุบน
ั
Time
จะให้คา่ เวลา ณ ปัจจุบน
ั
198
ตัวอย่างงาน
ิ าดิจต
นาฬก
ิ อลจาก Timer
198
Private Sub Timer1_Timer()
lblTime.Caption = Time
End Sub
200
ตัวแปร Static
 เป็ นตัวแปรทีไ
่ ม่ถก
ู ทาลายหลังจาก
จบโปรแกรมย่อย (แต่ละ Event)
 รูปแบบ
Static Name As Data_Type
201
ตัวอย่างงาน
นับจานวนการกดปุ่ ม
202
Private Sub cmdCount_Click()
Static n As Integer
n=n+1
lblShowNumber.Caption = "Count = " & n
End Sub
' หรือประกาศตัวแปร n เป็ นแบบ
Private
203
ตัวอย่างงาน
ตรวจสอบ Password
Dim n As Integer
Dim x As Integer
204
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")
205
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
206
ตัวอย่างงาน
ใช้ Timer กาหนดให้ Label เคลือ
่ นที่
คุณสมบัตข
ิ อง Timer
Enabled = False
Interval = 510
207
ตัวอย่างงาน
Private Sub cmdStart_Click()
If cmdStart.Caption = "เริม
่ " Then
Timer1.Enabled = True
cmdStart.Caption = "หยุด"
Else
Timer1.Enabled = False
cmdStart.Caption = "เริม
่ "
End If
End Sub
208
Private Sub Timer1_Timer()
lblWalk.Left = lblWalk.Left + 100
End Sub
209
Private Sub Timer1_Timer()
lblWalk.Left = lblWalk.Left + 100
If lblWalk.Left >= Me.Width Then
lblWalk.Left = 0
End If
End Sub
210
Private Sub cmdDecrease_Click()
Timer1.Interval = Timer1.Interval - 50
End Sub
211
Private Sub cmdDecrease_Click()
Timer1.Interval = Timer1.Interval - 50
If Timer1.Interval <= 10 Then
cmdDecrease.Enabled = False
End If
End Sub
212
Private Sub cmdIncrease_Click()
cmdDecrease.Enabled = True
Timer1.Interval = Timer1.Interval + 50
End Sub
213
กาหนดให้ Label วิง่ รอบฟอร์ม
Sub Form_Load()
fac = "b"
End Sub
214
กาหนดให้ 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
215
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
216
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
217
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
218
PictureBox (properties)
 Name
 AutoSize
 BorderStyle
ใช้ในด้านกราฟิ ก
 Picture
219
ImageBox (properties)
 Name
 BorderStyle
 Picture
 Stretch
ใช้แสดงรูปภาพบน Form
220
Method ของ Picture และ Image
LoadPicture(“Directory\...\ชือ
่ ไฟล์
ภาพ”)
เช่น
Image1.Picture
=LoadPicture("c:\cat.jpg")
221
ตัวอย่างงาน
เมือ
่ คลิกฟอร์ม ให้ทาการสลับภาพ
222
Sub Form_Click()
Image2.Picture = Picture1.Picture
Picture1.Picture = Image1.Picture
Image1.Picture = Image2.Picture
End Sub
223
ตัวอย่างงาน
แสดงภาพจากไฟล์ทเี่ ลือก
224
Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
225
Sub File1_Click()
txtPath.Text = File1.Path
txtFile.Text = File1.FileName
Image1.Picture = LoadPicture(File1.Path & _
"\" & File1.FileName)
' ตัง้ ค่าที่ Pattern ด้วย
End Sub
226
แก้ปญ
ั หารูปที่ 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
227
Line (properties)
 Name
•
 BorderColor •
 BorderStyle
•
 BorderWidth •
X1
X2
Y1
Y2
228
คาสั่งในการวาดเส้นตรง
line(x1,y1) – (x2,y2),Color
เช่น
Line (500, 200)-(2000, 1000), QBColor(11)
229
ตัวอย่างงาน
สร้างตารางดังรูป
230
ตัวอย่างงาน
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
231
Shape (properties)
 Name
 BackStyle
 BackColor
 BorderColor
 BorderStyle
•
•
•
•
BorderWidth
FillColor
FillStyle
Shape
232
ตัวอย่างงาน
Random Shape
233
Sub cmdShow_Click()
Shape1.Shape = (Rnd * 5)
Shape1.FillColor = QBColor(Rnd * 15)
Shape1.FillStyle = (Rnd * 7)
Shape1.BorderColor = QBColor(Rnd * 15)
End Sub
234
คาสั่งในการวาดวงกลม
Circle(x,y),radius,color
เช่น
Circle (1000, 1000), 500
235
ตัวอย่างงาน
วงกลมซ้อน
236
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
237
การทางานกับ Event ของ Mouse
 MouseDown
 MouseUp
 MouseMove
เมือ่ กดปุ่ มของเมาส์
เมือ่ ปล่อยปุ่ มของเมาส์
เมือ่ เลือ
่ นเมาส์
238
การใช้ปมบน
ุ่
Mouse พร้อมกับ Shift
ตัวแปร Button
1ปุ่ มซ้าย
2ปุ่ มขวา
4ปุ่ มกลาง
ตัวแปร Shift
1
2
4
กดปุ่ ม Shift ร่วม
กดปุ่ ม Ctrl ร่วม
กดปุ่ ม Alt ร่วม
239
พารามิเตอร์ของเหตุการณ์ ทเี่ กีย่ วกับเมาส์
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)
240
ตัวอย่างงาน
การกาหนดให้ Label เคลือ
่ นทีต
่ าม Mouse
241
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
242
ตัวอย่างงาน
วาดเส้นโดยใช้ Mouse
243
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
244
Sub Form_MouseUp(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
d = False
End Sub
245
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
246
กดเมาส์ซา้ ยค้างวาดเส้น กดเมาส์ขวาค้างวาดวงกลม
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
247
กดเมาส์ซา้ ยค้างวาดเส้น กดเมาส์ซา้ ยค้างพร้อมปุ่ ม 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
248
การใช้ Common Dialog

เมนู Project  Components…
◦ Microsoft Common Dialog Control 6.0
249
Dialog Open
250
Dialog Font
251
Dialog Color
252
ตัวอย่างงาน
การเรียกใช้ Dialog
251
Common Dialog (properties)
 Name
 Action
 DialogTitle
 Filter
 FilterIndex
• Flags
• InitiDir
• CancelError
254
Common Dialog (properties) (ต่อ)
 FileName
 FontName
 FontSize
 FontBold
•
•
•
•
FontItalic
FontStrikethru
FontUnderline
Color
255
Common Dialog (Method)
 ShowOpen
 ShowSave
• ShowFont
• ShowHelp
 ShowColor
 ShowPrinter
256
ตัวอย่างการใช้ Filter
.Filter= "All Files (*.*)|*.*"
.Filter= "All Files (*.*)|*.*|Text Files (*.txt)|*.txt"
"All Pictures (*.bmp;*.gif;*.jpg)|*.bmp;*.gif;*.jpg"
FilterIndex = 2
257
การเรียกใช้ 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
258
การเรียกใช้ Dialog Color
Private Sub cmdShowColor_Click()
dlg1.Flags = cdlCCRGBInit
dlg1.ShowColor
Label1.ForeColor = dlg1.Color
End Sub
259
การเรียกใช้ 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
260
Private Sub cmdExit_Click()
End
End Sub
261
การเรียกใช้ 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
262
การเรียกใช้ Dialog Print
Private Sub cmdShowPrinter_Click()
dlg1.ShowPrinter
End Sub
263
การเรียกใช้ Dialog Help
Private Sub
cmdShowHelp_Click()
dlg1.HelpFile = _
"c:\windows\help\winhlp32.hlp"
dlg1.HelpCommand
=cdlHelpContents
dlg1.ShowHelp
End Sub
264
MDI Form
 สร้าง
Multiple Document
Interface
MDI Form
 Project  Add MDI Form
 เลือก MDI Form
 Open
265
ตัวอย่างงาน
การใช้งาน MDI Form
MDI Form
MDI Child Form
266
การกาหนดฟอร์มลูกของ MDI Form
 ให้กาหนด
Properties  MDIChild
ของฟอร์มลูกเป็ น True
267
การสร้างเมนู (Menu)
 Tools
Menu Editor...
Caption : ข้อความทีจ
่ ะแสดงเป็ นเมนู
Name
: กาหนดชือ
่ เมนู
คลิกปุ่ ม : เพือ
่ กาหนดเมนูยอ
่ ย
** สร้างได้ 6 ระดับ
268
ตัวอย่างงาน
สร้างเมนูดงั รูป
269
เมนูไฟล์
Caption
&File
Openform1
Openform2
Exit
Name
mnufile
mnuform1
mnuform2
mnuline
mnuexit
270
เมนู Font
Caption
&Font
10
12
15
20
Color
Red
Green
Blue
Name
mnufont
mnu10
mnu12
mnu15
mnu20
mnucolor
mnured
mnugreen
mnublue
271
การเขียนคาสั่งใน Menu
Sub mnuform1_Click()
Form1.Show
End Sub
Sub mnuform2_Click()
Form2.Show
End Sub
Sub mnuexit_Click()
End
End Sub
272
สร้าง MDI Form และเมนู ดัง
รูป
273
กาหนดให้ คุณสมบัตข
ิ อง Form1 และ Form2
274
ดูความแตกต่างระหว่างฟอร์ม 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
275
Popup Menu
 Tools
Menu Editor...
 กาหนดรายการเมนูเหมือนการสร้าง
เมนู โดยรายการหลักให้ ยกเลิก
Visible ออก
276
ตัวอย่างงาน
สร้าง Popmenu
Visible=False
Caption
popup
Cut
Copy
Paste
Name
mnupopup
mnucut
mnucopy
mnupaste
277
การเรียกใช้งาน Popup Menu
Popupmenu PopupMenu_Name
เช่น
PopupMenu mnupopup
278
การกาหนดให้ 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
279
โปรแกรมย่อย (Procedure)
Sub
(Sub Program)
Function
280
Sub Program
Sub ชือ
่ โปรแกรมย่อย
(parameter)
Statement
:
End Sub
281
ขอบเขตของ Sub Program
Sub ชือ
่ โปรแกรมย่อย
(parameter)
เป็ นโปรแกรมทีใ่ ช้ได้ใน Form นัน
้ ๆ
 Public Sub ชือ
่ โปรแกรมย่อย
(parameter)
เป็ นโปรแกรมทีใ่ ช้ได้ในทุกๆ Form
 Sub ชือ
่ โปรแกรมย่อย (parameter)
เหมือนกับ Public Sub
 Private
282
การเรียกใช้ Sub Program
Call ชือ
่ โปรแกรมย่อย(ค่าทีส่ ง่ )
หรือ
ชือ่ โปรแกรมย่อย(ค่าทีส่ ง่ )
283
ตัวอย่างงาน
Sub Program แบบไม่มี Parameter
284
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
285
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
286
Private Sub HScBlue_Change()
Call Color
lblBlue.Caption = “BLUE = " &
HScBlue.Value
End Sub
287
ตัวอย่างงาน
Sub Program แบบมี Parameter
288
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
289
Private Sub cmdTable_Click()
Me.Cls
Call table(Val(txtRow.Text), Val(txtCol.Text))
txtRow.Text = ""
txtCol.Text = ""
txtRow.SetFocus
End Sub
290
Function
Function ชือ
่ function (parameter)
As datatype
Statement
:
End Function
291
การเรียกใช้ Function
ตัวแปร หรือ Object = ชือ่ Function(ส่งค่า Parameter)
292
ตัวอย่างงาน
การหาค่า Factorial
293
Function Fac(n As Integer) As Long
If n = 1 Then
Fac = 1
Else
Fac = n * Fac(n - 1)
End If
End Function
294
Private Sub cmdFac_Click()
Dim data As Long
data = Fac(Val(txtNumber.Text))
lblResult.Caption = txtNumber.Text & " != "
& data
txtNumber.Text = ""
txtNumber.SetFocus
End Sub
295
การประกาศตัวแปร Array
Dim ชือ
่ ตัวแปร(UpperBound) As Type
เช่น
Dim Cost(5) As Integer
Cost(0) = 20
Cost(5) = val(Text1.Text)
296
การประกาศตัวแปร Array
Dim ชือ
่ ตัวแปร(LBound To UBound) As Type
เช่น
Dim Score(1 To 4) As Integer
Dim Name(97 To 100) As String
297
Object แบบ Array
ถ้าต้องการใช้ Object แบบ Array
ให้ทาการคัดลอก Object
298
ตัวอย่างงาน
หาค่าเฉลีย่ โดยใช้ Array
คัดลอก Text1 อีก 2 ตัว
299
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
300
การทางานกับฐานข้อมูล
299
Data Control (properties)
 Name
 Caption
 Connect
 DatabaseName
 RecordSource
302
Method ของ Record Set
 AddNew
 Update
• Delete
• Refresh
 CancelUpdate
303
Method ของ Record Set
 MoveFirst
•
 MoveLast
•
 MoveNext
•
 MovePrevious •
FindFirst
FindLast
FindNext
FindPrevious
304
การกาหนดให้ Object อ้างข้อมูลในฐานข้อมูลได้
กาหนดคุณสมบัติ
DataSource
DataField
305
การเขียนคาสั่งโปรแกรมกับ Data Control
การย้ายไปยังเรคคอร์ดต่างๆ ใน ReccordSet





MoveFirst
MoveLast
MoveNext
MovePrevious
Move
ย้ายไปยังเรคคอร์ดแรก
ย้ายไปยังเรคคอร์ดสุดท้าย
ย้ายไปยังเรคคอร์ดถัดไป
ย้ายไปยังเรคคอร์ดก่อนหน้า
ย้ายไปยังเรคคอร์ดทีร่ ะบุ
306
การเขียนคาสั่งโปรแกรมกับ Data Control
การค้นหาข้อมูลใน ReccordSet




FindFirst ค้นหาเรคคอร์ดแรกทีต
่ รงกับเงือ
่ นไข
FindLast ค้นหาเรคคอร์ดสุดท้ายทีต
่ รงกับเงือ
่ นไข
FindNext ค้นหาเรคคอร์ดถัดไปทีต
่ รงกับเงือ
่ นไข
FindPrevious ค้นหาเรคคอร์ดก่อนหน้าทีต
่ รงกับเงือ
่ นไข
307
ตัวอย่างงาน
้
แสดงข้อมูลจากฐานข้อมูลทีส่ ร้างขึน
Data1 กาหนด DatabaseName และ RecordSource
Text กาหนด DataSource และ DataField
308
Private Sub cmdAdd_Click() ' ปุ่ ม Add
Data1.Recordset.AddNew
txtId.SetFocus
cmdOK.Visible = True
cmdADD.Visible = False
End Sub
309
Private Sub cmdOK_Click() 'ปุ่ ม OK
Data1.Recordset.Update
cmdADD.Visible = True
cmdOK.Visible = False
End Sub
เมือ่ ทาการรันให้ ปุ่ ม OK ซ้อนปุ่ ม Add
310
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
311
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
312
313
' ให้ใส่ตาแหน่ งทีม
่ ีอยูใ่ น Database
Private Sub Form_Load()
cmbPosition.AddItem "Manager"
cmbPosition.AddItem "Saleman"
cmbPosition.AddItem “Reception"
End Sub
314
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
315
ต่อปุ่ ม 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
316
Private Sub cmdFindNext_Click() 'ปุ่ ม FindNext
Data1.Recordset.FindNext t
If Data1.Recordset.NoMatch Then
MsgBox "End of Data", 32
End If
End Sub
317
ตัวอย่างงาน
ป้ อน user name และ password เพือ
่ เข้าไปใช้ Database
ถ้าป้ อน admin และ password = dusit สามารถใช้ Database ได้ครบ
ถ้าป้ อน user และ password = sitd สามารถใช้ Database บางส่วน
318
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
319
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
320
จบบทเรียน
319
Download