หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 5 9 1 7 1 2

7 ธันวาคม พ.ศ.2549
66 Users On-Line.
Visitors - Page views
 8 9 4 6 7 6 2
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

VB6 กับการใช้งาน Data Control ภาค 1 (Design Time ก็ทำงานได้)

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 29/9/2553   เวลา: 12:20
(อ่าน : 32044) 
จำไม่ได้แล้วล่ะว่า ฝึกเขียนโปรแกรม Visual Basic มาตั้งแต่ปีไหน แต่จำได้ว่าเริ่มต้นจาก Version 4 เป็นต้นมา บทความนี้ผมจะมาเปิดเผย ถึงที่มา ที่ไป ก่อนที่พี่น้องจะเห็นโค้ดต่างๆตามหนังสือ หรือ ตามเว็บไซต์ ว่าจุดกำเนิดน่ะ มันมาจากไหนกัน (และก่อนที่จะพัฒนาแนวทางการเขียนโค้ดของตัวผมเองในเวลาต่อมา) ... เราสามารถที่จะทดสอบการ Connect ฐานข้อมูลได้ทุกตัว (ที่มี Driver) โดยที่ไม่ต้องมีโค้ดคำสั่งเลย แม้แต่บรรทัดเดียว และ ยังสามารถนำข้อมูลมาแสดงผลลงใน DataGrid ได้เลยทันที เรียกได้ว่างานนี้โดนใจกลุ่มผู้เริ่มต้น (Beginner) อย่างแน่นอน ... ลักษณะการทำงานในบทความนี้ เราเรียกว่า การใช้งาน Data Control คือ การผูกคอนโทรล (Bound Control) เข้ากับแหล่งจ่ายข้อมูล (Data Source) แน่นอนครับ จะง่ายมาก และ สามารถแสดงผลข้อมูลได้อย่างรวดเร็ว แต่ยังมีข้อจำกัดอีกหลายประการ ดังนั้นในตอนต่อๆไป ก็ต้องเริ่มลงโค้ด หรือ การสั่งแบบ Run Time เพื่อช่วยในการควบคุมการทำงานของโปรแกรมได้ ...
    มารู้จักกับคำว่า Bound และ UnBound Control
  • Bound Control คือ การผูก (Bound) ตารางข้อมูล (RecordSet) เข้ากับพวก Component หรือ Control ต่างๆ ... กรณีที่นำมาใช้แสดงผลลงในตารางกริด มันจะอ่านค่าฟิลด์ต่างๆ เพื่อแสดงผลในแต่ละหลัก เรียงตามลำดับจาก Query ที่เราเขียนไว้ และ ต้องแสดงทุกๆฟิลด์ออกมาทั้งหมด ... มีข้อดี คือ ทำงานได้เร็ว มักนำไปแสดงผลข้อมูลอย่างเดียว ... จะใช้ในบทความนี้ทั้งหมดครับ
  • UnBound Control ก็จะไม่มีการผูก (Unbound) ตารางข้อมูลใดๆเข้ากับ Component หรือ Control ... การนำไปใช้ในตารางกริด ไม่จำเป็นต้องแสดงผลออกมาทุกฟิลด์ และ จะเอาตัวไหนมาแสดงในหลักใดๆก่อนหลังก็ได้ ... มีข้อดี คือ ยืดหยุ่นมากกว่า และ มักใช้กับการเข้าไปแก้ไขข้อมูลตารางกริด ในแต่ละ Cell
ดาวน์โหลด Source Code สำหรับผู้ใช้งาน Visual Basic 6
ดาวน์โหลดไฟล์ MS Access 2003 สำหรับใช้ทดสอบเป็นตัวอย่าง
 ดาวน์โหลด Visual Basic 6.0 SP5: Run-Time Redistribution Pack
 ดาวน์โหลด Microsoft Data Access Object (MDAC) และ Jet 4.0 Update
 ดาวน์โหลด Microsoft Visual Basic Service Pack 6
ข้อมูลเพิ่มเติม
VB6 กับการใช้งาน Data Control ภาค 2 (ลูกผสม Design และ Run Time)
VB6 กับการใช้งาน Data Control ภาค 3 (การแก้ไขข้อมูล)
VB6 กับการใช้งาน Data Control ภาค 4 (โค้ด Run Time)
VB6 กับการใช้งาน Data Control ภาค 5 (ฉบับตราเด็กสมบูรณ์)
วิดีโอสอนขั้นตอนการ Debug Program ด้วย MS Visual Basic 6.0
วิดีโอสอนขั้นตอนการออกแบบความสัมพันธ์ระหว่างตารางแบบ One To One
มาดูกันแบบ STEP BY STEP เลยครับพี่น้อง

