10、如何設置對VB數(shù)據(jù)庫連接的動態(tài)路徑 我個人因為經(jīng)常作一些數(shù)據(jù)庫方面的程序,對于程序間如何與數(shù)據(jù)庫進行接口的問題之煩是深有體會,因為VB在數(shù)據(jù)庫鏈接的時候,一般是靜態(tài),即數(shù)據(jù)庫存放的路徑是固定的,如用VB的DATA,adodc,DataEnvironment 等到作數(shù)據(jù)庫鏈接時,如果存放數(shù)據(jù)庫的路徑被改變的話,就會找不到路經(jīng),真是一個特別煩的事。 筆者的解決方法是利用app.path 來解決這個問題。 一、用data控件進行數(shù)據(jù)庫鏈接,可以這樣: 在form_load()過程中放入: private form_load()
Dim str As String ‘定義 str = App.Path If Right(str, 1) <> "\" Then str = str + "\" End If data1.databasename=str & "\數(shù)據(jù)庫名" data1.recordsource="數(shù)據(jù)表名" data1.refresh sub end 這幾句話的意為,打開當前程序運行的目錄下的數(shù)據(jù)庫。 你只要保證你的數(shù)據(jù)庫在你程序所在的目錄之下就行了。 二、利用adodc(ADO Data Control)進行數(shù)據(jù)庫鏈接: private form_load () Dim str As String ‘定義 str = App.Path If Right(str, 1) <> "\" Then str = str + "\" End If str = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & str & "\tsl.mdb" Adodc1.ConnectionString = str Adodc1.CommandType = adCmdText Adodc1.RecordSource = "select * from table3" Adodc1.Refresh end sub 三、利用DataEnvironment進行數(shù)據(jù)庫鏈接 可在過程中放入: On Error Resume Next If DataEnvironment1.rsCommand1.State <> adStateClosed Then DataEnvironment1.rsCommand1.Close ‘如果打開,則關閉 End If ‘i = InputBox("請輸入友人編號:", "輸入") ‘If i = "" Then Exit Sub DataEnvironment1.Connection1.Open App.Path & "\userdatabase\tsl.mdb" DataEnvironment1.rsCommand1.Open "select * from table3 where 編號=‘" & i & "‘" ‘Set DataReport2.DataSource = DataEnvironment1 ‘DataReport2.DataMember = "command1" ‘DataReport2.show end sub 四、利用ADO(ActiveX Data Objects)進行編程: 建立連接: dim conn as new adodb.connection dim rs as new adodb.recordset dim str str = App.Path If Right(str, 1) <> "\" Then str = str + "\" End If str = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & str & "\tsl.mdb" conn.open str rs.cursorlocation=aduseclient rs.open "數(shù)據(jù)表名",conn,adopenkeyset.adlockpessimistic 用完之后關閉數(shù)據(jù)庫: conn.close set conn=nothing
|