บทความนี้ไม่ได้เกี่ยวกับวิธีการสร้างหรือการออกแบบฐานข้อมูล แต่จะเป็นเกี่ยวกับวิธีการเชื่อมต่อกับฐานข้อมูลและการจัดการฐานข้อมูลโดยใช้ VB6 ซึ่งมันสามารถทำงานได้ มีการความแตกต่างกันบางอย่างเล็กน้อย กับการใช้ VBA
มีหลายวิธีการเชื่อมต่อกับฐานข้อมูล (ตัวอย่างเช่น Access) จะผ่านตัวควบคุมที่ผูกข้อมูล DAO หรือ ADO ในทั้งที่ผมไม่ได้ใช้ตัวควบคุมที่ผูกข้อมูล เพราะผมชอบที่จะให้การควบคุมของสิ่งที่เกิดขึ้นกับข้อมูลเพื่อให้ส่วนที่เหลือเป็นเรื่องเกี่ยวกับ DAO / ADO
เริ่มต้นด้วยการที่คุณจำเป็นต้องสร้างตัวแปรไม่กี่ชนิดต่อไปนี้
หมายเหตุ : ตัวอย่างเหล่านี้เป็นที่นี่เพื่อแสดงสิ่งที่ต้องทำมากเพียงบางส่วนของคำสั่งที่มีตัวเลือกมากกว่าที่จะแสดงผล
ตัวอย่างการเชื่อมต่อโดยใช้ DAO - เชื่อมต่อกับฐานข้อมูลแบบ JET
ตัวอย่างการเชื่อมต่อโดยใช้ DAO
DAO
DAO - Add New Record
DAO - Edit record
DAO - การลบข้อมูล
มีหลายวิธีการเชื่อมต่อกับฐานข้อมูล (ตัวอย่างเช่น Access) จะผ่านตัวควบคุมที่ผูกข้อมูล DAO หรือ ADO ในทั้งที่ผมไม่ได้ใช้ตัวควบคุมที่ผูกข้อมูล เพราะผมชอบที่จะให้การควบคุมของสิ่งที่เกิดขึ้นกับข้อมูลเพื่อให้ส่วนที่เหลือเป็นเรื่องเกี่ยวกับ DAO / ADO
เริ่มต้นด้วยการที่คุณจำเป็นต้องสร้างตัวแปรไม่กี่ชนิดต่อไปนี้
- Workspace ADODB.Connection - นี่เป็นสิ่งจำเป็นถ้าคุณกำลังใช้กระบวนการแบบ process
- Database - นี้เชื่อมต่อกับระเบียนของฐานข้อมูล
- ADODB.Recordset - นี่คือตัวแปรระดับ ตาราง / แบบสอบถาม
- Field ADODB.Field - นี่ช่วยให้เราได้รับข้อมูลเกี่ยวกับเขตข้อมูล
การเชื่อมต่อ Database
การเชื่อมต่อกับฐานข้อมูล Access มันสามารถทำได้ 2 วิธี เพื่อเชื่อมต่อกับฐานข้อมูลแบบ JET หรือ ODBC ส่วนตัวผมใช้ ODBC เพราะการจัดการไฟล์ที่ง่ายขึ้นที่จะเปลี่ยนชื่อไฟล์หรือเส้นทางเพียงแค่ใช้ ODBC ผู้ดูแลระบบในแผงควบคุมหมายเหตุ : ตัวอย่างเหล่านี้เป็นที่นี่เพื่อแสดงสิ่งที่ต้องทำมากเพียงบางส่วนของคำสั่งที่มีตัวเลือกมากกว่าที่จะแสดงผล
ตัวอย่างการเชื่อมต่อโดยใช้ DAO - เชื่อมต่อกับฐานข้อมูลแบบ JET
Dim ws as Workspace Dim db as Database Set ws=DBEngine.Workspaces(0) set db=ws.OpenDatabase({databasepath and name})ตัวอย่างการเชื่อมต่อโดยใช้ DAO - เชื่อมต่อกับฐานข้อมูลแบบ ODBC
Dim ws as Workspace dim db as database dim strConnection as string set ws=DBEngine.Workspaces(0) let strConnection= "ODBC;DSN=" & DatabaseName & ";UID=" & UserName & ";PWD=" & UserPassword set db=ws.OpenDatabase("", False, False, strConnection)ตัวอย่างการเชื่อมต่อโดยใช้ ADO
Dim ad as ADODB.Connection set ad=New ADODB.Connection Let ad.ConnectionString= "ODBC;DSN=" & DatabaseName & ";UID=" & UserName & ";PWD=" & UserPassword ad.Open
การเปิดตารางเพื่อแสดงผล และการสร้าง Query
ตอนนี้เรามีการเชื่อมต่อฐานข้อมูลที่จัดตั้งขึ้นเพื่อที่จะดูที่ข้อมูล ตัวอย่างต่อไปนี้แสดงวิธีการเปิดตาราง / แบบสอบถามและย้ายผ่านมันตัวอย่างการเชื่อมต่อโดยใช้ DAO
Dim rs as recordset set rs=db.openrecordset({tablename or SQL}) do while not rs.eof 'Put the code here for what to do with the information. 'The field information can be access by the field name intID=rs!IDField 'Or by the order number it is in the list (starting at 0) intString=rs.Field(1) rs.movenext loopตัวอย่างการเชื่อมต่อโดยใช้ ADO
dim ar as ADODB.recordset set ar=new adodb.recordset ar.open {SQL Statement} do while not ar.EOF 'Put the code here for what to do with the information. 'The field information can be access by the field name intID=ar!IDField 'Or by the order number it is in the list (starting at 0) intString=ar.Field(1).value ar.movenext loop
การเปลี่ยนแปลงข้อมูล
การแก้ไข / เพิ่ม / ลบบันทึกที่เราสามารถทำมันได้ทั้งการใช้ SQL หรือโดยตรง ทั้งแบบ DAO และ ADO ใช้วิธีการดำเนินการสำหรับการทำปรับปรุงโดย SQLDAO
Dim rs as recordset set rs=db.openrecordset({tablename or SQL}) rs.execute "INSERT INTO tb(ID,Name) VALUES (10,Anne)"ADO
dim ar as ADODB.recordset set ar=new adodb.recordset ar.open {SQL Statement} ar.execute "INSERT INTO tb(ID,Name) VALUES (10,Anne)"ตัวอย่างเหล่านี้ เพิ่มระเบียนใหม่ไปยังฐานข้อมูลโดยตรง
DAO - Add New Record
Dim rs as recordset set rs=db.openrecordset({tablename or SQL}) rs.addnew rs!ID=intID rs!Name=strName rs.updateADO - Add new record
dim ar as ADODB.recordset set ar=new adodb.recordset ar.open {SQL Statement} ar.addnew ar!ID=intID ar!Name=strName ar.updateตัวอย่างเหล่านี้แสดงวิธีการแก้ไขบันทึกโดยตรงหลังจากที่ระเบียนถูกเปิด มันจะตรวจสอบว่ามีการบันทึกตรงกับเงื่อนไขที่สร้างตาม SQL
DAO - Edit record
Dim rs as recordset set rs=db.openrecordset("SELECT * FROM Tb WHERE tdID=10") if rs.eof then rs.addnew else rs.edit end if rs!ID=intID rs!Name=strName rs.updateADO - Edit Record
dim ar as ADODB.recordset set ar=new adodb.recordset ar.open "SELECT * FROM Tb WHERE tdID=10" if ar.eof then ar.addnew else ar.edit end if ar!ID=intID ar!Name=strName ar.updateตัวอย่างเหล่านี้แสดงวิธีการลบระเบียนโดยตรงหลังจากที่ระเบียนถูกเปิดมันจะตรวจสอบว่าตรงตามเงื่อนไขการค้นหาหรือไม่ ถ้าไม่ตรง มันจะไม่ได้ทำการลบข้อมูล
DAO - การลบข้อมูล
Dim rs as recordset set rs=db.openrecordset("SELECT * FROM Tb WHERE tdID=10") if not rs.eof then rs.delete end ifADO - การลบข้อมูล
Dim ar as ADODB.recordset set ar=new adodb.recordset ar.open "SELECT * FROM Tb WHERE tdID=10" if not ar.eof then ar.delete end ifหมายเหตุ เมื่อคุณเปิดใช้ object เสร็จแล้วให้ปิดมันซะโดยใช้คำสั่ง
rs.close set rs=nothingเป็นตัวอย่างที่สามารถใช้งานได้จริงครับ
ยังค้างคาหลายข้อ
ตอบลบขอบคุณที่ให้ความรู้เพิ่ม