ไปที่เมนู Project --> References ... แล้วเลื่อนหา Microsoft ActiveX Data Objects Library 2.8 มาใช้งานในการเชื่อมต่อไฟล์ฐานข้อมูล
(หากไม่เลือกเอาไว้ก่อน ตอนไปกำหนด Properties ให้กับ ADODC มันจะเลือกเอา Version 2.5 มาให้แทนซิครับ ... พี่น้อง)


ไปที่เมนู Project --> Components ... เลือก Control 2 ตัว มาใช้งาน
    ประกอบด้วย
  1. ADO Data Control (Adodc1) เพื่อเชื่อมต่อไฟล์ฐานข้อมูล
  2. DataGrid Control เพื่อผูกข้อมูล (Bound) เข้ากับตัว Adodc1 ... จากนั้นนำข้อมูลมาแสดงผล


การออกแบบหน้าตาโปรแกรม (Design Time) ... เลือก Control มาจาก ToolBox แล้ววาดลงบนฟอร์ม
การกำหนดคุณสมบัติ (Properties) ของ Control แต่ละตัว โดยการเปิดฟอร์มขึ้นมาแล้วกดปุ่ม F4 เลยก็ได้
ตัว Adodc1 นั้นนำไปซ่อนเอาไว้ได้เลยครับ ... คงไม่มี User คนไหน เขาชื่นชอบการเข้าถึงข้อมูลแบบเดินหน้า ถอยหลัง หรอกครับ 55555+
ส่วนการค้นหาข้อมูลนี้ เราจะต้องเขียนโค้ดขึ้นมาเพิ่มเติมเอาเอง ... ติดตามชมกันต่อไปในภาค 2


ปรับแต่งคุณสมบัติของ DataGrid ในขณะการออกแบบ (Design Time) เพื่อให้แสดงผลได้อย่างเดียว ไม่สามารถเพิ่ม แก้ไข หรือ ลบข้อมูลในตารางกริดได้

เริ่มต้นทำการเชื่อมต่อ Adodc1 เข้ากับฐานข้อมูล ...

ไปที่ Adodc1 (Data Control) คลิ๊กเมาส์ขวา 1 ปิ๊ด ให้เลือก ADODC Properties


ตรงนี้จะเลือกที่ Build ไปเลยก็ได้ (กรณีของ MyODBC ไปเลือกที่ Use ODBC Data Source Name)


เลือก Jet 4.0 (Jet 3.51 มันคือการเชื่อมต่อฐานข้อมูลแบบ DAO) ... ตามด้วยปุ่ม Next
(กรณีของ MyODBC ไปเลือกที่ Microsoft OLE DB Provider for ODBC Driver)


ฺBrowse เพื่อทำการเลือกไฟล์ฐานข้อมูลเข้ามาผูกติดกับ ADODC



จะปลด หรือ ไม่ปลดรหัสผ่านก็ได้ (Blank password) ... แต่อย่าพยายามไปใส่รหัสเอาไว้เลยครับ หุๆ
กดปุ่ม Test Connection เพื่อทดสอบการเชื่อมต่อไฟล์ฐานข้อมูลที่เลือกเข้ามา


การทดสอบผ่าน ... ชิวๆ


ทีนี้แหละต้องมาเลือก Query ข้อมูล ... ผมทำเอาไว้อยู่ในไฟล์ตัวอย่างแล้ว สามารถ Copy มาใช้งานได้เลย
ผมเลือก adCmdText เพื่อต้องการให้อ่าน SQL Statement แทน ... ใครมีตารางเดี่ยวๆ หรือ ทำ Query เอาไว้ ก็ใช้ adCmdTable แทนก็ได้ ... ต้องลองเล่น ลองทดสอบดูเอาเองครับ

SELECT tblCustomer.CustomerPK, tblCustomer.CustomerCode, tblCustomer.CustomerName, 
tblCustomer.Address, tblCustomer.Amphur, tblCustomer.ProvinceFK, 
tblProvince.ProvinceName, tblCustomer.PostCode
FROM tblCustomer INNER JOIN tblProvince ON tblCustomer.ProvinceFK = tblProvince.ProvincePK
กดปุ่ม OK เพื่อจบออกมาได้เลย
เป็นการสิ้นสุดของการผูกไฟล์ฐานข้อมูล (Bound) เข้ากับตัว Adodc1

การผูกข้อมูล (Bound Control) DataGrid เข้ากับ Adodc1

