Visual Basic 6.0
ใช้กับการเลือกแบบ ถูก/ผิด ( True/False, Yes/No) 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) ได้
Directory List box Drive List box File list box Frame Image คล้ายกับ Combo box ที่ใช้เลือกชื่อของไดร์ฟในระบบ File list box เป็น List box ชนิดพิเศษที่ใช้แสดงชื่อไฟล์ในไดเรคทอรี Frame สามารถใช้เป็น container สำหรับตัว control อื่น Horizontal และ Vertical Scroll Bar ใช้เป็นแถบเลื่อนแบบ stand-alone แต่มักจะไม่ค่อยมีการใช้ เพราะตัว control อื่น ๆ ส่วนใหญ่ จะมีแถบเลื่อนของตัวเอง Image เป็นตัว control ใช้เก็บภาพคล้ายกับ Picture box แต่ไม่สามารถทำงานแบบ container ได้ Image มีข้อดีที่ใช้ทรัพยากรของระบบน้อยกว่า Picture box
Label Line List box OLE container เป็นตัว control ที่ใช้แสดงข้อความ หรือป้ายชื่อ Line เป็นตัว control ใช้สำหรับการตกแต่งด้านกราฟฟิก List box เป็นตัว control ที่เก็บรายการของค่า และให้ผู้ใช้เลือก ซึ่งสามารถเป็นการเลือกค่าเดียวหรือหลายค่า ขึ้นกับการกำหนดคุณสมบัติ MultiSelect OLE container เป็นตัว control ที่สามารถเป็น Host window ให้กับโปรแกรมภายนอก เช่น Microsoft Excel หรืออาจจะกล่าวว่าเป็นการสร้าง window ให้กับโปรแกรมอื่นบนโปรแกรมประยุกต์ Visual Basic
การสร้างฟอร์ม Visual Basic Project วิธีการ 1 การสร้างฟอร์ม Visual Basic Project วิธีการ 1. คลิกที่เมนู File >> New Project 2. เลือก Standard EXE 3.คลิกปุ่ม Open
การเพิ่มฟอร์ม วิธีการ คลิกที่ทูลบาร์ เลือก Form
การลบฟอร์ม วิธีการ ที่ Project Explorer 1. คลิกขวาบริเวณชื่อฟอร์มที่ต้องการลบ 2. เลือก Remove Form (n) การลบฟอร์ม
ให้นักเรียนเขียนโปรแกรมเข้าสู่ระบบดังภาพ
กำหนดคุณสมบัติ Label Text Command button Form Name Caption lbl_name ชนิดของออบเจ็กต์ Properties ค่าทึ่ตั้ง Label Name Caption lbl_name กรุณากรอกชื่อ lbl_surname กรอกนามสกุล Text txt_name ปล่อยว่าง txt_surname Command button cmd_ok เข้าสู่ระบบ Form Frm_login
คำสั่ง (Code) Private Sub cmd_ok_Click() MsgBox " ยินดีต้อนรับ " & Text1.Text & " " & Text2.Text, vbOKOnly, " เข้าสู่ระบบ " End Sub บันทึกตั้งชื่อ Project2 และ Form1 จัดเก็บในโฟลเดอร์ของตนเอง
Textbox Form Checkbox Option Button
การเรียกใช้งาน ปุ่ม Start >> Programs >> Microsoft Visual Studio 6.0 >> Microsoft Visual Basic 6.0
ส่วนประกอบของ Visual Basic แถบ Title Bar แถบ Menu Bar แถบ Tool Bar หน้าต่าง Form Windows View Object
ส่วนประกอบของ Visual Basic หน้าต่าง Project Explorer View Project Explorer <Ctrl+R> หน้าต่าง Properties View Properties Window <F4>
ส่วนประกอบของ Visual Basic หน้าต่าง Form Layout View Form Layout Window แถบเครื่องมือ Toolbox View Toolbox
เริ่มต้นการสร้าง Application
การสร้าง Application ใหม่ File New Project เลือก Standard EXE คลิกปุ่ม OK
การบันทึก Application การบันทึกจะบันทึกแยก ระหว่าง Form กับ Project File Save Form หรือ Project ตั้งชื่อฟอร์ม หรือ ชื่อ project คลิกปุ่ม Save
การเพิ่ม Form ใหม่ Project Add Form หรือ คลิก Toolbar ในการเพิ่ม Form
การเพิ่ม Form ที่มีอยู่แล้ว Project Add File เลือกฟอร์มที่ต้องการ คลิกปุ่ม Open
ยกเลิก Form ออก เลือกฟอร์ม Project Remove ชื่อForm
การ Run Application Run Start หรือ กดคีย์ F5 หรือใช้ Toolbar
การ Stop Application Run End หรือ ใช้ Toolbar
การกำหนดฟอร์มที่รัน เมนู Project Project Properties… แท็บ General กำหนดที่ Startup Object
พื้นฐานที่ในการสร้างโปรแกรมใน VB6 การสร้างคอนโทรลบนฟอร์ม การย้ายคอนโทรล การเปลี่ยนขนาดคอนโทรล การลบคอนโทรลออกจากฟอร์ม
พื้นฐานที่ในการสร้างโปรแกรมใน VB6 การกำหนดคุณสมบัติของคอนโทรล กำหนดที่หน้าต่าง Properties Windows Object List Box: แสดงรายชื่อของคอนโทรลทั้งหมดในฟอร์ม Properties List: แสดงชื่อคุณสมบัติและค่าที่กำหนดสำหรับคอนโทรลที่เราเลือก Description Pane: แสดงคำอธิบายสั้นๆเกี่ยวกับคุณสมบัติที่เราเลือก กำหนดโดยการเขียน Code คำสั่ง
พื้นฐานที่ในการสร้างโปรแกรมใน VB6 การเขียน Code คำสั่งเพื่อตอบสนองต่อ Event เปิดหน้าต่าง Code Editor ด้านซ้ายสำหรับเลือกชื่อ Object ด่านขวาสำหรับกำหนด Event ใส่คำสั่งลงไประหว่างข้อความ Private Sub<ชื่อคอนโทรล>_<ชื่ออีเว็นต์> กับ End Sub เป็นตัวบอกว่าคำสั่งที่ตอบสนองนั้นเริ่มต้นและจบลงที่ใด
การกำหนด Properties โดยการเขียนโค้ด Object_Name.Properties_Name = ค่าของproperties เช่น Form1.Caption = “โปรแกรมการคำนวณภาษี" Form1.FontSize = 20
Properties พื้นฐานของ Control Name Caption ForeColor BackColor Height, Width Left ,Top TabIndex Enabled Visible FontBold,FontIt alic FontName,Font Size FontUnderline MousePointer 30
การทำงานกับ Form
Properties ของ Form Name Icon BackColor MinButton ForeColor MaxButton Caption Enabled Font Icon MinButton MaxButton 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
การใช้ Method โดยการเขียนโค้ด Object_Name.Method_Name [พารามิเตอร์ของ Method] เช่น Form1.Print "Siam Computer" Me.Show
Event ของ Form Activate เมื่อฟอร์ม Activate Click เมื่อคลิกที่ฟอร์ม DblClick เมื่อดับเบิ้ลคลิกที่ฟอร์ม Load เมื่อเปิดฟอร์มขึ้นมาทำงาน UnLoad เมื่อปิดฟอร์ม
ตัวอย่างงาน Sub Form_Activate( ) Form1.FontSize=20 Print “Test Visual Basic” Print “Siam Computer” End Sub
Print “Test Visual Basic” ; Print “Siam Computer” CurrentX = 1500 ตัวอย่างงาน เพิ่ม เซมิโคลอน ( ; ) Sub Form_Activate( ) Form1.Font.Size=20 Print “Test Visual Basic” ; Print “Siam Computer” CurrentX = 1500 CurrentY = 1000 Print “New Position” End Sub ( )
ตัวอย่างที่ 2 คอนโทรล คุณสมบัติ ค่าที่กำหนด Form Name Form1 คอนโทรล คุณสมบัติ ค่าที่กำหนด Form Name Form1 AutoRedraw True CommandButton Name Command1 Caption Clear
ตัวอย่างที่ 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
Object พื้นฐาน ตัวแปรและ Operator
Label (properties) Name Alignment AutoSize BorderStyle BackStyle Caption Left Top 42
Text Box (properties) Name ScrollBars Text TabIndex เริ่มที่ 0 MaxLenght PasswordChar Multiline ScrollBars TabIndex เริ่มที่ 0 TabStop ToolTipText
Object_Name.SetFocus กำหนดให้ cursor ไป focus ที่ Object Method Object_Name.SetFocus กำหนดให้ cursor ไป focus ที่ Object เช่น Text1.Setfocus Command1. Setfocus
Properties.. SelStart กำหนดตำแหน่งเริ่มเลือก SelLength กำหนดความยาวที่ต้องการ เลือกข้อความ
Event Change เมื่อมีการเปลี่ยนแปลงที่ Text GotFocus เมื่อ Text ได้รับ Focus LostFocus เมื่อ Text สูญเสีย Focus
Command Button (properties) Name Caption Default Picture Style
ตัวอย่างงาน หาผลคูณระหว่าง 2 Text Box
Source Code Sub cmdMultiply_Click() a = txtnum1.Text b = txtnum2.Text lblResult.Caption = a & " * " & b & " = " & a * b End Sub
Operator ในการเชื่อมต่อข้อมูล & และ + ใช้ในการเชื่อมข้อมูล ' ใช้ในการเปลี่ยนประโยคคำสั่งเป็นComment
การเปลี่ยน Font ใน View Code เมนู Tools Option… Editor Format ในช่อง Font ต้องเลือก Font ที่ลง ท้ายด้วย UPC หรือ DSE เช่น BrowalliaUPC
ทำไมต้องประกาศตัวแปร เพื่อการทำงานที่ถูกต้องขอโปรแกรม เมนู Tools Option… Editor Require Variable Declaration จะได้ Option Explicit ใน View Code
การประกาศตัวแปรและค่าคงที่ Dim variable_name As Data_Type Const const_name = Value เช่น Dim data1 As Integer Const name = “Somjate”
กฎการตั้งชื่อตัวแปร ชื่อตัวแปรต้องขึ้นด้วยตัวอักษร ชื่อตัวแปรห้ามยาวเกิน 255 ตัวอักษร ใช้ตัวอักษร,ตัวเลขและ _ ผสมกัน เป็นชื่อได้ ห้ามซ้ำกับคำสงวน เช่น Dim ชื่อตัวแปรห้ามซ้ำกันถ้าอยู่ในขอบเขต เดียวกัน
ชนิดของข้อมูล 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)
ชนิดของข้อมูล (ต่อ) 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
ชนิดของข้อมูล (ต่อ) Date ข้อมูลวันที่และเวลา (8 Byte) String ตัวอักษรหรือข้อความ Boolean ค่าทางตรรกะ (2 Byte) Variant ตัวแปรพิเศษ (22 Byte)
Operator ทางคณิตศาสตร์ นิพจน์ ความหมาย + บวก - ลบ * คูณ / หาร \ หารจำนวนเต็ม Mod หารเอาแต่เศษ ^ ยกกำลัง
ตัวอย่างงาน การทำงานกับ Operator ทางคณิตศาสตร์
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
ขอบเขตของตัวแปร (Scope of variable) ตัวแปรแบบโลคอล (Local) ตัวแปรแบบโกลบอล (Global) Private ใช้ได้ทุกโปรแกรมย่อยใน Form ที่ประกาศ Public ใช้ได้ทุกโปรแกรมย่อยในโปรแกรม
Operator ทางการเปรียบเทียบ นิพจน์ ความหมาย = เท่ากับ > มากกว่า > = มากกว่าหรือเท่ากับ < น้อยกว่า < = น้อยกว่าหรือเท่ากับ < > ไม่เท่ากับ
ตัวอย่างงาน การทำงานกับ Operator ทางการเปรียบเทียบ
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
Operator ทางตรรกะ
ลำดับการคำนวณ 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) ใช้ในการปัดจุดทศนิยมลงให้เป็นเลขจำนวนเต็ม
ฟังก์ชันทางคณิตศาสตร์ Rnd[(Number)] Rnd ใช้ในการสุ่มค่าของข้อมูล เช่น สุ่มค่าจำนวนเต็ม 0-9 Label1.Caption = Int(Rnd * 9) (Randomize ทำให้การสุ่มเลขได้ไม่ซ้ำ)
ฟังก์ชันทางคณิตศาสตร์ Sqr(number) ใช้หาค่ารากที่สองของข้อมูล Abs(number) ใช้กำหนดให้ค่าของข้อมูลเป็นค่าบวก
การทำงานกับฟังก์ชันข้อความ InStr([Start],String1,String2,[Compare]) ใช้ค้นหาตัวอักษรใน String Replace(String1,Find, Replace) ใช้ค้นหาตัวอักษรใน String แล้วแทนที่ด้วย
การทำงานกับฟังก์ชันข้อความ UCase(String) ใช้เปลี่ยน String เป็นพิมพ์ใหญ่ทั้งหมด LCase(String) ใช้เปลี่ยน String เป็นพิมพ์เล็กทั้งหมด
ตัวอย่างงาน
Private Sub cmdClear_Click() txtTEXT1.Text = "" txtTEXT1.SetFocus ตัวอย่างงาน 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
การทำงานกับฟังก์ชันข้อความ Str(Numeric) ใช้แปลง Numeric เป็น String Val(String) ใช้แปลง String เป็น Numeric
การทำงานกับฟังก์ชันข้อความ IsNumeric(String) ตรวจสอบว่าเป็น Numeric หรือไม่ IsDate(String) ตรวจสอบว่าเป็น Date หรือไม่
การทำงานกับฟังก์ชันข้อความ LTrim(String) ใช้ตัดช่องว่างทางด้านซ้ายของ String ออก RTrim(String) ใช้ตัดช่องว่างทาง ด้านขวาของ String ออก
การทำงานกับฟังก์ชันข้อความ Trim(String) ใช้ตัดช่องว่างทั้งด้านซ้าย และขวาของ String Format(value , "รูปแบบ") ใช้กำหนดรูปแบบของข้อมูล
รูปแบบของวันที่ (Date) "dd/mm/yy" "Short Date" "dd/mmm/yyyy" "Medium Date" "dd/mmmm/yyyy" "Long Date"
การทำงานกับฟังก์ชันทางวันและเวลา Now จะให้ค่าวันที่และเวลา ณ ปัจจุบัน Time จะให้ค่าเวลา ณ ปัจจุบัน
รูปแบบของเวลา (Time) "HH:MM" "Short Time" "HH:MM AMPM" "Medium Time" "HH:MM:SS" "Long Time"
ตัวอย่างงาน ตรวจสอบเวลาการทำงาน
ตัวอย่างงาน 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
ตัวอย่างงาน 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")
If…Then…Else Statement If เงื่อนไข Then Statement… Else End If
Flow-Chart condition Statement ; True False
If…Then…Statement If เงื่อนไข Then Statement…
If…Then…Else Statement If เงื่อนไข Then Statement… Else End If If เงื่อนไข Then Statement… Elseif เงื่อนไข Then Else End if
ตัวอย่างการใช้ 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
Unload Statement Unload ObjectName เช่น Private Command1_Click() Unload Form1 'หรือ Unload Me End Sub
End หยุดการรันโปรแกรม End Command End หยุดการรันโปรแกรม เช่น Private Command1_Click() End ' จบการทำงาน End Sub
ตัวอย่างงาน ตรวจสอบรหัสผ่าน Lcase(Text1.text) 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)
ตัวอย่างงาน โปรแกรมตรวจสอบรหัสผ่าน
Lcase(Text1.text) ตัวอย่างงาน 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)
Select Case Statement Select Case ตัวแปร Case เงื่อนไข1 หรือ ค่าคงที่1 statement: Case เงื่อนไข2 หรือ ค่าคงที่2 Case Else End Select
Flow-Chart condition value1 … value2 value n else S ; Statement ;
ตัวอย่างงาน การตรวจสอบเกรด
Private Sub CmdGrade_Click() Dim score As Integer Dim grade As String ตัวอย่างงาน Private Sub CmdGrade_Click() Dim score As Integer Dim grade As String score = Val(txtmark.Text)
ตัวอย่างงาน 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
Check Box (properties) Name Alignment Caption Value 0 (Unchecked) 1 (Checked) 2 (Grayed)
ตัวอย่างงาน แสดงวันที่และเวลา โดยใช้ Check Box
ตัวอย่างงาน Private Sub chkTime_Click() If chkTime.Value = 1 Then lbltime.Caption = Format(Now, "HH:MM:SS") Else lbltime.Caption = "" End If End Sub
Private Sub Chkdate_Click() If chkDate.Value = 1 Then lblDate.Caption = Format(Now,"dd/mmmm/yyyy") Else lblDate.Caption = "" End If End Sub
Option Button (properties) Name Alignment Caption Value True (Select) False (Not Select)
ตัวอย่างงาน เลือกเพศโดยใช้ Option Button
Private Sub Optmale_Click() lblgender.Caption = "Male" End Sub ตัวอย่างงาน Private Sub Optmale_Click() lblgender.Caption = "Male" End Sub Private Sub Optfemale_Click() lblgender.Caption = "Female" End Sub
ตัวอย่างงาน การคำนวณพื้นที่
Private Sub OptRectangle_Click() txtnumber1.Text = "" txtNumber2.Text = "" lblResult.Caption = "" txtNumber1.SetFocus lblName1.Caption = "กว้าง" lblName2.Caption = "ยาว" lblName3.Caption = "พื้นที่สี่เหลี่ยม" End Sub
Private Sub OptTriangle_Click() txtNumber1.Text = "" txtNumber2.Text = "" lblResult.Caption = "" txtNumber1.SetFocus lblName1.Caption = "ฐาน" lblName2.Caption = "สูง" lblName3.Caption = "พื้นที่สามเหลี่ยม" End Sub
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
Frame (properties) Name Caption
ตัวอย่างงาน ค้นหาตำแหน่งจากเพศและการศึกษา
เงื่อนไข การศึกษา ชาย หญิง ปริญญาตรี อาจารย์ เลขา การศึกษา ชาย หญิง ปริญญาตรี อาจารย์ เลขา ปวส. ช่าง ประชาสัมพันธ์ ปวช. คนขับรถ แม่บ้าน
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
If Optedu1.Value = True Then lblCareer.Caption = "เลขา" ElseIf Optedu2.Value = True Then lblCareer.Caption = "ประชาสัมพันธ์" ElseIf Optedu3.Value = True Then lblCareer.Caption = "แม่บ้าน" End If End Sub
MsgBox Prompt [,Buttons] [,Title] Function MsgBox MsgBox Prompt [,Buttons] [,Title] Prompt “ข้อความที่ต้องการแสดง” Buttons ปุ่มทำงานและสัญลักษณ์ Title “ข้อความที่แสดงที่หัว Box”
ตัวอย่าง Message Box Icon Title Buttons
ตัวอย่างของสัญลักษณ์ (Icon) vbCritical vbInformation vbExclamation vbQuestion 117
Function MsgBox ตัวแปร = MsgBox(Prompt [,Buttons] [,Title])
ตัวอย่างการใช้ Msgbox
HScrollBar และ VScrollBar (properties) Name Min Max Scroll Box Min LargeChange LargeChange SmallChange SmallChange Value Max
Event Change เมื่อทำการเลื่อนที่ LargeChange หรือ SmallChange Scroll เมื่อทำการเลื่อนที่ Scroll Box
ตัวอย่างงาน การตรวจสอบ Properties ของ Scrollbar กำหนด Properties Min = 0 Max = 100 LargeChange = 10 SmallChange = 2
Sub HScroll1_Change() lblInfo.Caption = "Value = " & HScroll1.Value End Sub Sub HScroll1_Scroll() lblInfo.Caption = "Value = " & HScroll1.Value End Sub
การเรียกใช้ค่าสี Object_Name.Properties = Color_Name เช่น lblName.ForeColor = VbRed frmData.BackColor = VbGreen
ตัวอย่างงาน ปรับแต่งรูปแบบตัวอักษร
ตัวอย่างงาน ปรับแต่งรูปแบบตัวอักษร
Dim data As String Private Sub Form_Load() 'Width = 4125 Height = 1440 End Sub
Private Sub cmdFont_Click() data = txtName.Text lblName.Caption = data 'Width = 4125 Height = 4080 End Sub
Private Sub chklowercase_Click() If chklowercase.Value = 1 Then chkuppercase.Value = 0 lblName.Caption = LCase(data) Else lblName.Caption = data End If End Sub
Private Sub chkuppercase_Click() If chkuppercase.Value = 1 Then chklowercase.Value = 0 lblName.Caption = UCase(data) Else lblName.Caption = data End If End Sub
Private Sub chkItalic_Click() If chkitalic.Value = 1 Then lblName.Font.Italic = True Else lblName.Font.Italic = False End If End Sub
Private Sub chkBold_Click() If chkbold.Value = 1 Then lblName.Font.Bold = True Else lblName.Font.Bold = False End If End Sub
Private Sub HScsize_Change() lblName.Font.Size = HScsize.Value End Sub Private Sub Command3_Click() 'Width = 4125 Height = 1440
Private Sub optRed_Click() lblName.ForeColor = vbRed End Sub Private Sub optBlue_Click() lblName.ForeColor = vbBlue
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
การทำงานกับฟังก์ชันสี QBColor(n) โดย n มีค่าตั้งแต่ 0 - 15 เช่น Label1.BackColor = QBColor(1)
การทำงานกับฟังก์ชันสี RGB(Red,Green,Blue) โดยค่าสีอยู่ในช่วง 0 - 255 เช่น Label1.BackColor = RGB(0,0,255) Label1.ForeColor = RGB(255,0,255)
ตัวอย่างงาน การผสมสีโดยใช้ Scroll Bars
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
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 และเหตุการณ์ Scroll
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
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
LOOP
For…Next Statement For ตัวแปร = ค่าเริ่มต้น To ค่าสุดท้าย [ Step เพิ่ม/ลดค่าตัวแปร ] statement… Next ค่าตัวแปร
ตัวอย่าง For…Next Statement For I = 0 To 100 Step 2 statement… Next I
Flow-Chart for loop Statement ; . end
แสดงตัวเลข 1 ถึง 20 Private Sub Form_Click() Dim i As Integer ตัวอย่างงาน แสดงตัวเลข 1 ถึง 20 Private Sub Form_Click() Dim i As Integer For i = 1 To 20 Print i ; Next i End Sub
Do…Loop Statement Do while (เงื่อนไข) Statement : Loop Do Until (เงื่อนไข) Statement : Loop
Do…Loop Statement (ต่อ) Do Statement : Loop while (เงื่อนไข) Do Statement : Loop Until (เงื่อนไข)
Flow-Chart (Do While) condition True False Statement ; . end
Flow-Chart (Do…Until) Statement ; . condition False True
แสดงตัวเลข 1 ถึง 20 ตัวอย่างงาน Dim i As Integer i = 1 i = 1 Private Sub Form_Click() Dim i As Integer i = 1 Do While (i <= 20) Print i i = i + 1 Loop End Sub Private Sub Form_Click() Dim i As Integer i = 1 Do Print i i = i + 1 Loop Until (i > 20) End Sub 152
แสดงตัวเลข 10 ลงไปหา 1 ตัวอย่างงาน Dim i As Integer i = 10 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
While (เงื่อนไข) statements : Wend While…Wend Statement While (เงื่อนไข) statements : Wend
แสดงตัวเลข 10 ลงไปหา 1 Private Sub Form_Click() Dim i As Integer ตัวอย่างงาน แสดงตัวเลข 10 ลงไปหา 1 Private Sub Form_Click() Dim i As Integer i = 10 While i > 0 Print i i = i - 1 Wend End Sub
List Box (properties) Name Sorted Columns Style List Standard ListIndex Text ListCount Sorted Style Standard Checkbox 156
ตัวอย่าง List Box
List1.AddItem “รายการ”, index Method List1.AddItem “รายการ”, index List1.RemoveItem index List1.Clear
With …End With Statement With Object_Name .Properties = Value .Method End With
Goto Statement Goto label Statement… label : Sub Command1_Click() GoTo aa Label1.Caption = “VB" aa: Label1.Caption = "Siam” End Sub
On Error Goto… On Error Goto label Statement… label :
On Error Resume Next On Error Resume Next Statement…
คำสั่งการทำงานต่อเนื่อง Resume :ทำงานซ้ำบรรทัดที่เกิด Error ขึ้น Resume Next : ทำงานบรรทัดถัด จากบรรทัดที่เกิด Error ขึ้น
Error Object เป็น Object ที่จัดเก็บข้อผิดพลาดที่ เกิดขึ้นในโปรแกรมขณะ Run Time รูปแบบ Err.Properties
Properties Number Description
On…Goto & On…GoSub On expression GoSub destinationlist On expression GoTo destinationlist
ตัวอย่างงาน a: Print "1" b: Print "2" End Sub Private Sub Command1_Click() Dim n As Integer n = 1 On n GoTo a, b Exit Sub a: Print "1" b: Print "2" End Sub
ตัวอย่างงาน การย้ายรายการใน List Sorted = True
Private Sub Form_Load() lstPrg.AddItem "Widows" lstPrg.AddItem "Word" lstPrg.AddItem "Excel" lstPrg.AddItem "Access" lstPrg.AddItem "Power Point" End Sub หรือ
Private Sub Form_Load() With lstPrg .AddItem "Widows" .AddItem "Word" .AddItem "Excel" .AddItem "Access" .AddItem "Power Point" End With End Sub
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
ตัวอย่างงาน การจัดการกับ List
Private Sub cmdADD_Click() If Trim(txtData.Text) <> "" Then lstInfo.AddItem txtData.Text End If txtData.Text = "" txtData.SetFocus End Sub
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 ' ลบข้อมูลทั้งหมด
MultiSelect=Extended ตัวอย่างงาน การย้ายข้อมูลใน List 2 List MultiSelect=Extended
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
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) Else i = i + 1 End If Loop End Sub
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
Combo Box (properties) Name Style Dropdown Combo Simple Combo Dropdown List โดยทั่วไปใช้งานเหมือน List Box
ตัวอย่างงาน การเปลี่ยนสีฟอร์มโดยใช้ Combo
ตัวอย่างงาน สีเขียวอ่อน สีม่วง สีทอง
Private Sub Form_Load() cmbColor.AddItem "Blue" cmbColor.AddItem "Green" cmbColor.AddItem “Magenta" cmbColor.AddItem "Red" cmbColor.AddItem "Yellow" End Sub
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
ตัวแปร = InputBox(Prompt [,Title] [,Default]) Function InputBox ตัวแปร = InputBox(Prompt [,Title] [,Default]) Prompt : “ข้อความที่ต้องการแสดง” Title : “ข้อความที่แสดงที่หัวของ Box” Default : ค่าปกติที่ตั้งไว้
ตัวอย่างของ InputBox Title Prompt
ตัวอย่างงาน ตอบคำถามจาก Question แล้วแสดงว่าตอบถูกกี่ข้อ
Dim n As Integer Dim Ans As String Private Sub Form_Load() n = 0 End Sub
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
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
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
DriveListBox (properties) Name Drive เช่น EditPlus Event ส่วนใหญ่ใช้ Change
DirListBox (properties) Name Path Event ส่วนใหญ่ใช้ Change
FileListBox (properties) Name Path Filename Pattern เช่น *.exe;*.xls Event ส่วนใหญ่ใช้ Click
ตัวอย่างงาน แสดงชื่อไฟล์ และ Path ของไฟล์
txtPath.Text = File1.Path txtFilename.Text = File1.FileName End Sub Sub File1_Click() txtPath.Text = File1.Path txtFilename.Text = File1.FileName End Sub Sub Drive1_Change() Dir1.Path = Drive1.Drive Sub Dir1_Change() File1.Path = Dir1.Path
Timer (properties) Name Enabled Interval Event ใช้ Timer
การทำงานกับฟังก์ชันทางวันและเวลา Now จะให้ค่าวันที่และเวลา ณ ปัจจุบัน Time จะให้ค่าเวลา ณ ปัจจุบัน
นาฬิกาดิจิตอลจาก Timer ตัวอย่างงาน นาฬิกาดิจิตอลจาก Timer 198
Private Sub Timer1_Timer() lblTime.Caption = Time End Sub
ตัวแปร Static เป็นตัวแปรที่ไม่ถูกทำลายหลังจาก จบโปรแกรมย่อย (แต่ละ Event) รูปแบบ Static Name As Data_Type
ตัวอย่างงาน นับจำนวนการกดปุ่ม
' หรือประกาศตัวแปร n เป็นแบบ Private Private Sub cmdCount_Click() Static n As Integer n = n + 1 lblShowNumber.Caption = "Count = " & n End Sub ' หรือประกาศตัวแปร n เป็นแบบ Private
ตัวอย่างงาน ตรวจสอบ Password Dim n As Integer Dim x As Integer
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")
If n < 3 And (x = 4) Then txtPassword.Text = "" txtPassword.SetFocus ElseIf x = 2 Then End Else MsgBox "ป้อนรหัสผิด 3 ครั้ง", 0, "Answer" End If End Sub
ใช้ Timer กำหนดให้ Label เคลื่อนที่ ตัวอย่างงาน ใช้ Timer กำหนดให้ Label เคลื่อนที่ คุณสมบัติของ Timer Enabled = False Interval = 510
ตัวอย่างงาน Private Sub cmdStart_Click() If cmdStart.Caption = "เริ่ม" Then Timer1.Enabled = True cmdStart.Caption = "หยุด" Else Timer1.Enabled = False cmdStart.Caption = "เริ่ม" End If End Sub
Private Sub Timer1_Timer() lblWalk.Left = lblWalk.Left + 100 End Sub
Private Sub Timer1_Timer() lblWalk.Left = lblWalk.Left + 100 If lblWalk.Left >= Me.Width Then lblWalk.Left = 0 End If End Sub
Private Sub cmdDecrease_Click() Timer1.Interval = Timer1.Interval - 50 End Sub
Private Sub cmdDecrease_Click() Timer1.Interval = Timer1.Interval - 50 If Timer1.Interval <= 10 Then cmdDecrease.Enabled = False End If End Sub
Private Sub cmdIncrease_Click() cmdDecrease.Enabled = True Timer1.Interval = Timer1.Interval + 50 End Sub
กำหนดให้ Label วิ่งรอบฟอร์ม Sub Form_Load() fac = "b" End Sub
Private Sub Timer1_Timer() If fac = "r" Then กำหนดให้ 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 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
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
ElseIf fac = "b" Then lblWalk.Left = lblWalk.Left - 50 lblWalk.Top = lblWalk.Top - 50 If lblWalk.Left < 0 Then fac = "r" End If End Sub
PictureBox (properties) Name AutoSize BorderStyle Picture ใช้ในด้านกราฟิก
ImageBox (properties) Name BorderStyle Picture Stretch ใช้แสดงรูปภาพบน Form
Method ของ Picture และ Image LoadPicture(“Directory\...\ชื่อไฟล์ ภาพ”) เช่น Image1.Picture =LoadPicture("c:\cat.jpg")
ตัวอย่างงาน เมื่อคลิกฟอร์ม ให้ทำการสลับภาพ
Sub Form_Click() Image2.Picture = Picture1.Picture Picture1.Picture = Image1.Picture Image1.Picture = Image2.Picture End Sub
ตัวอย่างงาน แสดงภาพจากไฟล์ที่เลือก
Sub Dir1_Change() File1.Path = Dir1.Path End Sub Sub Drive1_Change() Dir1.Path = Drive1.Drive
Sub File1_Click() txtPath.Text = File1.Path txtFile.Text = File1.FileName Image1.Picture = LoadPicture(File1.Path & _ "\" & File1.FileName) ' ตั้งค่าที่ Pattern ด้วย End Sub
แก้ปัญหารูปที่ 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
Line (properties) Name BorderColor BorderStyle BorderWidth X1 X2 Y1 Y2
คำสั่งในการวาดเส้นตรง line(x1,y1) – (x2,y2),Color เช่น Line (500, 200)-(2000, 1000), QBColor(11)
ตัวอย่างงาน สร้างตารางดังรูป
ตัวอย่างงาน 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
Shape (properties) Name BackStyle BackColor BorderColor BorderStyle BorderWidth FillColor FillStyle Shape
ตัวอย่างงาน Random Shape
Sub cmdShow_Click() Shape1.Shape = (Rnd * 5) Shape1.FillColor = QBColor(Rnd * 15) Shape1.FillStyle = (Rnd * 7) Shape1.BorderColor = QBColor(Rnd * 15) End Sub
Circle(x,y),radius,color คำสั่งในการวาดวงกลม Circle(x,y),radius,color เช่น Circle (1000, 1000), 500
ตัวอย่างงาน วงกลมซ้อน
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
การทำงานกับ Event ของ Mouse MouseDown เมื่อกดปุ่มของเมาส์ MouseUp เมื่อปล่อยปุ่มของเมาส์ MouseMove เมื่อเลื่อนเมาส์
การใช้ปุ่มบน Mouse พร้อมกับ Shift ตัวแปร Button ตัวแปร Shift 1 ปุ่มซ้าย 1 กดปุ่ม Shift ร่วม 2 ปุ่มขวา 2 กดปุ่ม Ctrl ร่วม 4 ปุ่มกลาง 4 กดปุ่ม Alt ร่วม
พารามิเตอร์ของเหตุการณ์ที่เกี่ยวกับเมาส์ 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)
ตัวอย่างงาน การกำหนดให้ Label เคลื่อนที่ตาม Mouse
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
ตัวอย่างงาน วาดเส้นโดยใช้ Mouse
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
Sub Form_MouseUp(Button As Integer, _ Shift As Integer, X As Single, Y As Single) d = False End Sub
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
กดเมาส์ซ้ายค้างวาดเส้น กดเมาส์ขวาค้างวาดวงกลม 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 Sub
กดเมาส์ซ้ายค้างวาดเส้น กดเมาส์ซ้ายค้างพร้อมปุ่ม 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 Sub
การใช้ Common Dialog เมนู Project Components… Microsoft Common Dialog Control 6.0
Dialog Open
Dialog Font
Dialog Color
ตัวอย่างงาน การเรียกใช้ Dialog 251
Common Dialog (properties) Name Action DialogTitle Filter FilterIndex Flags InitiDir CancelError
Common Dialog (properties) (ต่อ) FileName FontName FontSize FontBold FontItalic FontStrikethru FontUnderline Color
Common Dialog (Method) ShowOpen ShowSave ShowColor ShowPrinter ShowFont ShowHelp
ตัวอย่างการใช้ Filter .Filter= "All Files (*.*)|*.*" .Filter= "All Files (*.*)|*.*|Text Files (*.txt)|*.txt" "All Pictures (*.bmp;*.gif;*.jpg)|*.bmp;*.gif;*.jpg" FilterIndex = 2
การเรียกใช้ 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
การเรียกใช้ Dialog Color Private Sub cmdShowColor_Click() dlg1.Flags = cdlCCRGBInit dlg1.ShowColor Label1.ForeColor = dlg1.Color End Sub
การเรียกใช้ 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
Private Sub cmdExit_Click() End End Sub
การเรียกใช้ 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
การเรียกใช้ Dialog Print Private Sub cmdShowPrinter_Click() dlg1.ShowPrinter End Sub
การเรียกใช้ Dialog Help Private Sub cmdShowHelp_Click() dlg1.HelpFile = _ "c:\windows\help\winhlp32.hlp" dlg1.HelpCommand =cdlHelpContents dlg1.ShowHelp End Sub
Multiple Document Interface MDI Form Multiple Document Interface สร้าง MDI Form Project Add MDI Form เลือก MDI Form Open
ตัวอย่างงาน การใช้งาน MDI Form MDI Form MDI Child Form
การกำหนดฟอร์มลูกของ MDI Form ให้กำหนด Properties MDIChild ของฟอร์มลูกเป็น True
การสร้างเมนู (Menu) Tools Menu Editor... Caption : ข้อความที่จะแสดงเป็นเมนู Name : กำหนดชื่อเมนู คลิกปุ่ม : เพื่อกำหนดเมนูย่อย ** สร้างได้ 6 ระดับ
ตัวอย่างงาน สร้างเมนูดังรูป
เมนูไฟล์ Caption Name &File mnufile Openform1 mnuform1 - mnuline Exit mnuexit
เมนู Font Caption Name &Font mnufont 10 mnu10 12 mnu12 15 mnu15 Color mnucolor Red mnured Green mnugreen Blue mnublue
การเขียนคำสั่งใน Menu Sub mnuform1_Click() Form1.Show End Sub Sub mnuform2_Click() Form2.Show Sub mnuexit_Click() End End Sub
สร้าง MDI Form และเมนู ดังรูป
กำหนดให้ คุณสมบัติของ Form1 และ Form2
ดูความแตกต่างระหว่างฟอร์ม 2 และ 3 Sub mnuform1_Click() Form1.Show End Sub Sub mnuform2_Click() Form2.Show Sub mnuform3_Click() Form3.Show End Sub Sub mnuexit_Click() End
Popup Menu Tools Menu Editor... กำหนดรายการเมนูเหมือนการสร้าง เมนู โดยรายการหลักให้ ยกเลิก Visible ออก
สร้าง Popmenu ตัวอย่างงาน Caption Name popup mnupopup Cut mnucut Copy mnucopy Paste mnupaste Visible=False
การเรียกใช้งาน Popup Menu Popupmenu PopupMenu_Name เช่น PopupMenu mnupopup
การกำหนดให้ 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
โปรแกรมย่อย (Procedure) Sub (Sub Program) Function
Sub Program Sub ชื่อโปรแกรมย่อย (parameter) Statement : End Sub
ขอบเขตของ Sub Program Private Sub ชื่อโปรแกรมย่อย (parameter) เป็นโปรแกรมที่ใช้ได้ใน Form นั้นๆ Public Sub ชื่อโปรแกรมย่อย (parameter) เป็นโปรแกรมที่ใช้ได้ในทุกๆ Form Sub ชื่อโปรแกรมย่อย (parameter) เหมือนกับ Public Sub
การเรียกใช้ Sub Program Call ชื่อโปรแกรมย่อย(ค่าที่ส่ง) หรือ ชื่อโปรแกรมย่อย(ค่าที่ส่ง)
ตัวอย่างงาน Sub Program แบบไม่มี Parameter
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
Private Sub HScRed_Change() Call Color lblRed.Caption = "Red = " & HScRed.Value End Sub Private Sub HScGreen_Change() lblGreen.Caption = "Green = " & HScGreen.Value
Private Sub HScBlue_Change() Call Color lblBlue.Caption = “BLUE = " & HScBlue.Value End Sub
ตัวอย่างงาน Sub Program แบบมี Parameter
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)) End Sub
Private Sub cmdTable_Click() Me.Cls Call table(Val(txtRow.Text), Val(txtCol.Text)) txtRow.Text = "" txtCol.Text = "" txtRow.SetFocus End Sub
Function Function ชื่อ function (parameter) As datatype Statement : End Function
ตัวแปร หรือ Object = ชื่อ Function(ส่งค่า Parameter)
ตัวอย่างงาน การหาค่า Factorial
Function Fac(n As Integer) As Long If n = 1 Then Fac = 1 Else Fac = n * Fac(n - 1) End If End Function
Private Sub cmdFac_Click() Dim data As Long data = Fac(Val(txtNumber.Text)) lblResult.Caption = txtNumber.Text & " != " & data txtNumber.Text = "" txtNumber.SetFocus End Sub
การประกาศตัวแปร Array Dim ชื่อตัวแปร(UpperBound) As Type เช่น Dim Cost(5) As Integer Cost(0) = 20 Cost(5) = val(Text1.Text)
การประกาศตัวแปร Array Dim ชื่อตัวแปร(LBound To UBound) As Type เช่น Dim Score(1 To 4) As Integer Dim Name(97 To 100) As String
Object แบบ Array ถ้าต้องการใช้ Object แบบ Array ให้ทำการคัดลอก Object
ตัวอย่างงาน หาค่าเฉลี่ยโดยใช้ Array คัดลอก Text1 อีก 2 ตัว
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
การทำงานกับฐานข้อมูล 299
Data Control (properties) Name Caption Connect DatabaseName RecordSource
Method ของ Record Set AddNew Update CancelUpdate Delete Refresh
Method ของ Record Set MoveFirst MoveLast MoveNext MovePrevious FindFirst FindLast FindNext FindPrevious
การกำหนดให้ Object อ้างข้อมูลในฐานข้อมูลได้ กำหนดคุณสมบัติ DataSource DataField
การเขียนคำสั่งโปรแกรมกับ Data Control การย้ายไปยังเรคคอร์ดต่างๆ ใน ReccordSet MoveFirst ย้ายไปยังเรคคอร์ดแรก MoveLast ย้ายไปยังเรคคอร์ดสุดท้าย MoveNext ย้ายไปยังเรคคอร์ดถัดไป MovePrevious ย้ายไปยังเรคคอร์ดก่อนหน้า Move ย้ายไปยังเรคคอร์ดที่ระบุ
การเขียนคำสั่งโปรแกรมกับ Data Control การค้นหาข้อมูลใน ReccordSet FindFirst ค้นหาเรคคอร์ดแรกที่ตรงกับเงื่อนไข FindLast ค้นหาเรคคอร์ดสุดท้ายที่ตรงกับเงื่อนไข FindNext ค้นหาเรคคอร์ดถัดไปที่ตรงกับเงื่อนไข FindPrevious ค้นหาเรคคอร์ดก่อนหน้าที่ตรงกับเงื่อนไข
แสดงข้อมูลจากฐานข้อมูลที่สร้างขึ้น ตัวอย่างงาน แสดงข้อมูลจากฐานข้อมูลที่สร้างขึ้น Data1 กำหนด DatabaseName และ RecordSource Text กำหนด DataSource และ DataField
Private Sub cmdAdd_Click() ' ปุ่ม Add Data1.Recordset.AddNew txtId.SetFocus cmdOK.Visible = True cmdADD.Visible = False End Sub
Private Sub cmdOK_Click() 'ปุ่ม OK Data1.Recordset.Update cmdADD.Visible = True cmdOK.Visible = False End Sub เมื่อทำการรันให้ ปุ่ม OK ซ้อนปุ่ม Add
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
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
' ให้ใส่ตำแหน่งที่มีอยู่ใน Database Private Sub Form_Load() cmbPosition.AddItem "Manager" cmbPosition.AddItem "Saleman" cmbPosition.AddItem “Reception" End Sub
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
ต่อปุ่ม 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 Sub
Private Sub cmdFindNext_Click() 'ปุ่ม FindNext Data1.Recordset.FindNext t If Data1.Recordset.NoMatch Then MsgBox "End of Data", 32 End If End Sub
ตัวอย่างงาน ป้อน user name และ password เพื่อเข้าไปใช้ Database ถ้าป้อน admin และ password = dusit สามารถใช้ Database ได้ครบ ถ้าป้อน user และ password = sitd สามารถใช้ Database บางส่วน
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.Command1.Visible = False Form35.Command3.Visible = False
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
จบบทเรียน 319