VBA連接access數據庫開發小軟件
雖然VBA(包括VB)已不再流行,但是在某些場合還是比較方便的,尤其對非編程專業人員。靈活使用VBA,可以很十分方便的處理excel,access數據,提高工作效率,避免出現錯誤。個人認為VBA的最大的優點就是嵌套在office中,無需創建額外的編程環境,另外語法簡單,窗體的構建也很容易上手。
在辦公場所,往往因為保密的考慮,辦公電腦只通過內部局域網互聯,而不與外部互聯網通訊。對于小型團隊(十幾到幾十人)而言,通過excel+access的方式管理一些信息,相當方便,快捷又經濟。只要有了想法(比如科室問題跟蹤系統),一天兩天就可以做出來一個小系統,可以極大提高工作效率,還能避免找IT人員開發專業的軟件。
下面簡單舉例,用excel VBA窗體創建前臺,用access數據庫管理后臺數據的方式,創建一個簡單的小系統。把access數據庫設置為共享,在局域網內,其他員工均可以通過excel VBA窗體前臺訪問,查詢數據庫和更新數據。
比如對四線制熱電阻校驗信息的管理,對于四線制的熱電阻的校驗,需要檢查ABCD四根線兩兩之間的電阻值,也需要測量對地的絕緣值,依此判斷該熱電阻的特性是否下降。然后統計同類型的歷史數據,就可以判斷該類型設備的使用壽命,據此制定或優化更換策略。
前面的文章已經說了如何創建窗體,本文重點講VBA如何與access連接,動態管理數據。主要的界面如下:
錄入檢驗信息窗體
錄入檢驗數據窗體
listview顯示檢驗數據
雙擊listview中的數據,顯示單個熱電阻的檢驗數據。
VBA與access連接的方法-查詢:
‘get_info函數用于連接access數據庫并查詢,通過參數傳遞sql查詢語句,通過參數rst返回查詢結果。
Function get_info(ByVal sql As String, ByVal rst As ADODB.Recordt)
Dim cnn As New ADODB.Connection
'stpath = ThisWorkbook.Path & "mt.accdb" ‘數據庫mt.accdb放在本地電腦
stpath = "\ 192.168.1.1mt.accdb" ‘數據庫mt.accdb放在共享地址
cnn.Open "provider=microsoft.ace.oledb.12.0;data source=" & stpath & ""
rst.Open sql, cnn, adOpenStatic, adLockOptimistic
If rst.RecordCount < 1 Then
MsgBox "no information for your arch"
Exit Function
End If
End Function
‘雙擊listview數據,根據主鍵查詢access數據庫,并查詢結果顯示到窗體UrForm9。
Private Sub UrForm_Initialize()
Dim rst As New ADODB.Recordt ‘創建新的查詢結果集
sql = "lect * from mt where id like'%" & UrForm1.mt_number & "%'" ‘根據listview的數據主鍵UrForm1.mt_number,動態創建sql語句。這里需要注意sql語句的結構,比較容易出錯。
Call get_info(sql, rst) ‘調用函數get_info,用sql語句查詢,并把結果反饋到rst中。
‘下面把查詢結果顯示到窗體中。
UrForm9.ecs.Caption = rst.Fields(1).Value
UrForm9.calibrator.Caption = rst.Fields(2).Value
UrForm9.cali_date.Caption = rst.Fields(3).Value
UrForm9.package_number.Caption = rst.Fields(4).Value
UrForm9.ab.Text = rst.Fields(5).Value
UrForm9.ac.Text = rst.Fields(6).Value
UrForm9.ad.Text = rst.Fields(7).Value
UrForm9.bc.Value = rst.Fields(8).Value
UrForm9.bd.Value = rst.Fields(9).Value
UrForm9.cd.Value = rst.Fields(10).Value
UrForm9.isolation.Value = rst.Fields(11).Value
'TextBox1.MultiLine = True
ComboBox1.AddItem "正常>100兆歐"
ComboBox1.AddItem "降級觀察>10兆歐"
ComboBox1.AddItem "降級>1兆歐,轉大修處理"
ComboBox1.AddItem "失效<1兆歐,立即處理"
End Sub
VBA與access連接的方法-更新:
‘add_info函數用于更新access數據庫,更新的語句通過參數sql傳遞。
Sub add_info(sql As String)
Dim cnn As New ADODB.Connection
'stpath = ThisWorkbook.Path & "mt.accdb" ‘數據庫mt.accdb放在本地電腦
stpath = "\ 192.168.1.1mt.accdb" ‘數據庫mt.accdb放在共享地址
cnn.Open "provider=microsoft.ace.oledb.12.0;data source=" & stpath & ""
cnn.Execute (sql)
cnn.Clo
Set cnn = Nothing
End Sub
Private Sub CommandButton1_Click()
If ComboBox1.Value = "" Then
MsgBox "處理結果不能為空,請重新選擇"
Exit Sub
End If
‘更新access的sql語法如下,需要注意動態ComboBox1.Value的處理,這里也容易出錯。
sql = "update mt t result='" & ComboBox1.Value & "' where id =" + UrForm1.ng_number
If MsgBox("請確認輸入信息正確。", vbYesNo) = 6 Then
add_info (sql)
End If
Unload UrForm9
End Sub
對于非專業人員,花上一兩周時間學習一下VBA,并靈活運用到工作中,可以事半功倍,對VBA+ACCESS的組合方式,簡單實用。本文也是拋磚引玉,希望大家一起交流和學習,一起進步。
如有需要本軟件代碼的,可以私信聯系。
本文發布于:2023-02-28 20:59:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167771365299491.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:access數據庫軟件(數據庫軟件access).doc
本文 PDF 下載地址:access數據庫軟件(數據庫軟件access).pdf
| 留言與評論(共有 0 條評論) |