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