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