บทความนี้ไม่ได้เกี่ยวกับวิธีการสร้างหรือการออกแบบฐานข้อมูล แต่จะเป็นเกี่ยวกับวิธีการเชื่อมต่อกับฐานข้อมูลและการจัดการฐานข้อมูลโดยใช้ 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.update
ADO - 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
ตัวอย่างเหล่านี้แสดงวิธีการแก้ไขบันทึกโดยตรงหลังจากที่ระเบียนถูกเปิด มันจะตรวจสอบว่ามีการบันทึกตรงกับเงื่อนไขที่สร้างตาม SQLDAO - 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.update
ADO - 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 if
ADO - การลบข้อมูล
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
เป็นตัวอย่างที่สามารถใช้งานได้จริงครับ
ยังค้างคาหลายข้อ
ตอบลบขอบคุณที่ให้ความรู้เพิ่ม