กดเมาส์ซ้าย 1 ปื้ด เลือกที่ตัว DataGrid เพื่อทำการผูกตารางข้อมูล หรือ การทำ Query ให้กับตัว DataGrid
จาก Properties เลือก DataSource --> Adodc1 ... เป็นอันจบในการผูกข้อมูล (Bound) DataGrid เข้ากับ Adodc1

การนำข้อมูลจาก Data Source (Adodc1) มาแสดงผลในตารางกริด

คลิ๊กเมาส์ขวา (เบาๆก็พอ) ที่ตัว DataGrid ... ให้เลือกการ Retrieve fields (เพื่อนำฟิลด์ข้อมูลที่กำหนด ไปใส่ไว้ใน DataGrid)


ยืนยันการ Retrieve fields เข้ามาสู่ DataGrid ...


ตรงนี้แหละที่มันอ่านค่าฟิลด์ต่างๆที่เรากำหนดเอาไว้ก่อนล่วงหน้าเข้ามาทั้งหมด


สั่งให้โปรแกรมทำงานได้เลย กดปุ่ม F5 ณ บัดเดี๋ยวนี้ ... แอ่นแอ้นนนนนน
อึ้ง ทึ่ง เสียว กันไปเลย ... ไม่ต้องเขียนโค้ดเลยสักกะบรรทัด
(ตรงการค้นหาข้อมูล และ จำนวนรายการ เราต้องสั่งด้วยโค้ดแบบ Run Time ... ติดตามชมกันต่อไปในภาค 2)

การปรับคุณสมบัติของ Control ในระหว่างการออกแบบ (Design Time)

เมาส์ขวาที่ DataGrid ปื้ดนึง ... เลือกการ Edit


คำอธิบายก็อยู่ในภาพนั่นแหละครับ ... สามารถปรับระยะความกว้างของแต่ละหลักได้ด้วยน่ะครับ


เมาส์ซ้ายจิ้มบริเวณ Header ของ DataGrid ... เมาส์ขวาคลิ๊กอีกระลอกนึง (เบาๆ) ก็ปรากฏเมนูขึ้นมาให้เลือก
ส่วนใหญ่ก็จะลบบางหลัก (Column) ที่ไม่ต้องการออกไปด้วยการเลือก Delete เช่น ProvinceFK ที่ไม่ต้องนำมาแสดงผล
หากใครทำผิดพลาด ไม่ออกดอกออกผลตามที่ต้องการ ก็สั่ง Clear fields เพื่อเริ่มต้นใหม่ได้เลย


ต่อไปเป็นการเข้าไปแก้ไข หรือ ปรับ Properties ให้กับ DataGrid


ตัวอย่างนี้ ... เป็นการแก้ไขป้ายชื่อ (Caption) ให้กับหลักที่แสดงผลรหัสลูกค้า (CustomerCode)
เมื่อพอใจก็ให้กดปุ่ม Apply หรือ OK เพื่อจบออกมาเลย ...


ก็จะได้ผลลัพธ์ออกมาตามที่เรากำหนด หรือ ต้องการ ... จบภาค 1

เทคนิค และ ของฝากสำหรับผู้ชื่นชอบ MySQL

เมื่อเราทดสอบการเชื่อมต่อ MyODBC ผ่านเป็นที่เรียบร้อยแล้ว


คัดลอก Connection String เอามาแปะในโปรเจค Visual Basic ได้เลย ... ไม่ต้องมาเขียนโค้ดเองให้เสียเวลา ... เช่นตัวอย่างที่ผมทดสอบ
Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=MySQLDataBase;Initial Catalog=test

Conclusion:
เป็นอย่างไรกันบ้างครับ ... ไม่มีการเขียนโค้ดเลยแม้แต่บรรทัดเดียว ก็สามารถแสดงรายการข้อมูลต่างๆ ออกมาได้อย่างง่ายดายมาก จนมาถึงปัจจุบันนี้ สาย Visual Studio.NET ก็นำหลักการในอดีต มาทำการพัฒนาปรับปรุงให้ดีขึ้น และ ง่ายขึ้นมากกว่าแต่ก่อน (ที่เขาว่ากันว่า VB.Net ง่ายกว่า VB6 ก็เพราะอย่างนี้นี่เองแหละครับ) ... แต่ถึงอย่างไรก็ตามที หากเราไม่เขียนโค้ดเข้าไปเพิ่มเติม เพื่อให้โปรแกรมแสดงผลในขณะทำงาน (Run Time) ก็ย่อมยากที่จะควบคุมการทำงานของโปรแกรมได้ ... คอยติดตามชมกันในตอนต่อไปครับ ... พี่น้อง

จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560