โดยส่วนตัวแล้วฉันมักจะทำโปรแกรมฐานข้อมูลบางโปรแกรม ดังนั้นฉันจึงมีความเข้าใจอย่างลึกซึ้งถึงปัญหาของวิธีการเชื่อมต่อระหว่างโปรแกรมและฐานข้อมูล เพราะเมื่อ VB เชื่อมต่อกับฐานข้อมูล มันมักจะเป็นแบบคงที่ นั่นคือเส้นทางที่ฐานข้อมูลถูกจัดเก็บ ได้รับการแก้ไขแล้ว เช่น เมื่อใช้ DATA ของ VB, ADODC, DataEnvironment ฯลฯ ในการเชื่อมต่อกับฐานข้อมูล หากเปลี่ยนเส้นทางการจัดเก็บฐานข้อมูลก็จะไม่พบเส้นทางซึ่งน่ารำคาญจริงๆ
วิธีแก้ปัญหาของผู้เขียนคือใช้ app.path เพื่อแก้ไขปัญหานี้
1. ใช้การควบคุมข้อมูลเพื่อเชื่อมต่อกับฐานข้อมูลดังต่อไปนี้:
ใส่ในกระบวนการ form_load():
PRivateform_load()
คำจำกัดความของ DimstrAsString
str=App.Path
IfRight(str,1)<>"/"จากนั้น
str=str "/"
สิ้นสุดถ้า
data1.databasename=str&"/ชื่อฐานข้อมูล"
data1.recordsource="ชื่อตารางข้อมูล"
data1.รีเฟรช
โอนย่อย
ความหมายของประโยคเหล่านี้คือการเปิดฐานข้อมูลในไดเร็กทอรีที่โปรแกรมปัจจุบันกำลังทำงานอยู่
คุณเพียงแค่ต้องแน่ใจว่าฐานข้อมูลของคุณอยู่ในไดเร็กทอรีที่โปรแกรมของคุณตั้งอยู่
2. ใช้ ADODC (ADODataControl) สำหรับลิงค์ฐานข้อมูล:
ไพรเวทฟอร์ม_โหลด()
คำจำกัดความของ DimstrAsString
str=App.Path
IfRight(str,1)<>"/"จากนั้น
str=str "/"
สิ้นสุดถ้า
str="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&str&"/tsl.mdb"
Adodc1.ConnectionString=str
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="select*fromtable3"
Adodc1.รีเฟรช
จบซับ
3. ใช้ DataEnvironment สำหรับการลิงก์ฐานข้อมูล
คุณสามารถใส่กระบวนการ:
หนึ่งข้อผิดพลาดดำเนินการต่อต่อไป
IfDataEnvironment1.rsCommand1.State<>adStateClosedThen
DataEnvironment1.rsCommand1.Close'ถ้าเปิด ให้ปิด
สิ้นสุดถ้า
'i=InputBox("กรุณากรอกหมายเลขเพื่อน:", "Enter")
'Ifi=""แล้วExitSub
DataEnvironment1.Connection1.OpenApp.Path&"/userdatabase/tsl.mdb"
DataEnvironment1.rsCommand1.Open"select*fromtable3where number='"&i&"'"
'SetDataReport2.DataSource=DataEnvironment1
'DataReport2.DataMember = "command1"
'DataReport2.show'
จบซับ
4. การเขียนโปรแกรมโดยใช้ ADO (ActiveXDataObjects):
สร้างการเชื่อมต่อ:
dimconnasnewadodb.การเชื่อมต่อ
dimrsasnewadodb.recordset
สลัว
str=App.Path
IfRight(str,1)<>"/"จากนั้น
str=str "/"
สิ้นสุดถ้า
str="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&str&"/tsl.mdb"
con.openstr
rs.cursorlocation=aduseclient
rs.open "ชื่อตารางข้อมูล", conn, adopenkeyset.adlockpessimistic
ปิดฐานข้อมูลหลังการใช้งาน:
เชื่อมต่อปิด
setconn=ไม่มีอะไร->