我個人因為經常作一些資料庫方面的程序,對於程序間如何與資料庫進行介面的問題之煩是深有體會,因為VB在資料庫連結的時候,一般是靜態,即資料庫存放的路徑是固定的,如用VB的DATA,adodc,DataEnvironment等到作資料庫連結時,如果存放資料庫的路徑被改變的話,就會找不到路經,真是特別煩的事。
筆者的解決方法是利用app.path來解決這個問題。
一、用data控件進行資料庫鏈接,可以這樣:
在form_load()過程中放入:
PRivateform_load()
DimstrAsString'定義
str=App.Path
IfRight(str,1)<>"/"Then
str=str "/"
EndIf
data1.databasename=str&"/資料庫名稱"
data1.recordsource="資料表名"
data1.refresh
subend
這幾句話的意為,打開目前程式運行的目錄下的資料庫。
你只要保證你的資料庫在你程式所在的目錄之下就行了。
二、利用adodc(ADODataControl)進行資料庫連結:
privateform_load()
DimstrAsString'定義
str=App.Path
IfRight(str,1)<>"/"Then
str=str "/"
EndIf
str="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&str&"/tsl.mdb"
Adodc1.ConnectionString=str
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="select*fromtable3"
Adodc1.Refresh
endsub
三、利用DataEnvironment進行資料庫鏈接
可在過程中放入:
OnErrorResumeNext
IfDataEnvironment1.rsCommand1.State<>adStateClosedThen
DataEnvironment1.rsCommand1.Close'如果打開,則關閉
EndIf
'i=InputBox("請輸入友人編號:","輸入")
'Ifi=""ThenExitSub
DataEnvironment1.Connection1.OpenApp.Path&"/userdatabase/tsl.mdb"
DataEnvironment1.rsCommand1.Open"select*fromtable3where編號='"&i&"'"
'SetDataReport2.DataSource=DataEnvironment1
'DataReport2.DataMember="command1"
'DataReport2.show
endsub
四、利用ADO(ActiveXDataObjects)進行程式設計:
建立連線:
dimconnasnewadodb.connection
dimrsasnewadodb.recordset
dimstr
str=App.Path
IfRight(str,1)<>"/"Then
str=str "/"
EndIf
str="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&str&"/tsl.mdb"
conn.openstr
rs.cursorlocation=aduseclient
rs.open"資料表名",conn,adopenkeyset.adlockpessimistic
用完後關閉資料庫:
conn.close
setconn=nothing->