วิชวลเบสิก (Visual Basic) ระดับพื้นฐาน
เว็บเพจสำรอง (Backup Webpages) : thaiall.com | thaiabc.com
ปรับปรุง : 2557-01-16 (แก้ไขการเชื่อมฐานข้อมูล)
ภาษาเบสิก (BASIC = Beginner's All-purpose Symbolic Instruction Code)
ถ้าท่านเริ่มต้นอะไรไม่ได้เลยกับเว็บเพจหน้านี้ .. ขอแนะนำให้ไปซื้อหนังสือ เพราะผมก็เริ่มต้นด้วยการอ่านหนังสือ
ความสำเร็จของผม คือ เห็นท่านนำความรู้ที่ได้ไปพัฒนาบ้านเมืองให้เจริญ เพราะบ้านเมืองที่ท่านพัฒนาก็คือบ้านเมืองของผม
Project ของ Visual Basic เริ่มต้นได้หลายแบบ แต่บทความเกือบทั้งหมดในเว็บเพจนี้ใช้ Standard EXE ทั้งหมด
ภาษาโปรแกรม (Program Language) # คือ วิธีการมาตรฐานในการสื่อสารสำหรับแสดงคำสั่งไปยังคอมพิวเตอร์ ภาษาโปรแกรมกำหนดไวยากรณ์และการตีความหมายจากโปรแกรมคอมพิวเตอร์ที่เขียนขึ้น ภาษาโปรแกรมทำให้โปรแกรมเมอร์สามารถระบุอย่างชัดเจนถึงข้อมูลที่คอมพิวเตอร์จะทำงาน และวิธีการที่คอมพิวเตอร์จะประมวลผลข้อมูลเหล่านั้น
ภาษาเบสิค (Basic Language) คือ ภาษาคอมพิวเตอร์ที่พัฒนาโดยจอห์น เคมเมนี (John Kemeny) และ ธอมัส เคิรตส์ (Thomas Kurtz) แห่งวิทยาลัยดาร์ทเมิร์ท (Dartmouth College) ในปีค.ศ. 1963
วิชวลเบสิก (Visual Basic) คือ ภาษาคอมพิวเตอร์สำหรับสร้างโปรแกรมประยุกต์ (Application) ที่ใช้งานได้อย่างหลากหลายบนระบบปฏิบัติการวินโดว์ และสามารถเรียกใช้วัตถุที่ตัวแปลภาษาเตรียมไว้ให้บริการ
วิชวลเบสิกดอทเน็ต (VB.NET) # คือ เครื่องมือสำหรับพัฒนาโปรแกรมเป็นภาษาหนึ่งในกลุ่มไมโครซอฟท์วิชวลสตูดิโอดอทเน็ต (Microsoft Visual Studio .NET) เป็นการโปรแกรมที่มีสภาพแวดล้อมแบบกราฟิกสำหรับระบบปฏิบัติการวินโดว์ (Windows Operating System) โดยมีรากฐานภาษามาจากภาษาเบสิก และทำงานบนดอทเน็ตเฟรมเวิร์ค (Dotnet Framework) ถูกออกแบบให้มีความสามารถในการพัฒนาโปรแกรมเชิงวัตถุอย่างแท้จริง และรองรับการออกแบบด้วยยูเอ็มแอล (UML = Unified Modeling Language)
ประวัติภาษาเบสิก :
- BASIC by Dartmount College 1960
- BASIC for Altair by Bill Gates 1975
- GWBasic by Microsoft 1980
- QuickBasic by Microsoft 1980
- Visual Basic by Microsoft 1991
    แนะนำเว็บ (Web Guides)
  1. msdn.microsoft.com
  2. Help file: VB Reference 1 MB
  3. Visual Basic .NET
  4. vb-helper.com สั้นเยอะ
  5. ostrosoft.com มี project เพียบ
  6. vbexplorer สอน ado+dao
  7. devdos.com
  8. freevbcode.com
  9. vbaccelerator.com
  10. developer.com
  11. vbcode.com
  12. vbtechniques.com
  13. vbexplorer.com
  14. programmersheaven.com
  15. planet-source-code.com
  16. ข้อสอบแบบตัวเลือก VB
  17. ณรงค์ ยอดชาญ (ADO,DAO)
  18. อ.ถนอม คณิตปัญญาเจริญ
  19. แนวคิดการสอนเขียนโปรแกรม
เหตุที่ทำบทเรียนชุดนี้
1. ให้คำปรึกษาคนแปลกหน้าที่โทรถามได้
2. อาจได้รับมอบหมายให้ทำ หรือสอนในอนาคต
3. ต้องการตรวจสอบระบบเครือข่ายของตนเอง
4. สร้าง application ให้ลูก ๆ ได้ใช้

หนังสือในตู้หนังสือที่บ้าน
(แต่ละเล่มมีเรื่องใหม่ให้เรียนรู้เสมอ)
1. VB จิระ จริงจิตร
2. VB3 ราบินเดอร์ ศรีกิจจาภรณ์
3. VB5 กิตติ ภักดีวัฒนะกุล และจำลอง ครูอุตสาหะ
4. VB5 สัจจะ จรัสรุ่งรวีวร และกฤษณะ สถิตย์
5. VB6 ธาริน สิทธิธรรมชารี, สุรสิทธิ์ คิวประสพศักดิ์

VB6 แบบไม่ต้องติดตั้ง
+ depositfiles.com
+ mediafire.com


Visual Basic.NET ASP.NET
    ตัวอย่างโปรแกรมเพื่อเป็นกรณีศึกษา
  1. 2554-09-08 :: วันนี้ใช้บริการอินเทอร์เน็ต ภายใต้นโยบายของ fortigate firewall ที่กำหนดว่าถ้า idle time หรือไม่ใช้งานเกินกว่า 5 นาที ให้ตัดการเชื่อมต่อกับอินเทอร์เน็ต ถ้าจะใช้ก็ให้ login ใหม่ ซึ่งสภาวะการใช้งานบางลักษณะจะไม่สะดวกกับนโยบายนี้ ประกอบกับลูกศิษย์คนหนึ่งโทรมาถามว่า เครื่องบริการที่ทำไว้ log off อัตโนมัติ ทำให้ app บางตัวหยุดทำงานไปด้วย จึงเขียนโปรแกรมด้วย vb6 สั่ง request google.com ด้วย keyword ที่แตกต่างกันทุก 60 วินาที ก็จะแก้ปัญหาการตัดการเชื่อมต่ออัตโนมัติทั้ง 2 กรณีได้ [connect_google.zip 5KB]
  2. 2553-02-10 :: มาโครสำหรับ word และ excel ทดสอบ office2003 : ok
    นำ code ด้านล่างนี้ไปใส่ใน macro ของ word ช่วยเปลี่ยนเลขอาราบิกเป็นเลขไทย
    นำ code ด้านล่างนี้ไปใส่ใน macro ของ excel ช่วยเปลี่ยนเลขอาราบิกเป็นเลขไทย
  3. 2550-02-05 :: ออกเสียงนับเงิน
    จากโปรแกรมแปลงตัวเลขเป็นภาษาไทย ผมนำของ อ.ถนอม ในบทที่ 18 มาปรับปรุง โดยเติมเสียงพูด ถ้านับเหมือน Bank ก็จะง่ายขึ้น number_wav.zip
  4. 2549-06-26 :: สร้างม้า Trojan อีก 4 ความสามารถ
    หนังสือของ ธีรศักดิ์ ฐานกุล ทำให้ผมทดสอบสร้างโปรแกรม 2 ตัวคือ remote300.exe เป็นตัวแม่ และ remote300t.exe เป็นตัวลูก ไว้ใช้ในห้องปฏิบัติการ เพื่อสั่งปิดเครื่อง (Shutdown) หรือ lock keyboard กับ mouse .. ต้องลองเอาไปใช้จริง แล้วค่อยคิดเรื่อง version ต่อไป (Download : remote300 + remote300t) แต่ Grisoft AVG Antivirus มองว่าโปรแกรมนี้เป็น Trojan horse Generic9.LAE
  5. 2549-06-20 :: สร้าง Msgbox Trojan ในเครื่องตนเอง
    ได้หนังสือ Trojan ด้วย VB ของ ธีรศักดิ์ ฐานกุล จึงทดสอบสั่ง msgbox ผ่าน 127.0.0.1 โดยมีโปรแกรมตัวแม่เป็นตัวสั่ง และ trojan เป็นตัวปฏิบัติ จากการทดสอบต้องเรียก trojan ก่อน ไม่งั้นพบ error โปรแกรมไม่ยากนัก ลองกด netstat ดู port และ Ctrl-Alt-Del ดูการเรียก Trojan thaiallcontrol1trojan.zip
  6. 2548-07-05 :: จัดการกับฐานข้อมูลระบบสั่งซื้อ (เสร็จ 10% ของเป้าหมาย)
    : Nwind.mdb เก็บ image อยู่แล้ว และใช้ OLE นำมาแสดง หรือแก้ไขภาพ .. ตั้งใจเขียนโดยไม่ใช้ Menu Bar ของ VB จึงเป็นตัวอย่างการสร้าง Application ที่มีรูปแบบของตนเอง โปรแกรมนี้ผมตั้งใจจะพัฒนาไปเรื่อย ๆ เพื่อเป็นตัวอย่างโครงงานให้นักศึกษาได้ศึกษา vbnwind.zip
  7. 2548-06-30 :: โปรแกรมทดสอบรหัสผ่าน
    : เป็นโปรแกรมรับรหัสผ่าน และแสดงภาพ แค่นั้น อยากให้ศึกษาการ Crack ในกรณีลืมรหัสผ่านด้วย Softice กับ Winhex testpassword.exe 44 KB + testpassword.zip 20 KB
  8. 2548-04-30 :: โปรแกรมที่รวมความสามารถต่าง ๆ ไว้ใช้ศึกษารุ่น 1.4
    : โปรแกรม Browser ข้อสอบ เว็บ link และเกม ที่จับเวลาขณะเล่น มีตัวอักษรให้จับคู่ทั้งหมด 24 ตัวอักษร บอลวิ่ง และวาดภาพสำหรับเด็ก ทั้งหมดรวมอยู่ใน .exe และ source code เก็บใน .zip thaiall.exe 400 KB + thaiall.zip 40 KB + charmath1.zip 3 KB
  9. 2548-04-16 :: นึกถึง visio กับ ออกแบบบ้าน

    โปรแกรมนี้เขียนขึ้นง่าย ๆ เป็นจุดเริ่มต้น ของการเตรียมวัตถุให้นักออกแบบ ได้นำไปออกแบบบ้านในอนาคต แต่ถ้าจะใช้เขียน flow chart คงต้องสร้าง object ขึ้นเอง เพราะคุณสมบัติที่มีมากับ vb ไม่มีภาพอย่าง diamon ให้เรียกใช้ได้ทันที โปรแกรมอย่าง visio ก็คงใช้แนวคิดง่าย ๆ อย่างที่ผมใช้นี่หละครับ ในใจก็คิดอยู่ว่าน่าจะเป็น project จบของนักศึกษาได้ในการสร้าง visio แบบนี้ขึ้นมา homecad1.zip
  10. 2548-04-10 :: โปรแกรมดู HTML ของเว็บที่เราทราบ URL + get
    เขียนอย่างง่าย ๆ เพื่อใช้ winsock เรียกบริการผ่าน port 80 แล้วได้มาเป็น code HTML แต่จำกัดเพียง 8192 Byte สามารถประยุกต์โปรแกรมนี้ได้หลายลักษณะ ตัวอย่างนี้ใช้ในเครื่องผมเป็น webserver และเขียน code รับค่าผ่าน get อย่างง่าย ๆ พอทดสอบส่งให้กับ google.co.th ทางเว็บนั้นก็ตอบกลับมา แสดงว่า ok getpost.zip
  11. 2548-04-09 :: สั่งให้หลอด LED ส่องแสงผ่าน printer port
    : อ่านจากหนังสือของ ดอนสัน ปงผาบ และเว็บไซต์อีกหลายเว็บ รวมถึงได้แฟ้ม dllport.dll จาก thaiio.com ทำให้มีโอกาสหาหลอด LED มาบัดกรีเอง แล้วทดสอบด้วย Assembly และ VB ก็ work ทั้ง 2 ภาษา แต่ทั้งหมดเขียนไว้ที่ http://www.thaiall.com/printer สิ่งที่พบคือเครื่องคอมบางเครื่องอาจมีเลข printer port ไม่เหมือนกัน ถ้าไม่ระวังอาจเขียนโปรแกรมจากเครื่องหนึ่ง พอไป run ในเครื่องอื่น อาจไม่ได้ผล
  12. 2548-03-30 :: โปรแกรม vb เรียกฐาน mysql
    ใช้ remote connect ถึง mysql server ผมไม่ได้เขียนอะไรเลย แต่ copy มาแนะนำเท่านั้น เป็นโปรแกรมที่ยอดมาก แต่เคยทดสอบกับ mysql3 แล้ว ok แต่กับ mysql4 ยังมีข้อสงสัย (โปรแกรมนี้ไม่ได้เตรียมตัวติดตั้ง เครื่องที่ไม่มี VB จึงใช้ไม่ได้) web หรือ DBMySQLVBAPI.zip #
  13. 2548-03-30 :: โปรแกรม ping ตรวจเครื่องในเครือข่าย
    ผมต้องการตรวจว่าเครื่องหนึ่ง เชื่อมต่อกับ server ได้ตลอดเวลาหรือไม่ เพราะเคยมีปัญหาว่า ip ที่ได้จาก DHCP หลุด จึงใช้โปรแกรมนี้ ping หรือประยุกต์โปรแกรมนี้ ping เครื่องในห้อง lab ว่ามีเครื่องเปิดหรือไม่ ก็ได้ tping3.exe หรือ tping3.zip
  14. 2547-12-01 :: ความซับซ้อนของ 6 เหลี่ยม (กำลังปรับปรุง)
    รูป 6 เหลี่ยมที่มีจุดอยู่นอกกรอบ หรือไม่ จากบทความของ ดร.ครรชิต มาลัยวงศ์ complex.zip (ยังไม่เฉลย)
  15. 2547-11-26 :: karaoke อย่างง่ายด้วย VB เป็น guide ให้นักศึกษา
    : Karaoke ที่เปิดใช้งานอยู่มีฐานข้อมูลคล้าย ๆ กัน อย่างเพลงที่ 8002 ที่ผมนำมาเป็นตัวอย่างก็คือ Hotel california ของ the eagles ผมนำแต่ .mid และ .lyr มาใช้ แต่แฟ้ม .cur ผมไม่ได้แกะ เพราะต้องการให้นักศึกษาศึกษา ลองทำโครงงานดู โปรแกรมนี้ใช้วิธีจับเวลา ที่ใช้ได้กับเพลงนี้เท่านั้น karaok1.zip 160 KB
  16. 2547-03-31 :: ใส่ icon ใน system taskbar
    : โปรแกรมนี้จะเพิ่ม icon ใน system taskbar เป็นรูปหลอดไฟ สามารถใช้ right click ที่หลอดไฟจะแสดงมีเมนู เลือกเปลี่ยนภาพ icon ของ system taskbar ได้ โปรแกรมนี้ได้มาจาก http://www.obodigital.com/vb/articles/shellnotifyicon.html shellnotifyicon.zip 3 KB
  17. 2546-11-26 :: เกมยิงภาพด้วยเพชรสีฟ้า
    : โปรแกรมเกมยิงภาพอย่างง่าย โดยควบคุมเรื่อง top, width, height และเวลาให้สอดคล้องกันเป็นหลัก ขนาดของ .zip จะใหญ่ถึง 300 Kb เพราะมีภาพขนาด 75*75 pixels ถึง 25 ภาพ shootimg.zip
  18. 2546-11-17 :: สไลด์ นำเสนอข้อมูลพร้อมภาพ (บทที่ 19)
    : โปรแกรมนำเสนอข้อมูลผ่านปุ่ม Previous และ Next โดยตัวอย่างนี้จะนำเสนอข้อมูลมนุษย์ผู้หญิง 3 คน ที่ชาวโลกคิดว่าหน้าตาไปวัดไปวาได้ แต่นี่คือตัวอย่างเท่านั้น มิได้นำไปใช้งานจริง slide.exe
  19. 2546-11-12 :: เปลี่ยนจำนวนเงินเป็นตัวอักษร (บทที่ 18)
    : โปรแกรมนี้ทำหน้าที่เปลี่ยนตัวเลขจำนวนเงิน เป็นตัวอักษร สามารถนำไปประยุกต์ใช้ในงานด้านธุรกิจได้ง่าย ได้ Source Code มาจากเว็บของ อ.ถนอม คณิตปัญญาเจริญ http://www.thanom.net numtxt.exe
  20. 2546-11-11 :: จับผิดภาพเหมือน (บทที่ 17)
    : โปรแกรมนี้เป็นตัวอย่างการควบคุมวัตถุ และฟอร์ม โดยใช้ภาพมาเป็นสื่อในการควบคุม ว่า click ถูกตำแหน่งที่กำหนดหรือไม่ หากเปลี่ยนภาพ ก็จะได้เกมที่น่าเล่นมาก หากนำไปใช้ และไม่ต้องการปรับมาก จะต้อง copy form2 เพราะ form1 เป็นการเขียนแบบเริ่มต้น form3 เป็นการเขียนแบบจบโปรแกรม form2 คือตรงกลาง ที่นำไปปรับได้ไม่ยาก dif.zip + dif.exe
  21. 2546-11-10 :: บอลวิ่งในจอภาพ (บทที่ 16)
    : สามารถกล่าวได้ว่าโปรแกรมนี้คือ screen saver โปรแกรมหนึ่ง เพราะเป็นโปรแกรมแสดงลูกบอล วิ่งในจอภาพอย่างง่าย ๆ แบบ full screen จาก source code หวังว่าผู้ศึกษาจะนำไปปรับเป็นโปรแกรมใช้งานได้ในหลายรูปแบบ ballrun.exe
  22. 2546-11-07 :: เกมคลิ๊กภาพ (บทที่ 15)
    : เกมจับผิดภาพเหมือน เกมค้นหาศัพท์ หรืออื่น ๆ สามารถนำหลักการของโปรแกรมนี้ไปตรวจสอบได้ โดยการควบคุมคุณสมบัติต่าง ๆ ของ object ให้มีความสอดคล้อง ความยากของโปรแกรมนี้คือการหาภาพ และสร้างโจทย์ มิใช่การเขียนโปรแกรม เพราะเทคนิคต่าง ๆ มีเพียงกำหนดคุณสมบัติ ตามเหตุการณ์ที่ควรเป็นเท่านั้น photoword.zip + photoword.exe
  23. 2546-10-25 :: thaibrowser อย่างง่าย
    : ใช้ component Microsoft Internet Controls สร้าง web browser อย่างง่ายที่แสดง html code ในหน้าจอเดียวกัน พร้อม drop down list สำหรับเว็บที่ชื่นชอบ thaibrowser.zip + thaibrowser.exe
  24. 2546-10-23 :: ข้อสอบแบบ offline
    : พัฒนาโปรแกรมข้อสอบแบบ offline ด้วย VB โดยข้อสอบเก็บใน array ภายในโปรแกรม ทำให้ upgrade ข้อสอบในโปรแกรมไม่ได้ แต่ก็มีระบบรวมคะแนนต่าง ๆ ที่ใช้ได้ทีเดียว เทคนิคต่าง ๆ ธรรมดามาก โดยข้อมูลเก็บใน listbox แล้ว split แต่ละบรรทัดออกมาเป็นข้อสอบ โปรแกรมนี้เขียนด้วย VB6 ประกอบด้วย .vbp และ .frm vbquiz.zip + vbquiz.exe
  25. 2546-07-11 :: ตรวจสอบ ip ในเครือข่ายด้วย ping
    : ผมมีโอกาสพัฒนาโปรแกรมขึ้นมาโปรแกรมหนึ่ง เพื่อใช้ตรวจสอบระบบเครือข่าย ว่ามีคอมพิวเตอร์เครื่องใดเปิดอยู่บ้าง เขียนด้วย VB แล้วใช้ icmp.dll ช่วย อยู่ในบทที่ 202 หากสนใจสามารถ download ไปทดสอบได้ครับ ทั้ง source ใน chap202.zip และ tping.exe ต่อมาได้ upgrade โปรแกรมนี้เป็น tping2.exe และ tping2.zip
ผู้สนับสนุน ยินดีรับ ผู้สนับสนุน เว็บไซต์ด้านการศึกษา
กลุ่มเว็บไซต์นี้ เริ่มพัฒนา พ.ศ.2542
โดยบุคลากรทางการศึกษาด้านคอมพิวเตอร์
โทร. 081-9927223 (ผมเป็นคนลำปางหนา)
ปล. ขอไม่รับ work at home / อาหารเสริม
สารบัญ
ตอนที่ 1 : General Component for Beginner
บทที่ 1: สร้าง form และปุ่ม close
บทที่ 2: ปุ่มควบคุมบวก และลบด้วยข้อมูลใน textbox
บทที่ 3: เปลี่ยนคุณสมบัติของ shape เป็นรูปทรงต่าง ๆ
บทที่ 4: การใช้ menu editor สร้าง menu bar ส่วนตัว
บทที่ 5: สร้างหลาย form และสั่งเปิดปิดตามต้องการ
บทที่ 6: ควบคุม visible ของแต่ละ object
บทที่ 7: สุ่มเลข เพื่อทดสอบการควบคุม list box
บทที่ 8: สุ่มเลข ส่งเข้า list box และส่งเข้า combo box อีกครั้ง
บทที่ 9: สุ่มเลขจำนวนมาก ส่งเข้า list box, combo box และตรวจคู่คี่
บทที่ 10: เพิ่ม ลบ แก้ไขจาก list box โดยคุม visible และ enabled
บทที่ 11: ค้นหาส่วนหนึ่งส่วนใดของระเบียนก็ได้
บทที่ 12: ค้นหาข้อมูลแบบเลือกมากกว่า และตาม primary key
บทที่ 13: เปิดปิดฟอร์ม และภาพในจุดต่าง ๆ
บทที่ 14: นาฬิกา Digital
บทที่ 15: เกมคลิ๊กภาพ
บทที่ 16: บอลวิ่งในจอภาพ
บทที่ 17: จับผิดภาพเหมือน
บทที่ 18: เปลี่ยนจำนวนเงินเป็นตัวอักษร
บทที่ 19: สไลด์ นำเสนอข้อมูลพร้อมภาพ
บทที่ 20: เครื่องคิดเลขอย่างง่ายมีเฉพาะปุ่ม +
บทที่ 21: ออกเสียง .wav นับหน่วยเงินภาษาไทย
ตอนที่ 2 : Data Control & ADODC (Active Data Object Data Control)
บทที่ 101: ใช้ Data control ร่วมกับ Text box
บทที่ 102: ใช้ Data control ร่วมกับ DBGrid
บทที่ 103: เพิ่ม record ใหม่ด้วย Data control และควบคุม visible + enabled
บทที่ 104: ลบ record ด้วยการค้นหาจนพบ แล้วจึง update หรือ cancel
บทที่ 105: แก้ไขข้อมูล สามารถเลือกทั้ง DBGrid, Data bar และ Seek
บทที่ 106: DBGrid ที่เพิ่ม ลบ แก้ไข และการค้นหาจาก Index
บทที่ 107: ใช้ Data form wizard กับ ADO data control สร้าง form อย่างง่าย
บทที่ 111: สร้าง DSN ชื่อ nwind
บทที่ 112: เรียกใช้ Adodc และมีปุ่มเลื่อนไประเบียนข้างหน้า
ตอนที่ 3 : DAO (Data Access Object)
บทที่ 201: เรียกระเบียนแรก และกดปุ่มเพื่อแสดงระเบียนถัดไปด้วย DAO + JET
บทที่ 202: เพิ่มระเบียนใหม่ต่อท้ายแบบ DAO recordset และแสดงใน msgbox
บทที่ 203: เพิ่มระเบียนใหม่ต่อท้ายแบบ Data control + DAO recordset
ตอนที่ 4 : ใช้ API ของระบบ Windows
บทที่ 301: ใช้ GetFreeSpaceA ของ kernel32
บทที่ 302: ใช้ icmp.dll ช่วย ping เพื่อตรวจสอบ host ในเครือข่าย class C
บทที่ 303: ฟอร์มโปร่งแสง และเชื่อมต่อกับ server ผ่าน Hidden IE
:: เปิดดูทุก ๆ ตอน ::

    ข้อควรทราบ
  1. ในเครื่องคอมพิวเตอร์เครื่องเดียวกัน สามารถเปิด project ของ VB มาพัฒนาได้พร้อมกันหลาย project และทดสอบแต่ละ project ได้แยกกันโดยอิสระ
  2. การศึกษาตัวอย่างในบทเรียนนี้อย่างเข้าใจ ควรมีความรู้มาก่อนเกี่ยวกับ จุดแข็งและจุดอ่อนของภาษา ตัวแปร การเลือกตามเงื่อนไข การทำซ้ำ จะช่วยให้ศึกษาได้ดีขึ้น
  3. ในแฟ้ม .zip ของแต่ละบท จะมีแฟ้ม .vbp และ .frm ซึ่งผู้ศึกษาสามารถนำไปทดสอบประมวลผล ในเครื่องที่ติดตั้งโปรแกรม Visual basic ได้
  4. เมื่อต้องการพิมพ์ภาษาไทย (Thai language) ใน code ต้องเข้าไปใน Menu bar, Tools, Options, Edit format, Normal text แล้วเปลี่ยน font name จาก Courier new เป็น Fixedsys
  5. โปรแกรมที่ผมเขียนเป็นตัวอย่างส่วนใหญ่จะกำหนดชื่อ text หรือ command ตามที่ระบบกำหนดให้ (Default name) จะไม่พยายามเปลี่ยน และจะไม่ใช้ control array โดยไม่จำเป็น เวลาท่านศึกษา ก็จินตนาการตามผมได้เลยว่าจะไม่พยายามทำอะไรที่ยุ่งยากซับซ้อน เพราะผมก็ไม่อยากงงเวลาย้อนกลับมาดูใหม่

เพื่อนของผม ชื่อ อ.ถนอม คณิตปัญญาเจริญ (mailto:kanit98@hotmail.com)
มีอะไรเรื่อง VB ที่หาไม่เจอในหนังสือ ผมก็ถามเขานี่หละ
เป็น Freelance ด้าน Website, PHP, ASP, VB และ VB.NET
Tel.08-9757-1846, 0-5431-6809 หาข้อมูลเพิ่มเติมได้ที่ thanom.net

ตัวอย่างโปรแกรม .. อย่างสั้น
ต.ย. 1. คำนวณเวลาเพื่อหาผลต่างเป็นวินาที
x = "12:12:16"
y = "13:12:19"
sx = Hour(x) * 3600 + Minute(x) * 60 + Second(x)
sy = Hour(y) * 3600 + Minute(y) * 60 + Second(y)
MsgBox sy - sx
MsgBox DateDiff("s", x, y)
'Output is 3603

ต.ย. 2. สร้างแฟ้มข้อความ 
Dim fso, MyFile
Set fso=CreateObject("Scripting.FileSystemObject")
Set MyFile=fso.CreateTextFile("c:\test.txt",true)
MyFile.WriteLine("This is a test.")
MyFile.Close

ต.ย. 3. แสดงภาษาปัจจุบันของ taskbar
Private Declare Function GetLocaleInfo& Lib "KERNEL32" Alias "GetLocaleInfoA" ( _
ByVal Locale&, ByVal LCType&, ByVal lpLCData$, ByVal cchData&)
Private Declare Function GetKeyboardLayout& Lib "USER32" (ByVal dwLayout&)
Private Sub Form_Load()
Dim r&, strng$, buffer As String * 256
r = GetKeyboardLayout(0)
r = Val("&H" & Right(Hex(r), 4))
r = GetLocaleInfo(r, &H2, buffer, 256 - 1)
MsgBox buffer
Unload Me
End Sub

ต.ย. 4. เรียกใช้โปรแกรมภายนอกผ่าน Shell
dim taskid
taskid = shell("c:\windows\cmd.exe",vbmaximize)

ถาม - ตอบ
คำถาม Hot key สำหรับแก้ไข Components หรือ Control คืออะไร
: Ctrl+T เพื่อเพิ่ม-ลด Control ใน Tool Bar

คำถาม ติดตั้ง VB ไม่ได้ น่าจะเกิดจากการไม่ได้ลง XP จาก CD
: เข้า regedit ?
hkey_local_machine->software->microsoft->windows nt->current version->perflib
เปลี่ยนค่าของ Disable Performance Counters จาก 1 เป็น 0

คำถาม ติดตั้ง ACMBOOT ไม่ได้
วิธีที่ 1. เปลี่ยนแฟ้ม key.dat เป็นแฟ้ม key.reg แล้ว double click
วิธีที่ 2. เพิ่ม dword เข้าไปใน register ด้วย regedit
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\6.0
\Setup\Visual Studio 98\SetupWizard "aspo"=dword:00000000

คำถาม font ในเมนูมีขนาดเล็ก ต้องการขยาย
1. Start, Run, Sysedit
2. เปิด WIN.INI
3. เพิ่ม Tahoma,222=Tahoma,0 ต่อจาก [FontSubstitules]
4. File,Save แล้ว Restart เครื่องคอมพิวเตอร์

คำถาม เปลี่ยน Font ใน Code Editor เป็นภาษาไทย
1. Menu Bar, Tools, Options, Editor Format
2. กำหนด Font ภาษาไทยที่ต้องการ
การเชื่อมต่อฐานข้อมูล
(Database Connection)
จุดประสงค์การเรียนรู้ เรื่อง การเชื่อมต่อฐานข้อมูล
1. ทราบว่ามีการเชื่อมต่อกี่แบบ
2. ทราบว่าแต่ละแบบใช้งานอย่างไร
3. ทดสอบเขียนโปรแกรมใช้งานแต่ละแบบกับ .MDB
4. เลือกใช้แบบใดแบบหนึ่งอย่างเข้าใจ
1. Data Control
คือ การเชื่อมต่อฐานข้อมูลผ่านคอนโทล Data Control โดยกำหนดชื่อแฟ้มฐานข้อมูลได้โดยตรง กำหนดชื่อตารางเข้าไปในคุณสมบัติ RecordSource

ขั้นตอนการทดสอบ
1. นำ Data Control จาก Tool Box ไปวางใน Form
2. ต้องมี Data1.refresh มิเช่นนั้นมีปัญหาเรียกใช้ข้อมูล
3. นำ code ด้านล่างไปใส่ใน Code View
4. ใช้ Initialize() แต่ Load() ไม่ได้
5. อ่านข้อมูลมาแสดงใน msgbox เมื่อ Start Form
6. ให้ฝึกเปลี่ยน ตาราง และเขตข้อมูล ท่านจะได้ชำนาญ

2. ADODC (ADO Data Control)
คือ การเชื่อมต่อฐานข้อมูลผ่านคอนโทล ADODC โดยกำหนดชื่อแฟ้มฐานข้อมูลได้โดยตรง รองรับการใช้ SQL Command

ขั้นตอนการทดสอบ
1. เพิ่ม Components (Ctrl-T) .. (MSADODC.OCX)
ชื่อ Microsoft ADO Data Control 6.0 (OLEDB)
2. นำ ADODC จาก Tool Box ไปวางใน Form
3. ต้องมี ADODC1.refresh มิเช่นนั้นมีปัญหาเรียกใช้ข้อมูล
4. นำ code ด้านล่างไปใส่ใน Code View
5. อ่านข้อมูลมาแสดงใน msgbox เมื่อ Start Form
6. ให้ฝึกเปลี่ยน ตาราง และเขตข้อมูล ท่านจะได้ชำนาญ

3. DAO (Data Access Object)

คือ การเชื่อมต่อฐานข้อมูลผ่านวัตถุ DAO โดยกำหนดชื่อแฟ้มฐานข้อมูลได้โดยตรง รองรับการใช้ SQL Command
ขั้นตอนการทดสอบ
1. เพิ่ม Menu Bar, Project, Reference
ชื่อ Microsoft DAO 3.51 Object
เพื่อใช้ dbengine, workspace, database, recordset
2. นำ code ด้านล่างไปใส่ใน Code View
3. อ่านข้อมูลมาแสดงใน msgbox เมื่อ Start Form
4. ให้ฝึกเปลี่ยน ตาราง และเขตข้อมูล ท่านจะได้ชำนาญ

4. ADODB (ActiveX Data Objects Database)
คือ การเชื่อมต่อฐานข้อมูลผ่านคลาส ADODB และ Microsoft.Jet.OLEDB โดยกำหนดชื่อแฟ้มฐานข้อมูลได้โดยตรง รองรับการใช้ SQL Command

ขั้นตอนการทดสอบ
1. เพิ่ม Menu Bar, Project, Reference
ชื่อ Microsoft ActiveX Data Objects 2.0 Library
2. จึงใช้ adodb.connection, adodb.recordset ได้
3. นำ code ด้านล่างไปใส่ใน Code View (เพิ่มเติม)
4. อ่านข้อมูลมาแสดงใน msgbox เมื่อ Start Form
5. ให้ฝึกเปลี่ยน ตาราง และเขตข้อมูล ท่านจะได้ชำนาญ

5. ADODB + ODBC
+ http://www.thaiabc.com/asp/dthai97.mdb 70 KB

คือ การเชื่อมต่อฐานข้อมูลผ่านคลาส ADODB และ ODBC ต้องสร้าง DSN ใน ODBC เพื่อกำหนดแฟ้มฐานข้อมูล รองรับการใช้ SQL Command
5.1 สร้าง module ชื่อ autoexec ' Menu Bar, Project, ' ... Project Propoties, Startup Object=Sub Main ' ... Project References ' - Visual Basic For Applications ' - Visual Basic runtime objects and procedures ' - Visual Basic objects and procedures ' - OLE Automation ' - Microsoft ActiveX Data Objects 2.1 Library ' - Microsoft DAO 3.51 Object Library ' - Microsoft Data Binding Collection VB 6.0 (SP4) ' - Microsoft Data Environment Instance 1.0 ' - Microsoft Data Report Designer 6.0 (SP4) ' - Microsoft Data Formatting Object Library 6.0 (SP4) Option Explicit Public cndb As New ADODB.Connection Sub main() Set cndb = New ADODB.Connection With cndb .ConnectionString = "dsn=dthai97" .CommandTimeout = 20 .CursorLocation = adUseClient .Open End With Form1.Show End Sub 5.2 สร้างฟอร์มชื่อ form1 Option Explicit Dim rs As New ADODB.Recordset Private Sub Command1_Click() Set rs = cndb.Execute("select * from tbthai") If rs.RecordCount <= 0 Then Exit Sub rs.Requery Dim txt As String txt = "" Do While Not rs.EOF txt = txt & rs.Fields(0) & " " & rs!fid & Chr(13) rs.MoveNext Loop MsgBox txt End Sub
Control หรือ Function ที่น่าสนใจ
MsgBox, InputBox ตัวอย่าง
a = inputbox("name")
msgbox(a)
fixed-size array ?
- dim a(5) as string
- dim b(0 to 5) as string
dynamic array
- dim c() as string
- redim c(10 to 15) as string
ตัวอย่าง
dim a(5) as string ' 0 to 5
a(0) = "โรงเรียน"
dim b(0 to 5) as string
b(0) = "มหาวิทยาลัย"
dim c() as string
redim c(10 to 15) as string ' can not change data type
c(10) = "5"
msgbox( int(c(10)) + 6 + ubound(c)) ' 26
split, array ตัวอย่าง
a = "a,b,c,d"
msgbox (ubound(split(a,","))) ' 3
[Public | Private] [Static] 
Function name [(arglist)] [As type]
  [statements]
  [name = expression]
  [Exit Function] 
  [statements]
  [name = expression]
End Function
ตัวอย่าง
' msgbox(cal(5))
Function cal(a As Double) As Double
  If a < 0 Then
    Exit Function	
  Else
    cal = a * 2
  End If
End Function
[Private | Public] [Static] 
Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
ตัวอย่าง
' workcal(5)
Sub workcal(ln)
  If ln = 0 Then
  Exit Sub
  End If
  msgbox (ln)
End Sub
User-Data Type
ตัวอย่าง
private type human
  age as integer
  name as string
end type
private sub form_load()
  dim a as human
  a.age = 5
  a.name = "boy"
  msgbox (a.age & a.name)
end sub
DTPicker, Monthview, FlatScrollbar, UpDown
- Ctrl+T : Check - Microsoft Windows Common Controls-2.6.0
- Regional Setting ใน Control Panel กำหนด พ.ศ. หรือ ค.ศ.
- FormatDateTime(DTPicker1.Value, vbLongDate)
- Format(Text1.Text, "yyyy/mm/dd")
ตัวอย่าง
msgbox(dtpicker1.value) ' 5/11/2009 (mm/dd/yyy)
msgbox(dtpicker1.value + 60) ' 7/11/2009 (mm/dd/yyy)
msgbox(format(dtpicker1.value,"mm/dd/yy")) ' 05/11/09
t1.text = format(monthview1.value,"mm/dd/yy")) + 543 ' 2552
MSHFlexGrid ?
- Ctrl+T : Check - Microsoft FlexGrid Control 6.0
- g = MSHFlexGrid.TextMatrix(MSHFlexGrid.Row, 0)
- DTPicker.Value = Format(g, "mm/dd/yy")
ตัวอย่าง
with MSFlexGrid1
.cols = 2 : .rows = 3
.row = 0 : .col = 0 : .text = "h1"
.row = 0 : .col = 1 : .text = "h2"
.row = 1 : .col = 0 : .text = "101"
.row = 1 : .col = 1 : .text = "tom"
.row = 2 : .col = 0 : .text = "102"
.row = 2 : .col = 1 : .text = "boy"
end with
เอกสารอ้างอิง
[1] มนตรี พจนารถลาวัณย์, "การเขียนโปรแกรมคอมพิวเตอร์ด้วยเทอร์โบเบสิก", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2533.
[2] กิตติ ภักดีวัฒนะกุล, จำลอง ครูอุตสาหะ, "Visual Basic 5 ฉบับโปรแกรมเมอร์", บริษัท ดวงกมลสมัย จำกัด., กรุงเทพฯ, 2541.
[3] พีรศักดิ์ ศรีกังวาล, "เรียนภาษาเบสิก/เบสิกขั้นสูง", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2534.
[4] ราบินเดอร์ ศรีกิจจาภรณ์, "คู่มือการใช้งาน Visual Basic สำหรับวินโดวส์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2538.
[5] วิชิต ปุณวัตร์, "พจนานุกรมภาษาเบสิก", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2532.
[6] ราบินเดอร์ ศรีกิจจาภรณ์, "กลวิธีการโปรแกรมภาษาเบสิก", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2536.
[7] จรณิต แก้วกังวาล, "20 ชั่วโมงกับ QuickBasic", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2535.
[8] อุกฤษฏ์ โคแก้ว, "โปรแกรมภาษาเบสิก", บริษัท ต้นอ้อ จำกัด., กรุงเทพฯ, 2535.
[9] จิระ จริงจิตร, "เรียนลัด Visual Basic", บริษัท โปรวิชั่น จำกัด., กรุงเทพฯ, 2538.
[10] ธีรศักดิ์ ฐานกุล, "กะเทาะเปลือกวายร้าน Trojan ด้วย Visual Basic", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549.
[11] สัจจะ จรัสรุ่งรวีวร, "เรียนรู้ง่ายและใช้งานได้จริง", บริษัท ดวงกมลสมัย จำกัด., กรุงเทพฯ, 2548.
[12] เฉลิมพล ทัพซ้าย, "การเขียนโปรแกรมภาษา Basic", บริษัท 3495 บุ๊คเซ็นเตอร์ จำกัด., กรุงเทพฯ, 2539.
[13] ธาริน สิทธิธรรมชารี, "คู่มือการเขียนโปรแกรม Advanced Visual Basic 6.0", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2548.
:: เปิดดูทุก ๆ ตอน ::

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยเนชั่น
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : facebook.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223