การเขียนโปรแกรมด้วย Vb 6.0
description
Transcript of การเขียนโปรแกรมด้วย Vb 6.0
บทท� 1
เร�มตนการใชงาน
โปรแกรม Visual Basic (VB) เปนโปรแกรมสาหรบพฒนาโปรแกรมประยกตท$กาลงเปนท$ นยมใชอยในปจจบน โปรแกรม Visual Basic เปนโปรแกรมท$ไดเปล$ยนรปแบบการเขยนโปรแกรมใหม โดยมชดคาส$งมาสนบสนนการทางาน มเคร$องมอตาง ๆ ท$เรยกกนวา คอนโทรล(Controls) ไวสาหรบชวยในการออกแบบโปรแกรม โดยเนนการออกแบบหนาจอแบบกราฟฟก หรอท$เรยกวา Graphic User Interface (GUI) ทาใหการจดรปแบบหนาจอเปนไปไดงาย และในการเขยนโปรแกรมนCนจะเขยนแบบ Event - Driven Programming คอ โปรแกรมจะทางานกตอเม$อเหตการณ (Event) เกดขCน ตวอยางของเหตการณไดแก ผใชเล$อนเมาส ผใชกดปมบนคยบอรด ผใชกดปมเมาส เปนตน
เคร$องมอ หรอ คอนโทรล ตาง ๆ ท$ Visual Basic ไดเตรยมไวให ไมวาจะเปน Form TextBox Label ฯลฯ ถอวาเปนวตถ (Object ในท$นCขอใชคาวา ออบเจกต) น$นหมายความวา ไมวาจะเปนเคร$องมอใด ๆ ใน Visual Basic จะเปนออบเจกตทCงสCน สามารถท$จะควบคมการทางาน แกไขคณสมบตของออบเจกตนCนไดโดยตรง ในทกๆ ออบเจกตจะมคณสมบต (properties) และเมธอด (Methods) ประจาตว ซ$ งในแตละออบเจกต อาจจะมคณสมบตและเมธอดท$เหมอน หรอตางกนกได ขCนอยกบชนดของออบเจกต
ในการพฒนาโปรแกรมประยกตดวย Visual Basic การเขยนโคดจะถกแบงออกเปนสวนๆ เรยกวา โพรซเดอร (procedure) แตละโพรซเดอรจะประกอบไปดวย ชดคาส$งท$พมพเขาไปแลว ทาใหคอนโทรลหรอออบเจกตนCน ๆ ตอบสนองการกระทาของผใช ซ$ งเรยกวาการเขยนโปรแกรมเชงวตถ (Object Oriented Programming-OOP) แตตวภาษา Visual Basic ยงไมถอวาเปนการเขยนโปรแกรมแบบ OOP อยางแทจรง เน$องจากขอจากดหลายๆ อยางท$ Visual Basic ไมสามารถทาได
เขาสโปรแกรม Visual Basic
2 เม$อเขาสโปรแกรม Visual Basic จะแสดงกรอบ โตตอบสาหรบเลอกชนดของโปรแกรมประยกต ท$ตองการ
รปท$ 1-1 กรอบโตตอบเม$อเร$มเปด Visual Basic
ใชพฒนาโปรแกรมประยกตท$ว ๆ ไป
ใชพฒนาโปรแกรมประยกตท$สามาระใชงานและเช$อมโยงกบโปรแกรมประยกตอ$น ๆ ท$สนบสนนเทคโนโลย ActiveX
เปนโปรแกรมประยกตชนดเดยวกนกบ ActiveX.EXE แตจะเกบเปนไฟลไลบราล$ไมสามารถประมวลผลไดดวยตวมนเอง จะตองถกเรยกใชงานจากโปรแกรมประยกตอ$น ๆ
ใชสรางคอนโทรล ActiveX ขCนมาใชงานเอง
เปนเคร$องมอท$ชวยใหสามารถสรางโปรแกรมประยกตไดอยางรวดเรว โดยจะสรางองคประกอบเบCองตนหลก ๆ ของโปรแกรมประยกต จากขCนตอนท$ไดเลอกไว
ใชสาหรบสรางโปรแกรมการจดการตาง ๆ เชน การตดตอกบฐานขอมล เปนตน
3
เปนชนดโปรเจกตท$เปนแบบฟอรม เพ$อตดตอกบฐานขอมลโดยผานทางคอนโทรล ADO Data Control
โปรแกรมประยกตชนดท$ใชกบ Web Server
ใชสาหรบเพ$มเตม utility เขาไปใน Visual Basic เพ$อเพ$มความประสทธภาพ
ใชสรางโปรแกรมประยกตท$ประมวลผลบน Internet จะเกบอยในรปไฟล .dll ไมสามารถประมวลผลไดดวยตวมนเอง ตองใหโปรแกรมประยกตอ$น ๆ ท$สนบสนนเทคโนโลย ActiveX เรยกใชงาน เชน Internet Explorer เปนตน
ใชสรางโปรแกรมประยกตชนดท$ประมวลผลบน Internet เชนกน แตจะเกบอยในรปไฟล .exe สามารถประมวลผลไดดวยตวเอง แต server จะตองสนบสนนเทคโนโลย ActiveX ดวยเชนกน เชน Internet Explorer เปนตน
ใชพฒนาโปรแกรมประยกตรปแบบของเอกสาร Dynamic HTML ซ$ งจะเปนมาตรฐานใหมของการแสดงผลบน web
ใชสาหรบโหลด Visual Basic ในรปแบบท$ใชพฒนาโปรแกรมประยกตในระดบ Enterprise ซ$ ง Visual Basic จะเพ$มคอนโทรล ActiveX อกจานวนหน$งขCนมาโดยอตโนมต
สาหรบ แทป Existing ใชสาหรบเปดโปรเจกตท$คณมอยแลว แตยงไมเคยเปดใช แทป Recent จะแสดงรายช$อโปรเจกตท$เคยเรยกใชแลว
4 เม$อเลอกชนดของโปรแกรมประยกตเปนแบบStandard EXE จะเขาสหนาตางของ Visual Basic ดงรปท$ 1- 2
รปท$ 1-2 หนาตางของ Visual Basic เม$อเร$มโปรแกรม
ในแตละสวนของ Visual Basic จะมหนาท$แตกตางกนไป ซ$ งในระหวางการพฒนาโปรแกรมประยกต จะตองใชสวนตาง ๆ เหลานC ในการพฒนาโปรแกรมประยกต ทลบาร (Toolbars) เปนแถบสญลกษณท$ใชสาหรบเขาถงชดคาส$งของ Visual Basic ไดทนท โดยจะนาคาส$งท$ถกใชงานบอย ๆ มาแสดง
รปท$ 1-3 Toolbars
ทลบารสามารถแบงออกไดเปน 4 กลมใหญ ๆ คอ 1. Standard Toolbars เปนทลบารมาตรฐานประกอบดวยคาส$งท$เก$ยวกบการจดการ Project 2. Edit Toolbars เปนทลบารท$ประกอบไปดวยคาส$งท$ใชสาหรบชวยในการเขยนโคดใน code editor 3. Debug Toolbars เปนทลบารท$ประกอบไปดวยคาส$งท$ใชสาหรบตรวจสอบการทางานการประมวลผลโปรแกรม 4. Form Editor Toolbars เปนทลบารท$ประกอบไปดวยคาส$งท$ใชสาหรบชวยในการปรบขนาด, ยาย, เปล$ยนตาแหนงคอนโทรลตาง ๆ ท$อยบนฟอรม
5 Toolboxs คอแถบสญลกษณ Controls ตาง ๆ ท$ใชสาหรบพฒนาโปรแกรมประยกต แบง เปน 2 กลม คอ
รปท$ 1-4 Toolboxs
1. คอนโทรลภายใน (Intrinsic controls) เปนชดคอนโทรลมาตรฐานของ Visual Basic ทก ๆ ครC งท$มการเรยกใช Form เพ$อสรางโปรแกรมประยกต คอลโทรลชดนCจะถกเรยกขCนมาอตโนมต สามารถเลอกใชงานคอลโทรลกลมนCไดทนท
รปท$ 1-5 แสดงรายการคอนโทรล ActiveX เพ$มเตม
2. คอนโทรล ActiveX (ActiveX controls) เปนชดคอนโทรลเพ$มเตมท$ไมโครซอฟทจดเตรยมไว เพ$อเพ$มขดความสามารถในการพฒนาโปรแกรมประยกต การเพ$มคอนโทรลกลมนC เขามาในทลบอกซทาโดยเลอกเมน Project/Components (หรอคลpกขวาตรงแถบ ทลบอกซเลอกคาส$ง
6 Form Designer เปนสวนท$ใชออกแบบการแสดงผลสวนท$ใชตดตอกบผใช ฟอรมเปนออบเจกตแรกท$ถกเตรยมไวใหใชงาน คอลโทรลทกตวท$ตองการใชงานจะตองนาไปบรรจไวในฟอรม นาคอลโทรลมาประกอบกนขCนเปนโปรแกรมประยกต ทกครC งท$เปด Visual Basic ขCนมา หรอ สราง Project ใหมจะมฟอรมวาง 1 ฟอรมถกสรางเตรยมไวเสมอ
รปท$ 1-6 Form Designer
Project Explorer Project Explorer ใชสาหรบบรหารและจดการโปรเจกซ โดยจะแสดงองคประกอบของแตละโปรเจกตแบบโครงรางตนไม (tree-view)ตวโปรเจกตจะหมายถงโปรแกรมประยกตซ$ งจะอยสวนบนสด ถดมา จะแสดงสวนประกอบตาง ๆ ของโปรเจกตนCน ๆ วาประกอบดวยอะไรบาง เชน ฟอรมโมดล รายงาน เปนตน ถาม 2 โปรเจกตขCนไป กจะแสดง แยกออกเปนสวนตางหากอกโปรเจกต ถาตองการใชงานสวนใด ของโปรเจกตไหนกสามารถคลpกเลอกไดทนท
รปท$ 1-7 Project Explorer แบบโปรเจกตเดยว และ แบบหลายโปรเจกต
สวนประกอบของโปรเจกต
7
Project(n) คอโปรแกรมประยกตท$พฒนาอย มนามสกล .vbp
Form(n) เปนฟอรมท$มอยในโปรเจกตนCน ๆ ใน 1 โปรเจกตอาจมมากกวา 1 ฟอรมกได มนามสกล .frm
Modules เปนท$เกบชดคาส$งท$คณเขยนขCนมา โดยจะเกบชดคาส$งท$ใชบอย ๆมนามสกล .bas
Class Modules เปนโมดลชนดพเศษท$มลกษณะเปนออบเจกต ท$สามารถสรางขCนมาได จะมนามสกล .cls
User controls เปนสวนท$เกบคอนโทรล ActiveX ท$คณสรางขCนมา มนามสกล .ctl
Designers เปนสวนของรายงานท$ถกสรางขCนมนามสกลเปน .dsr
Properties Window หนาตางคณสมบตเปนสวนท$ใชกาหนดคณสมบตของออบเจกตท$ถกเลอก (adtive) หรอไดรบความสนใจ (focus) อยขณะนCน ซ$ งสามารถท$จะปรบเปล$ยนคาตาง ๆ ของคอลโทรลเพ$อใหเกดความเหมาะสมและตรงกบความตองการใชงานไดทนท
รปท$ 1-8 Properties Window
ในหนาตางคณสมบต จะประกอบไปดวยแทป 2 แทป คอ 1. แทป Alphabetic เปนแทปท$แสดงรายการคณสมบต เรยงตามตวอกษรในภาษาองกฤษ 2. แทป Categorized เปนแทปท$แสดงรายการคณสมบต โดยการจดกลมของคณสมบตท$มหนาท$คลายกน หรอมความสมพนธกน
หนาตาง Form Layout
8 เปนสวนท$แสดงใหเหนตาแหนงของฟอรม และ สามารถกาหนดตาแหนงของฟอรม ท$ปรากฎบนจอภาพในขณะประมวลผลได โดยการเคล$อนยายฟอรมจาลอง ท$อยในจอภาพจาลองดวยการ drag เมาส ไปยงตาแหนงทคณตองการ โดยจะมผลในขณะประมวลผลเทานCน
รปท$ 1-9 Form Layout
Immediate Window เปนหนาตางท$ใหประโยชน ในกรณทคณตองการทราบผล การประมวลผลโดยทนท เชน การทดสอบโปรแกรมยอย ตาง ๆ เปนตน เม$อคณส$งประมวลผลโปรเจกต หนาตางนC จะปรากฎขCนโดยอตโนมต
รปท$ 1-10 Immediate Window
หนาตาง New Project
9 หนาตาง New Project จะปรากฎขCนมาเม$อเลอกเมน File/New Project กรอบโตตอบนC จะแสดงชนดของโปรแกรมประยกต ท$คณตองการพฒนา ซ$ งจะคลายกบตอนท$เปดโปรแกรม Visual Basic ขCนมาครC งแรก รปท$ 1-11 กรอบโตตอบ New Project
หนาตาง Code Editor เปนสวนท$ใชในการเขยนชดคาส$งสาหรบการประมวลผล และควบคมการทางานของคอลโทรลตาง ๆ
รปท$ 1-12 Code Editor
บทท� 2
10 รจกออบเจกตและฟอรม
จากบทท$ 1 จะเหนวาเคร$องมอ หรอ คอนโทรล ตาง ๆ ท$ Visual Basic ไดเตรยมไวให ไมวาจะเปน Form,
Textbox, Label, ฯลฯ ถอวาเปนวตถ ซ$ งเรยกวา Object ในบทนC เราจะมาทาความเขาใจกบ Object, Properties, Method และ Event รวมทCงทาความรจกกบ Form และประเภทของ Form ออบเจกต พรอพเพอรตO และเมธอดของ คออะไร ออบเจกต (objects) คอส$งใด ๆ กตาม ซ$ งมคณสมบต (Properties) ท$บงบอกความเปนตวเองในขณะนCน และสามาระแสดงพฤตกรรม (Method) ของตวเองออกมาได เชน คอนโทรลตาง ๆ
คณสมบต (properties) คอส$งท$สามารถบงบอกถงความเปนวตถ และอยภายในตววตถซ$ งสามารถเปล$ยนแปลงไดเชน รปราง ลกษณะ ความกวาง ความยาว ฯลฯ สาหรบในแตละคอนโทรล หรอออบเจกต อาจจะมคณสมบตท$เหมอนกน หรอตางกนกได ขCนอยกบหนาท$ของแตละคอนโทรล คอนโทรลหรอออบเจกตหน$ง ๆ จะมคณสมบตมากมาย หลายอยาง ย$งสามารถปรบแตงคณสมบตใหตรงกบความตองการมากเพยงใด โปรแกรมประยกตกจะมประสทธภาพมากขCนเทานCน ซ$ งถอไดวาเปนจดเร$มตนไดด ในการพฒนาโปรแกรมประยกตสามารถปรบแตง คณสมบตไดจากหนาตางProperties หรอปรบแตงดวยการเขยนโคดกไดจะมคณสมบตบางตว ท$ไมโครซอฟทแนะนาให ปรบแตงดวยการเขยนโคด และบางตวปรบแตงดวยการแกไขในหนาตาง Properties และในทางปฏบตไมจาเปนตองปรบแตงทก ๆ คณสมบต เพราะ Visual Basic ไดตCงคาเร$มตน ไวใหแลว ซ$ งกสามารถใชงานไดในระดบหน$ง
เมธอด (methods) หมายถง อาการท$วตถใด ๆ แสดงออกมาหรอถกใหแสดงออกมาโดยพฤตกรรมใดๆ ของวตถนCน จะมผลเช$อมโยงไปถงขอมลคณลกษณะภายในวตถเองดวย อาจกลาวไดวา เปนการควบคมการทางานของคอนโทรล หรอออบเจกตน$นเอง จะใชจดเปนตวค$นระหวางช$อคอนโทรลกบเมธอด ซ$ งจะเหนไดวา คณสมบตและเมธอดมคามใกลเคยงกนมาก เน$องจากจะใชจด . เปนตวแยกระหวาง ช$อคอนโทรลกบคณสมบต หรอช$อคอนโทรลกบเมธอด จะมความแตกตางกน ในแงของการควบคมคอนโทรล หรอออบเจกต ซ$ งจะไดศกษาในหวขอตอ ๆ ไป ฟอรม ฟอรม (Form) คอ หนาตางท$ใชสาหรบแสดงผล โดยจะม ActiveX Controls ตาง ๆ บรรจอยภานใน มหนาท$สาหรบตดตอกบผใชงาน โดย Form กถอวาเปนออบเจกตดวย
ประเภทของฟอรม
11 ฟอรมแบงออกไดเปน 2 ประเภทคอ 1. SDI Form (Single Document Interface Form) เปนฟอรมท$สามาระทางานไดอยางอสระ สามารถท$จะวางเคร$องมอตาง ๆ ได
รปท$ 2-1 SDI Form
2. 2. MDI Form (Multiple Document Interface Form) เปนฟอรมท$ใชบรรจ SDI Form ไว โดย SDI Form ท$จะบรรจอยภายใต MDI Form จะตองกาหนดคณสมบตของฟอรมใหเปน MDI child กอน สาหรบ MDI Form จะสามารถวางเคร$องมอไดเพยงบางอยางเทานCน
รปท$ 2-2 MDI Form ใน Project แตละ Project นCนจะม SDI Form ไดไมจากด แตจะม MDI Form ไดเพยงแค 1 ฟอรมเทานCน และ
สาหรบ Project ใดกตามท$มการเรยกใช MDI Form และไดกาหนดคณสมบตของ SDI Form ใหเปน MDI Child เม$อทา
12 การปด MDI Form แลวนCนจะมผลทาให SDI Form ท$ เปน MDI Child ถกปดตามไปดวย พรอพเพอรตOท�สาคญของฟอรม
Name ใชสาหรบกาหนดช$อ
BackColor ใชสาหรบกาหนดสพCน
BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ
Caption ใชสาหรบกาหนดขอความบน Title Bar ของ Form
ControlBox ใชสาหรบกาหนดใหมปมควบคมของ Form
Enabled ใชสาหรบกาหนดให Form สามารถใชงานไดหรอไม
Font ใชสาหรบกาหนดตวอกษรของขอความอปกรณตาง ๆ ใน Form
ForeColor ใชสาหรบกาหนดสตวอกษรของขอความอปกรณตาง ๆ ใน Form
MaxButton ใชสาหรบกาหนดใหมปมขยายขนาดของ Form
MDI Child ใชสาหรบกาหนดให Form มคณสมบตเปน Form ยอยของ MDI Form
MinButton ใชสาหรบกาหนดใหมปมยอขนาดของ Form
Moveable ใชสาหรบกาหนดให Form สามารถยายตาแหนงไดหรอไม
Picture ใชสาหรบกาหนดรปบน Form
ShowInTaskbar ใชสาหรบกาหนดใหมไอคอนแสดงบน Taskbar
StartUpPosition ใชสาหรบกาหนดตาแหนงการแสดง Form บนจอภาพ
Visible ใชสาหรบกาหนดใหซอนหรอแสดง Form
WindowState ใชสาหรบกาหนดขนาดของ Form เม$อมการทางาน
เมธอดท�สาคญของ Form
Hide เปนการทางานท$ส$งใหซอน Form
Line เปนการทางานท$ส$งใหวาดเสนลงบน Form
Move เปนการทางานท$ส$งให Form ยายตาแหนงไปยงตาแหนงท$กาหนด
Print เปนการทางานท$ส$งใหพมพ Form ออกทางเคร$องพมพ
Show เปนการทางานท$ส$งใหแสดง Form
Unload เปนการทางานท$ส$งใหยกเลกการใชงานของ Form
13 อเวนตท�สาคญของ Form
Activate จะเกดขCนเม$อเลอกใชงาน Form กรณท$มการเปด Form หลาย ๆ Form พรอมกน
Initialize จะเกดขCนเม$อ Form ถกโหลดเขาไปในหนวยความจา
Load จะเกดขCนเม$อ Form แสดงผลหลงจากท$ถกโหลดเขาไปในหนวยความจา
QueryUnload จะเกดขCนเม$อมการปด Form
Terminate จะเกดขCนเม$อ Form ถกลบออกจากหนวยความจา
Unload จะเกดขCนเม$อ Form ถกยกเลกการใชงาน
การกาหนดคาพรอพเพอรตCของ Form สามารถจะกาหนดได 2 วธดวยกนคอ 1. กาหนดจาก Properties Window
รปท$ 2-3 การกาหนดคาใน Properties Window
14
2. กาหนดโดยการเขยนชดคาส$งใน Code Editor
รปท$ 2-4 การกาหนดคาใน Code Editor
15
บทท� 3 ActiveX Control พOนฐาน
ในการเขยนโปรแกรมเพ$อสรางโปรแกรมประยกตดวย Visual Basic นCน ActiveX Control เปนสวนสาคญท$ทา
ใหการพฒนาโปรแกรมเปนไปดวยความรวดเรว ในบทนC เราจะไดเรยนรการใชงาน Control เรยนรเก$ยวกบ พรอพเพอรตC เมธอด และ อเวนต ของ ActiveX Control พCนฐาน ของ Visual Basic การใชงาน ActiveX Control ActiveX Control คอเคร$องมอท$ Visual Basic ไดจดเตรยมไวใหนกพฒนาโปรแกรมเพ$อใชในการพฒนาโปรแกรมประยกต ใหเกดความงายและรวดเรวในการเขยนโปรแกรม โดย ActiveX Control พCนฐานท$ Visual Basic เตรยมไวท$ถกนามาใชอยเสมอในการพฒนาโปรแกรมประยกตมรายละเอยดดงนC
รปท$ 3-1 Toolboxs แสดง ActiveX Control พCนฐานของ Visual Basic ท$ใชบอย
16 Label : แถบอกษร แถบอกษร หรอ แถบขอความ ใชเพ$อแสดงขอความ เม$อแสดงผลจะไมสามารถพมพแกไขขอมลได นอกจากจะเขยนชดคาส$งกาหนดใหมการเปล$ยนแปลง
พรอบเพอรตOท�สาคญของ Label
Name ใชสาหรบกาหนดช$อ
Alignment ใชสาหรบกาหนดตาแหนงของขอมลบน
AutoSize ใชสาหรบกาหนดขนาดของ Label ใหมขนาดพอดกบขอมลอตโนมต
BackColor ใชสาหรบกาหนดสพCน
BackStyle ใชสาหรบกาหนดแบบของพCนหลงใหเปนแบบทบหรอโปรงใส
BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ
Caption ใชสาหรบกาหนดขอความ
DataField ใชสาหรบกาหนด Field ท$ตองการเช$อมตอ
DataFormat ใชสาหรบกาหนดรปแบบของการแสดงผลขอมลใน Label
DataSource ใชสาหรบกาหนดแหลงขอมลหรอตารางท$ตองการเช$อมตอ
Enabled ใชสาหรบกาหนดใหสามารถใชงานได
Font ใชสาหรบกาหนดรปแบบตวอกษร
ForeColor ใชสาหรบกาหนดสตวอกษร
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Visible ใชสาหรบกาหนดใหซอนหรอแสดง Label
อเวนตท�สาคญของ Label
Click เปนเหตการณท$เกดขCนเม$อมการ Click Mouse ท$ Label
17
TextBox : กรอบขอความ กรอบขอความใชสาหรบรบขอมล ขณะท$ทาการประมวลผล
พรอบเพอรตOท�สาคญของ TextBox
Name ใชสาหรบกาหนดช$อ
Alignment ใชสาหรบกาหนดตาแหนงของขอมล
BackColor ใชสาหรบกาหนดสพCน
BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ
Caption ใชสาหรบกาหนดขอความ
DataField ใชสาหรบกาหนด Field ท$ตองการเช$อมตอ
DataFormat ใชสาหรบกาหนดรปแบบของการแสดงผลขอมลใน TextBox
DataSource ใชสาหรบกาหนดแหลงขอมลหรอตารางท$ตองการเช$อมตอ
Enabled ใชสาหรบกาหนดใหสามารถใชงานได
Font ใชสาหรบกาหนดรปแบบตวอกษร
ForeColor ใชสาหรบกาหนดสตวอกษร
Index ใชสาหรบกาหนดลาดบสมาชกของ TextBox กรณท$กาหนดใหเปน Array
Locked ใชสาหรบกาหนด TextBox สามารถพมพขอมลไดหรอไม
MaxLength ใชสาหรบกาหนดความยาวของขอมลตวอกษรท$สามารถพมพได
MultiLine ใชสาหรบกาหนดให TextBox สามารถพมพไดหลายบรรทด
PasswordChar ใชสาหรบกาหนดตวอกษรท$ตองการใหแสดงขณะท$พมพ
ScrollBars ใชสาหรบกาหนดใหม Scroll bars ใน TextBox
TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form
Text ใชสาหรบกาหนดขอความใน TextBox
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Visible ใชสาหรบกาหนดใหซอนหรอแสดง TextBox
เมธอดท�สาคญของ TextBox
SetFocus เปนการกาหนดใหรอรบขอมลท$ TextBox
18 อเวนตท�สาคญของ TextBox
Change เปนเหตการณท$เกดขCนเม$อขอมลของ TextBox มการเปล$ยนแปลง
GotFocus เปนเหตการณท$เกดขCนเม$อ TextBox เร$มถกใชงาน
KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด
LostFocus เปนเหตการณท$เกดขCนเม$อ TextBox ถกเลกใชงาน
Frame : กรอบ ทาหนาท$แยกกลมของ ActiveX Control ออกเปนกลม ๆ โดย Frame จะสามารถบรรจ Control ตาง ๆ เอาไวภายในได
พรอบเพอรตOท�สาคญของ Frame
Name ใชสาหรบกาหนดช$อ
BackColor ใชสาหรบกาหนดสพCน
BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ
Caption ใชสาหรบกาหนดขอความ
Font ใชสาหรบกาหนดรปแบบตวอกษร
ForeColor ใชสาหรบกาหนดสตวอกษร
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Visiable ใชสาหรบกาหนดใหซอนหรอแสดง Frame
CommandButton : ปมกด ใชสาหรบรอรบการกดปม <Enter> หรอ คลกเมาส เพ$อใหเกดการทางาน บางครC งเราจะเรยกสCน ๆ วา Button
พรอบเพอรตOท�สาคญของ CommandButton
Name ใชสาหรบกาหนดช$อ
BackColor ใชสาหรบกาหนดสพCน
Caption ใชสาหรบกาหนดขอความ
19
Font ใชสาหรบกาหนดรปแบบตวอกษร
Index ใชสาหรบกาหนดลาดบสมาชกของ CommandButton กรณท$กาหนดใหเปน Array
Picture ใชสาหรบกาหนดรปภาพบน CommandButton
Style ใชสาหรบกาหนดรปแบบของปมใหสามารถใชงาน Graphic ไดหรอไม
TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Visiable ใชสาหรบกาหนดใหซอนหรอแสดง CommandButton
เมธอดท�สาคญของ CommandButton
SetFocus เปนการกาหนดใหรอรบการ Click หรอ กดปม <Enter> ท$ CommandButton
อเวนตท�สาคญของ CommandButton
Click เปนเหตการณท$เกดขCนเม$อมการกดปม
GotFocus เปนเหตการณท$เกดขCนเม$อ CommandButton เร$มถกใชงาน
LostFocus เปนเหตการณท$เกดขCนเม$อ CommandButton ถกเลกใชงาน
CheckBox : ตวเลอก ใชสาหรบเลอกขอมลท$ตองการ โดยจะเลอกหรอไมกได และสามารถเลอกไดมากกวา 1 ตวเลอก
พรอบเพอรตOท�สาคญของ CheckBox
Name ใชสาหรบกาหนดช$อ
Alignment ใชสาหรบกาหนดตาแหนงของขอมลบน CheckBox
BackColor ใชสาหรบกาหนดสพCน
Caption ใชสาหรบกาหนดขอความ
Font ใชสาหรบกาหนดรปแบบตวอกษร
ForeColor ใชสาหรบกาหนดสตวอกษร
20
Index ใชสาหรบกาหนดลาดบสมาชกของ CheckBox กรณท$กาหนดใหเปน Array
Style ใชสาหรบกาหนดรปแบบของ CheckBox
TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Value ใชสาหรบกาหนดคาการเลอก
Visiable ใชสาหรบกาหนดใหซอนหรอแสดง CheckBox
เมธอดท�สาคญของ CheckBox
SetFocus ใชสาหรบกาหนดใหรอรบการเลอกขอมลท$ CheckBox
อเวนตท�สาคญของ CheckBox
Click เปนเหตการณท$เกดขCนเม$อมการกดปม
GotFocus เปนเหตการณท$เกดขCนเม$อ CheckBox เร$มถกใชงาน
KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด
LostFocus เปนเหตการณท$เกดขCนเม$อ CheckBox ถกเลกใชงาน
OptionButton : ตวเลอกบงคบเลอก ใชบงคบเลอกขอมลโดยสามารถเลอกขอมลไดเพยงคาเดยวในกลมเดยวกน
พรอบเพอรตOท�สาคญของ OptionButton
Name ใชสาหรบกาหนดช$อ
Alignment ใชสาหรบกาหนดตาแหนงของขอมลบน OptionButton
BackColor ใชสาหรบกาหนดสพCน
Caption ใชสาหรบกาหนดขอความ
Font ใชสาหรบกาหนดรปแบบตวอกษร
ForeColor ใชสาหรบกาหนดสตวอกษร
Index ใชสาหรบกาหนดลาดบสมาชกของ OptionButton กรณท$กาหนดใหเปน Array
Style ใชสาหรบกาหนดรปแบบของ OptionButton
21
TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Value ใชสาหรบกาหนดคาการเลอก
Visiable ใชสาหรบกาหนดใหซอนหรอแสดง OptionButton
เมธอดท�สาคญของ OptionButton
SetFocus ใชสาหรบกาหนดใหรอรบการเลอกขอมลท$ OptionButton
อเวนตท�สาคญของ OptionButton
Click เปนเหตการณท$เกดขCนเม$อมการกดปม
GotFocus เปนเหตการณท$เกดขCนเม$อ OptionButton เร$มถกใชงาน
KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด
LostFocus เปนเหตการณท$เกดขCนเม$อ OptionButton ถกเลกใชงาน
ComboBox : กลองรายการขอมล ใชสาหรบการเลอกขอมลจากรายการขอมลท$มอย โดยจะไมแสดงรายการขอมลจนกวาจะ Click Mouse ท$ Drop Down จงจะแสดงรายการขอมลใหเลอก
พรอบเพอรตOท�สาคญของ ComboBox
Name ใชสาหรบกาหนดช$อ
BackColor ใชสาหรบกาหนดสพCน
Font ใชสาหรบกาหนดรปแบบตวอกษร
ForeColor ใชสาหรบกาหนดสตวอกษร
Index ใชสาหรบกาหนดลาดบสมาชกของ ComboBox กรณท$กาหนดใหเปน Array
List ใชสาหรบใสระบหรอกาหนดตวเลอก
ListIndex ใชสาหรบระบลาดบตวเลอก
Locked ใชสาหรบกาหนดให ComboBox สามารถพมพ หรอเลอกขอมล ไดหรอไมได
Style ใชสาหรบกาหนดรปแบบของ ComboBox
22
TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form
Text ใชสาหรบกาหนดขอความใน ComboBox
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Visiable ใชสาหรบกาหนดใหซอนหรอแสดง ComboBox
เมธอดท�สาคญของ ComboBox
AddItem เปนคาส$งสาหรบเพ$มตวเลอกเขาไปใน ComboBox
Clear เปนคาส$งสาหรบลบขอมลทCงหมดใน ComboBox
RemoveItem เปนคาส$งสาหรบลบขอมลโดยตองระบลาดบของขอมลท$ตองการลบ
SetFocus ใชสาหรบกาหนดใหรอรบการเลอกขอมลท$ ComboBox
อเวนตท�สาคญของ ComboBox
Change เปนเหตการณท$เกดขCนเม$อขอมลของ ComboBox มการเปล$ยนแปลง
Click เปนเหตการณท$เกดขCนเม$อมการกดปมเล$อนตาแหนงหรอ Click Mouse
GotFocus เปนเหตการณท$เกดขCนเม$อ ComboBox เร$มถกใชงาน
KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด
LostFocus เปนเหตการณท$เกดขCนเม$อ ComboBox ถกเลกใชงาน
ListBox : กลองรายการขอมล ใชสาหรบเลอกขอมลจากรายการขอมลท$มอย
พรอบเพอรตOท�สาคญของ ListBox
Name ใชสาหรบกาหนดช$อ
BackColor ใชสาหรบกาหนดสพCน
Font ใชสาหรบกาหนดรปแบบตวอกษร
ForeColor ใชสาหรบกาหนดสตวอกษร
Index ใชสาหรบกาหนดลาดบสมาชกของ ListBox กรณท$กาหนดใหเปน Array
23
List ใชสาหรบใสระบหรอกาหนดตวเลอก
ListIndex ใชสาหรบระบลาดบตวเลอก
Locked ใชสาหรบกาหนดให ListBox สามารถพมพ หรอเลอกขอมล ไดหรอไมได
Style ใชสาหรบกาหนดรปแบบของ ListBox
TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form
Text ใชสาหรบกาหนดขอความใน ListBox
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Visiable ใชสาหรบกาหนดใหซอนหรอแสดง ListBox
เมธอดท�สาคญของ ListBox
AddItem เปนคาส$งสาหรบเพ$มตวเลอกเขาไปใน ListBox
Clear เปนคาส$งสาหรบลบขอมลทCงหมดใน ListBox
RemoveItem เปนคาส$งสาหรบลบขอมลโดยตองระบลาดบของขอมลท$ตองการลบ
SetFocus ใชสาหรบกาหนดใหรอรบการเลอกขอมลท$ ListBox
อเวนตท�สาคญของ ListBox
Change เปนเหตการณท$เกดขCนเม$อขอมลของ ListBox มการเปล$ยนแปลง
Click เปนเหตการณท$เกดขCนเม$อมการกดปมเล$อนตาแหนงหรอ Click Mouse
GotFocus เปนเหตการณท$เกดขCนเม$อ ListBox เร$มถกใชงาน
KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด
LostFocus เปนเหตการณท$เกดขCนเม$อ ListBox ถกเลกใชงาน
24
Image : รปภาพ ใชสาหรบแสดงรปภาพ
พรอบเพอรตOท�สาคญของ Image
Name ใชสาหรบกาหนดช$อ
BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ
Index ใชสาหรบกาหนดลาดบสมาชกของ Image กรณท$กาหนดใหเปน Array
Picture ใชสาหรบกาหนดรปภาพบน Image
Stretch ใชสาหรบกาหนดใหปรบขนาดของรปภาพใหพอดกบขนาดของ Image
ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม
Visiable ใชสาหรบกาหนดใหซอนหรอแสดง Image
อเวนตท�สาคญของ Image
Click เปนเหตการณท$เกดขCนเม$อมการ Click Mouse ท$ Image
Timer : เวลา ใชสาหรบกาหนดการทางานของ Control ท$ตองการใหทางานตามชวงเวลา
พรอบเพอรตOท�สาคญของ Timer
Name ใชสาหรบกาหนดช$อ
Interval ใชสาหรบกาหนดชวงเวลา
อเวนตท�สาคญของ Timer
Timer เปนเหตการณเกดขCนเม$อเวลาเปล$ยน
25
บทท� 4 การสราง Application
เปนท$ทราบดวาหลกการของการพฒนาโปรแกรมประยกตดวย Visual Basic กคอ การสรางองคประกอบตาง ๆ
ของโปรแกรมประยกตดวยคอนโทรล โดยมรปแบบท$ส$อดวยภาพ หรอ ท$เรยกกนตดปากวา การออกแบบอนเตอรเฟส ตอมากคอการเขยนชดคาส$งเพ$อรองรบเหตการณตางๆ ท$อาจเกดขCนได ซ$ งจะแบงออกเปน 5 ขCนตอนใหญ ๆ คอ 1. เลอกชนดของโปรแกรมประยกต 2. สรางยสเซอรอนเตอรเฟส (หรอสวนตดตอกบผใช อาจเรยกสCนๆวา อนเตอรเฟส) 3. เขยนชดคาส$งเพ$อรองรบเหตการณตางๆ ท$อาจเกดขCนกบแตละคอนโทรลหรอออบเจกต 4. การทดสอบ ตรวจสอบ และดกจบขอผดพลาด 5. คอมไพลโปรเจกตใหเปนโปรแกรมประยกตท$สมบรณ (เชน *.exe หรอ *.dll เปนตน) การใชงานคอนโทรลในการสรางอนเตอรเฟส จดเร$มตนของการพฒนาโปรแกรมประยกตดวย Visual Basic กคอการนาคอนโทรลชนดตางๆ ท$ Visual Basic จดเตรยมไวนามาสรางอนเตอรเฟส การพฒนาโปรแกรมประยกตท$ด ทาไดโดยการออกแบบอนเตอรเฟสท$ใชงานงาย เปนมตรกบผใช จะสงผลใหระยะเวลาในการพฒนาโปรแกรมประยกตลดลงไปไดมากทเดยว เพราะส$งท$เหลออยคอการเขยนโคดเพ$อทาใหโปร เจกตทางานใหสมบรณมากท$สด การนาคอนโทรลมาใชงาน สาหรบวธการนาคอนโทรลมาใชงาน วาดอนเตอรเฟสบนฟอรม ม 2 วธ คอ 1. คลpกท$ตวคอนโทรลนCน ๆ บน ToolBox แลวนาไปวาดบนฟอรม 2. ดบเบลคลpกท$ตวคอนโทรลนCนเลย แลว Visual Basic จะนาคอนโทรลไปวางบนฟอรมใหโดยอตโนมต ซ$ ง Visual Basic จะตCงคา default ไวใหทCงตาแหนง และขนาดของคอนโทรล แลวคอยแกในภายหลง สาหรบคอนโทรล CommandButton อาจใชขนาดท$ Visual Basic ตCงมาไปใชงานเลยกได เพราะมขนาดเหมาะสมอยแลว พOนฐานการเขยนโคด ม 2 วธท$สามารถเรยก editor ขCนมาใชงานคอ 1. ดบเบลคลpกท$ตวคอนโทรลนCน ๆ 2. คลpกท$คอนโทรลนCน ใหอยในสภาพใชงาน (active) หรอไดรบความสนใจ(focus) แลวกด F7
26 การใชงาน Editor Editor ถอไดวาเปนสวนท$มความสาคญมากอกสวนหน$งในบรรดาเคร$องมอท$ Visual Basic ม เพราะใชสาหรบเขยนโคดใหโปรแกรมประยกตทางานได เคร$องมอตวนCตองใชงานมากท$สด ในขบวนการพฒนาโปรกแกรมประยกตดวย Visual Basic การศกษาสภาพแวดลอมของ Editor จงมความสาคญเปนอยางย$ง สามารถแยกสวนตางๆ ของ Editor ออกไดเปน 3 สวนดงนC 1. สวน Object List Box มหนาท$แสดงช$อคอนโทรลหรอออบเจกตท$ถกนามาใชงาน 2. สวน Event List Box มหนาท$แสดงเหตการณ (Event) ของคอนโทรลท$ถกเลอกใน Object List Box 3. สวนการเขยนโคด เม$อเลอกคอนโทรลใน Object List Box และเลอกเหตการณใน Event List Box แลว Visual Basic จะสรางโพรซเดอร (Procedure) ใหอตโนมต
รปท$ 4-1 Editor
ความสามารถพเศษของ Editor ในการใชงาน Editor เม$อพมพช$อคอนโทรลแลวพมพ Editor จะแสดง ToolTip ท$เปนรายการพรอพเพอรตCหรอรายการเมธอดท$คอนโทรลนCนสนบสนนอยขCนมาทนท ชวยใหไมตองจาวาคอนโทรลนC มพรอพเพอรตCหรอมเมธอดอะไรบาง รวมถงปองกนไมใหพมพผดอกดวย และถามการเรยกใชงานฟงกชนมาตรฐานตาง ๆ ToolTip กจะแสดงรปแบบไวยากรณของฟงกชนนCนๆ ใหทนทเชนกน ความสามารถของ Editor อกอยางกคอสามารถตรวจสอบไวยากรณ (Syntax) ตามโครงสรางของภาษา Visual Basic ไดอกดวย โดยขณะท$พมพโคดเขาไปเม$อกด Enter จบบรรทด Visual Basic จะทางานตรวจสอบไวยากรณทนท ถามขอผดพลาด ในการใชงานไวยากรณเกดขCน Visual Basic จะแสดงขอความชวยเหลอท$เก$ยวของความผดพลาดนCนๆ ขCนมาทนท
27 การใช MessageBox MessageBox เปนเคร$องมอท$ใชโตตอบกบผใช โดยจะแสดงขอมลเพยงอยางเดยว แลวใหผใช Click ปมเลอกในกรณท$ตองการใหผใชเลอกตอบ
รปแบบการใชงาน
MsgBox Prompt[,Buttons][,Title]
Prompt คอขอความท$ตองการแสดงใน MessageBox ในกรณท$ตองการ แสดงขอมลหลายบรรทดทาไดโดยเช$อมกบ chr(13)
Buttons คอสวนท$ใชกาหนดการแสดงปมและกาหนดรปไอคอนบน MessageBox
Title คอสวนของขอความท$ตองการแสดงบนแถบดานบนของ MessageBox
การกาหนดปมและไอคอนของปมสามารถทาไดโดยการระบคาคงท$ของแตละอยางเช$อมดวยเคร$องหมาย + ซ$ งรายละเอยดของคาคงท$สามารถใชงานไดมดงนC
กลมท$ใชสาหรบกาหนดปมท$จะแสดงใน MessageBox
คาคงท� รายละเอยด
VbOKOnly แสดงปม OK ปมเดยว
VbOKCancel แสดงปม OK และ Cancel
VbYesNo แสดงปม Yes และ No
VbYesNoCancel แสดงปม Yes No และ Cancel
VbAbortRetrylgnore แสดงปม Abort Retry และ lgnore
VbRetryCancel แสดงปม Retry และ Cancel
28 กลมท$ใชสาหรบกาหนดไอคอนท$จะแสดงใน MessageBox
คาคงท� รายละเอยด
VbCritical แสดงไอคอน Critical Message
VbExclamation แสดงไอคอน Earning Message
Vblnformation แสดงไอคอน Information Message
VbQuestion แสดงไอคอน Question Message
กลมท$ใชสาหรบกาหนดปมเร$มตน
คาคงท� รายละเอยด
VbDefaultButton1 กาหนดใหปมแรกเปนปมเร$มตน
VbDefaultButton2 กาหนดใหปมท$ 2 เปนปมเร$มตน
VbDefaultButton3 กาหนดใหปมท$ 3 เปนปมเร$มตน
VbDefaultButton4 กาหนดใหปมท$ 4 เปนปมเร$มตน
การใช InputBox InputBox เปนเคร$องมอท$ใชรบขอมลโดยใหผใชปอนขอมลลงไป แลวเกบขอมลนCนไวในตวแปร
รปแบบการใชงาน
InputBox(Prompt[,Title][,Default])
Prompt คอขอความท$ตองการแสดงใน InputBox ในกรณท$ตองการ แสดงขอมล หลายบรรทดทาไดโดยเช$อมกบ chr(13)
Title คอสวนของขอความท$ตองการแสดงบนแถบดานบนของ InputBox
Default คอคาท$กาหนดใหกรณท$ไมมการปอนขอมลใน InputBox
29 การสรางเมน ในการพฒนาโปรแกรมประยกต 1 โปรแกรมจะประกอบไปดวยฟอรมจานวนมาก ในการเรยกใชงานฟอรมแตละฟอรมจาเปนจะตองมเมนมาชวยจดหมวดหมของฟอรม เพ$อใหงายตอการใชงาน การสรางเมนใน Visual Basic สามารถทาไดโดยเรยกใชคาส$งสาหรบสรางเมนโดย Chick ขวาบนฟอรมท$ตองการสรางเมน เลอกคาส$ง Menu Editor
รปท$ 4-2 การเรยกใชงาน Menu Editor
รปท$ 4-3 Menu Editor
30
รายละเอยดตาง ๆ ของ Menu Editor
Caption ขอความท$จะปรากฏบนเมน
Name ช$อเมน หามซC ากน
Index ใชสาหรบระบลาดบกรณท$กาหนดใหเปนเมนแบบอารเรย
ShortCut ใชสาหรบกาหนดคยลดในการเรยกใชเมน
Checked กาหนดใหเปนเมนท$มเคร$องหมายถกหนาเมน
Enabled กาหนดใหสามารถใชงานเมนไดถามเคร$องหมายถก หรอ กาหนดใหคาเปน True
Visible กาหนดใหแสดงเมนถามเคร$องหมายถก หรอ กาหนดใหมคาเปน True
31
บทท� 5 ขอมลและตวแปร
ใบบทนCจะเปนการอธบายเก$ยวกบชนดของขอมล การใชงานตวแปร และคาคงท$ ท$ใชกบ Visual Basic ไมวาโปรแกรมประยกตใด ภาษาใด ส$งท$ตองรเปนอนดบแรกๆ กคอ ตวแปร คาคงท$และ ชนดของขอมล ของภาษานCน ๆ ซ$ งจะทาใหเหนขอจากดตางๆ ในภาษานCน ๆ ทาใหสามารถใชงานไดอยางถกตอง และมประสทธภาพ เพราะตวแปรและคาคงท$ถอไดวาเปนตวแทนของขอมล ท$จะตองนาไปใชงาน ประมวลผล และแสดงส$งท$ไดจากการประมวลผล ชนดของขอมล Visual Basic มชนดของขอมลหลายชนด ไมวาจะเปนตวเลขจานวนเตม ตวเลขท$มทศนยม ขอความ ตวเลขทางการเงน คาทางตรรกะ เปนตน ขอมลแตละชนด จะใชพCนท$ในการเกบไมเทากน รวมถงความเรวในการประมวลผลกแตกตางกนดวย สามารถแบงชนดของขอมลท$ใชกน Visual Basic ไดดงตารางตอไปนC
ชนดขอมล รายละเอยด หนวยความจา
Boolean เกบคาทางตรรกะท$ไดม 2 คา คอ true (จรง), false (เทจ) 2 Bytes
Byte เกบคาเลขจานวนเตมตCงแต 0-255 1 Byte
Currency ใชเกบตวเลขจานวนจรง มคาระหวาง - 922,337,203,685,477.5808 ถง 922,337,203,685,477.5807
8 Bytes
Date ใชสาหรบเกบวนท$และเวลา 8 Bytes
Double
ใชเกบตวเลขจานวนจรง แยกเปน 2 กรณ คอ คาบวกอยระหวาง 4.94065645841247E-324 ถง 1.79769313486232E308 คาลบอยระหวาง - 1.79769313486232E308 ถง -4.94065645841247E-324
8 Bytes
Integer เกบคาเลขจานวนเตมท$มคาระหวาง -32768 ถง 32767 2 Bytes
Long ใชเกบเลขจานวนเตมท$มคาระหวาง -2,147,483,648 ถง 2,147,483,647
4 Bytes
Object ใชสาหรบแทนวตถท$ Visual Basic สนบสนน 4 Bytes
Single ใชเกบตวเลขจานวนจรง แยกเปน 2 กรณ คอ คาบวกอยระหวาง 1.401298E-45 ถง 3.402823E38 และคาลบอยระหวาง -3.402823E38 ถง -1.401298E45
4 Bytes
String ใชเกบตวอกษร ขอความ และตวเลข 1 ตว/1 ไบต
Variant ขอมลพเศษสามารถเกบขอมลไดทกชนด 16 Bytes
32 การประกาศคาตวแปร (Variable Declaration) กอนท$จะใชงานตวแปร หรอคาคงท$ทกครC ง ควรประกาศตวแปร (variable declaration) กอน เพ$อให Visual Basic รวา ตวแปรท$ตองการใชงาน ใชแทนขอมลชนดใดถงแมวา Visual Basic อนญาตใหใชงานตวแปรได โดยไมตองประกาศตวแปร แตตวแปรท$ไดจะใชทรพยากรระบบ มากเกนความจาเปน รวมถงประมวลผลไดชา เพราะจะเปนตวแปรท$สามารถแทนขอมลไดทกชนด ซ$ ง Visual Basic เรยกวา ตวแปรชนด Variant ซ$ งควรหลกเล$ยงการใชงานตวแปรชนดนC
รปแบบคาส�งการประกาศตวแปรของ Visual Basic
Dim varname As datatypes
Dim คอ คาส$ง (statements) สาหรบประกาศตวแปร
varname คอ ช$อของตวแปรท$ตองการประกาศ
As คอ สวนท$บอกให Visual Basic ทราบวาตองการกาหนดชนดของขอมล
datatypes คอ ชนดของขอมลท$ Visual Basic สนบสนน
ตวอยาง
รปท$ 5-1 การประกาศตวแปร
กรณท$ตองการกาหนดใหมการประกาศตวแปรทกครC งกอนท$จะมการเรยกใชตวแปร เพ$อหลกเล$ยงการใชตวแปรชนด Variant ใหพมพคาส$ง Option Explicit ไวขางบนสดกอนพมพคาส$งอ$น ๆ
33 กฎการตOงช�อตวแปรและคาคงท� 1. ขCนตนดวยพยญชนะเทานCน 2. ความยาวของช$อท$ตCงสงสดไมเกน 255 ตวอกษร 3. ช$อท$ตCง ตองไมซC ากนคาสงวน (Keywords) คาส$ง (Statements) ฟงกชน (Functions) หรออ$น ๆ ท$ Visual Basic กาหนดไว 4. หามตCงช$อซC ากนในโพรซเดอรเดยวกน หรอในขอบเขตเดยวกน 5. หามใชเคร$องหมายทางคณตศาสตร, ตวดาเนนการ (Operators) หรอ เคร$องหมายพเศษ เชน @, # มาตCงช$อ 6. หามมชองวางในช$อตวแปรถาตองการเวนวางใหใชเคร$องหมาย _ (Underscore) เทานCน การตOงช�อวตถ
วตถ คานาหนา (Prefix) ตวอยาง
CheckBox Chk ChkStatus
ComboBox Cbo CboType
CommandButton Cmd CmdSave
Image Img ImgProduct
Label Lbl Lbladdress
ListBox Lst LstDay
OptionButton Opt OptSex
TextBox Txt TxtName
Timer Tmr TmrTime
34 ขอบเขตของตวแปร (Scope of Variable) ใน Visual Basic สามารถแบงขอบเขตตวแปรได 2 ประเภท คอ 1. ตวแปรแบบ Local 2. ตวแปรแบบ Public ตวแปรแบบ Local หมายถง ตวแปรท$ประกาศขCนมา ใหสามารถเรยกใชงานได ในเฉพาะโพรซเดอรท$ประกาศเทานCน มกใชประกาศตวแปรท$ตองการใชช$วคราว หรอตองการใชในโพรซเดอรนCนๆ ตวอยาง
Private Sub AddNum_Click( )
Dim x As Integer
Dim y As Integer
x = 5
y = 6
x = x + y
End Sub
Private Sub DelNum_Click( )
Dim x As Integer
Dim y As Integer
x = 3
y = 2
จากตวอยาง ตวแปร x และ y ถกประกาศใน Sub AddNum และ Sub DelNum ซ$ ง x และ y ใน AddNum จะเปนคนละตวกบ x และ y ใน DelNum
35 ตวแปรแบบ Public หมายถง ตวแปรท$ประกาศขCนในสวนบนหลง Option Explicit ทาใหสามารถเรยกใชงานไดทกโพรซเดอรในฟอรมนCน กรณท$ประกาศตวแปรแบบ Public ใน Module จะทาใหตวแปรนCนสามารถเรยกใชงานไดจากทกฟอรม ตวอยาง
Option Explicit
Dim x as Integer
Dim y as Integer
Private Sub AddNum_Click( )
x = 5
y = 6
x = x + y
End Sub
Private Sub DelNum_Click( )
x = x - y
End Sub
จากตวอยาง ตวแปร x และ y ถกประกาศในถดจาก Option Explicit กอน Sub AddNum ทาใหตวแปร x และ y ใน Sub AddNum และ Sub DelNum เปนตวแปรตวเดยวกน ตวแปรอารเรย (Array) ตวแปรอารเรย เปนกลมของตวแปรท$ประกาศขCนมา โดยใชช$อของเดยวใชคา Index ในการอางถง ประโยชนของตวแปรชนดนC คอ กรณท$ตองการมการใชตวแปรจานวนมาก การประกาศตวแปรสามารถประกาศเพยงช$อเดยว ลดความซC าซอนของตวแปร และทาใหงายตอการเรยกใช มรปแบบการประกาศดงนC
Dim Varname(amount) as Datatype
Dim คอ คาส$ง (statements) สาหรบประกาศตวแปร
varname คอ ช$อของตวแปรอารเรยท$ตองการประกาศ
amount คอ จานวนสมาชกของอารเรย
As คอ สวนท$บอกให Visual Basic ทราบวาตองการกาหนดชนดของขอมล
datatypes คอ ชนดของขอมลท$ Visual Basic สนบสนน
36 ตวอยาง
รปท$ 5-2 การประกาศอารเรย
ตวแปรอารเรยแบงออกได 2 ชนด คอ 1. ตวแปรอารเรยแบบสแตตก (Static Arrays) 2. ตวแปรอารเรยแบบไดนามก (Dynamic Arrays) ตวแปรอารเรยแบบสแตตก (Static Arrays) เปนอารเรยท$มการระบจานวนสมาชกเม$อมการประกาศตวแปร จะใชอารเรยชนดนC ในกรณท$ทราบจานวนสมาชกของอารเรยท$แนนอน
ตวอยาง
Dim vprint (10) as String
จากตวอยางเปนการประกาศตวแปรอารเรยช$อ vprint ใหมจานวนสมาชกทCงสCน 10 และ เปนขอมลชนดตวอกษร ในการอางถงตวแปรใหทาการระบ Index หรอลาดบท$ของสมาชก โดยสมาชกตวแรกใหระบ Index เปน 0 เชน เม$อตองการอางถงสมาชกตวแรกสดใหระบเปน vprint(0)สมาชกตวท$ 7 ใหระบเปน vprint(6) สมาชกตวสดทายระบเปน vprint(9) ตวแปรอารเรยแบบไดนามก (Dynamic Arrays) เปนอารเรยท$ไมมการระบจานวนสมาชกเม$อมการประกาศตวแปร เน$องจากไมทราบจานวนสมาชกท$แนนอน
ตวอยาง
Dim ccode( ) as String
จากตวอยางเปนการประกาศตวแปรอารเรยช$อ ccode โดยไมระบจานวนสมาชก และเปนขอมลชนดตวอกษร
37 เม$อตองการใชงานตวแปรจะตองระบจานวนสมาชก ใหกบตวแปรอารเรย โดยใชคาส$งดงนC
Redim ccode(5)
จากตวอยางเปนการกาหนดใหตวแปรอารเรย ccode ท$ไดประกาศไวแลวใหมจานวนสมาชก 5
ขอดของตวแปรอารเรยแบบไดนามกคอ จานวนสมาชกของอารเรยจะถกกาหนดใหมความเหมาะสมตอการใชงานเน$อง เน$องจากสามารถระบจานวนสมาชกไดภายหลง แตตวแปรอารเรยแบบสแตตกจะตองระบจานวนสมาชกทนทท$มการประกาศตวแปร การสรางชนดของตวแปรขOนใชเอง (User-defined data type) กรณท$ตองการเกบขอมลเปนชดแตประกอบดวยขอมลหลาย ๆ ชนด สามารถทาไดโดยการสรางชนดขอมลพเศษขCนมา โดยนาชนดของขอมลพCนฐานดงกลาวทCงหมดมาสรางตามท$ตองการโดยมรปแบบดงนC
[Public I Private] Type Varname elementname [([subscripts])] As type [elementname [([subscripts])] As type] …… End Type
Public(Optional) คอ สวนท$กาหนดใหคาคงท$สามารถใชไดทCงโปรเจกต ทกโมดล
Private(Optional) คอ สวนท$กาหนดใหคาคงท$สามารถใชไดเฉพาะโมดลท$ประกาศเทานCน
Varname คอ ช$อของชนดขอมลท$กาหนดขCนมาใหม
elementname คอ ช$อของตวแปร ซ$ งเปนสวนหน$งของชนดขอมลท$สรางขCนมา
Subscripts คอ จานวนสมาชกกรณท$ตองการใหเปนตวแปรอารเรย
Type คอ ชนดของขอมลพCนฐานแตละตว
ตวอยาง Type Customer CustName As String Address As String Age As Integer End Type
จากตวอยางเปนการสรางชนดขอมลขCนมาใหม โดยใหช$อวา Customer โดยมตวแปรยอย Name Address และ Age เม$อตองการใชงานชนดขอมลดงกลาวตองทาการประกาศตวแปรดงนC Dim newcust As Customer
38 เม$อตองการเกบคาหรอนาคาไปใชใหใชคาส$งดงนC newcust.CustName = "ปรษา ปC นด" newcust.Address = "123 ถ.ศรสมงค ต.เมองใต อ.เมอง จ.ศรสะเกษ newcust.Age = 45 การประกาศคาคงท� (Constant) คาคงท$ (Constant) หมายถงขอมลท$มคาคงท$ไมมการเปล$ยนแปลง ในการประกาศคาคงท$ตองใชคาส$ง Const เพ$อสรางคาคงท$ มรปแบบดงนC
[Public I Private] Const constname [As type] = expression
Public(Optional) คอ สวนท$กาหนดใหคาคงท$สามารถใชไดทCงโปรเจกต ทกโมดล
Private(Optional) คอ สวนท$กาหนดใหคาคงท$สามารถใชไดเฉพาะโมดลท$ประกาศเทานCน
Const คอ คาส$งสรางคาคงท$
Constname คอ ช$อคาคงท$
Type (Optional) คอ การกาหนดชนดของคาคงท$
Expression คอ คาท$ตองการกาหนด
ตวอยาง
Option Explicit
Const PI As Double = 3.141578
Private Sub cmdCalc_Click( )
Dim radius As Double
Dim area As Double
Radius = CDb(InputBox("กรณาใสคารศม" , "ใสคา")
Area = PI * (radius) ^2
MsgBox "พOนท�วงกลม = " & Area & " ตารางหนวย "
End Sub
39 ตวดาเนนการใน Visual Basic (Operators) ตวดาเนนการ คอ เคร$องหมายสาหรบกระทากบขอมลอยางนอยท$สด 2 ชดมากระทาอยางใดอยางหน$ง เชน บวก ลบ เช$อมตอ เปรยบเทยบ ทดสอบคา เปนตน ซ$ งสามารถแบงได 4 ประเภท ดงนC ตวดาเนนการดานคณตศาสตร (Arithmetic Operators) คอเคร$องหมายทางคณตศาสตรใชสาหรบการคานวณตวเลข ดงตาราง
ช�อตวดาเนนการ ลกษณะตวดาเนนการ ตวอยาง
การบวก + A + B
การลบ - A - B
9 การคณ * A * B
การหาร / A / B
การหารเอาแตจานวนเตม \ A \ B
การหารเอาแตเศษ Mod A Mod B
การยกกาลง ^ A ^ B
การเปล$ยนเคร$องหมาย - -A
ตวดาเนนการทางดานตรรกะ (Logical Operator)
คอเคร$องหมายสาหรบตรวจสอบเง$อนไขระหวางกลมนพจน โดยจะใหผลลพธเปนจรง (True) และเปนเทจ (False) หรอสรางเง$อนไขขCนมาเพ$อทดสอบกรณตาง ๆ ดงตาราง
ตวดาเนนการ ตวอยาง ผลลพธ
And A And B เปนจรงเม$อทCง 2 นพจนมคาเปนจรง
Or A Or B เปนเทจเม$อทCง 2 นพจนมคาเปนเทจ
Xor A Xor B เปนจรงเม$อทCง 2 นพจนมคาตางกน
Eqv A Eqv B เปนจรงเม$องทCง 2 นพจนมคาเหมอนกน
Imp A Imp B เปนเทจเม$อนพจนหนาเปนจรง นพจนหลงเปนเทจ
Not Not A ใหคาตรงขามกบคาของนพจน
40 ตวดาเนนการทางดานการเปรยบเทยบ (Comparison Operators) เคร$องหมายท$ใชสาหรบเปรยบเทยบนพจน 2 นพจน เพ$อทดสอบ หรอสรางเง$อนไข โดยจะใหผลลพธเปนจรง (True) และเปนเทจ (False) มกจะใชคกบตวดาเนนการทางดานตรรกะ เพ$อตรวจสอบเง$อนไขตาง ๆ เสมอ ดงตาราง
ตวดาเนนการ ช�อตวดาเนนการ
< นอยกวา
> มากกวา
<= นอยกวาหรอเทากบ
>= มากกวาหรอเทากบ
= เทากบ
<> ไมเทากบ
ตวดาเนนการทางดานการเช�อมขอความ (Concentration Operators) เคร$องหมายท$ใชสาหรบเช$อมขอความตCงแต 2 ขอความเขาดวยกน แตยงมกรณยกเวนท$จะเปนการบวกกนของนพจน 2 นพจน ซ$ งขCนอยกบชนดของนพจนท$จะมากระทากน ดงตาราง
ตวดาเนนการ กรณ ตวอยาง ผลลพธ
+ String + String "Visual"+"Basic 6.0" "Visual Basic 6.0"
& String & String "Visual"&"Basic 6.0" "Visual Basic 6.0"
+ String(numeric)+numeric "20"+6 26
& String(numeric)&numeric "20"+6 206
ขอมลจาก : http://www.thanom.net/vb1.asp