999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB訪問Access數據庫的研究

2014-08-07 13:22:50陶佳琦翁正新
微型電腦應用 2014年10期
關鍵詞:故障診斷數據庫故障

陶佳琦,翁正新

VB訪問Access數據庫的研究

陶佳琦,翁正新

介紹了實現此過程的主要步驟和程序代碼,以地鐵列車故障診斷系統為例,設計了一種VB通過ADO方式訪問Access數據庫的方法,能對不同數據表中的數據進行多次檢索,檢索結果能按需求同時顯示在VB的數據表格控件中。介紹了實現此過程的主要步驟和程序代碼。

VB;Access數據庫;地鐵列車

0 引言

在設計系統的過程中,數據庫的程序設計是至關重要的,在程序運行過程中,更好地訪問、檢索及顯示數據庫中數據,能使程序更人性化、用戶使用更便捷。地鐵列車故障診斷系統數據庫通過Access建立,維護人員在使用過程中,診斷系統會對數據庫進行多次訪問及檢索從而給出診斷建議。本文針對地鐵列車故障診斷系統,利用VB[1]中的ADO對象訪問數據庫,通過組合框控件及空的數據表作為數據存儲中轉點,使多次檢索得到的多組數據能同時顯示在VB的數據表格控件上,使維護人員能方便快捷地處理列車故障。

1 數據庫及ADO對象簡介

1.1 數據庫的簡介

Microsoft Office Access是微軟把數據庫引擎的圖形用戶界面和軟件開發工具結合在一起的一個數據庫管理系統。Access數據庫具有存儲方式簡單,易于維護管理、界面友好,易操作、集成環境,處理多種數據信息等優點[2~3]。地鐵列車故障診斷系統數據庫,如表1所示:

表1 地鐵列車故障診斷系統數據庫

案例表列車號;時間;故障類型;故障現象;故障原因;編號存儲列車發生過的故障案例 有診斷建議表 故障原因;排查順序;次數 程序運行中存儲檢索的數據 無

數據庫構建完成后,需在VB中采用合適的方式進行數據訪問,VB作為一款強大的編程軟件,支持DAO、RDO、ADO等多種訪問數據庫的方式,比較分析后,本文采用ADO方式對數據庫進行訪問。

1.2 ADO簡介

ADO(ActiveX Data Object)稱為ActiveX數據對象,是微軟公司開發數據庫應用程序面向對象的新接口,ADO數據庫接口繼承了早期基于ODBC的DAO、RDO所使用的對象模型,并加以改進,包含了較少的對象、更多的屬性方法和事件。ADO有 7個對象:Command(命令)對象、Conection(連接)對象、Recorsdet(記錄集)對象、Parameter(參數)對象、Field(域)對象、Error(錯誤)對象和Property(屬性)對象,其中Conection對象主要用于應用程序和數據源的連接;Command對象主要有執行命令函數Execute等; Recordset對象主要包括記錄集移動函數、記錄集打開及關閉函數、創建新記錄函數、刪除及更新函數等[4~6]。

2 VB訪問Access數據庫

2.1 設計原理

程序的原理設計如圖1所示:

圖1 原理設計圖

程序首先通過ADO的Connection對象連接診斷系統數據庫,隨后,通過ADO的Recorsdet對象結合相應的Sql語句,檢索數據庫得到“故障原因”、“排查順序”、“次數”字段,通過將數據轉存至組合框控件及診斷建議表,最終使數據顯示在數據表格控件中。

2.2 具體步驟

A. Connection對象連接數據庫

在訪問數據庫之前需建立與數據源的連接并保持,這一過程通過ADO的Conneciton對象實現,在連接過程中,首先,將Access數據庫引擎類型、是否保存安全信息、數據來源等信息賦予字符串str,隨后,設定con為新的ADO連接,再將字符串str賦予con的連接字段串屬性,最后,通過con的open函數完成數據庫的連接,具體代碼如下:

1) str = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;

2) Data Source=" & App.Path & "地鐵列車故障診斷系統.mdb"

3) Set con = New ADODB.Connection

4) con.ConnectionString = str

5) con.Open

B. Recordset對象檢索數據

在ADO數據庫編程中,可通過Recordset對象進行檢索、添加、修改記錄等操作,在本程序中,首先,設定了一個新的記錄集rs,然后,通過調用Open()函數打開記錄集,執行Sql語句,Open()函數的各項參數依次為sql,con,adOpenDynamic(動態游標), adLockOptimistic(樂觀鎖定),最后,通過MoveNext(移動到后一條記錄)、AddNew(增加新記錄)、Update(更新記錄集)等常用操作,結合組合框控件、數據表格控件完成數據的檢索、轉存及顯示。

在程序的檢索過程中,依次得到了“故障原因”、“排查順序”、“字段”3個字段并存儲在組合框控件中,以“列車觸發緊急制動”這一故障現象為例,檢索結果,如圖2所示:

圖2 檢索結果

各個字段的檢索、顯示過程及程序代碼如下:

1)“故障原因”字段檢索及存儲“故障原因”字段的過程如圖3所示:

圖3 檢索及存儲“故障原因”字段流程圖

程序首先通過調用Open()函數執行Sql語句,檢索得到“故障原因”字段,隨后,通過Do While循環語句,將“故障原因”字段中的數據存入組合框控件中。

程序代碼如下:

01 sql = "select 故障原因 from 故障 where 故障類型

02 in ('" & Combo1.Text & "') and 故障現象 in ('" & Combo2.Text & "') "

03 Set rs = New ADODB.Recordset

04 rs.Open sql, con, adOpenDynamic, adLockOptimistic

05 Do While Not rs.EOF

06 Combo3.AddItem rs("故障原因")

07 rs.MoveNext

08 Loop

09 rs.Close

2)“排查順序”字段

“排查順序”字段的檢索及存儲過程與“故障原因”字段類似,在此不再贅述,僅給出相應的程序代碼如下:

01 sql = "select 排查順序 from 故障 where 故障類型

02 in ('" & Combo1.Text & "') and 故障現象 in ('" & Combo2.Text & "') "

03 rs.Open sql, con, adOpenDynamic, adLockOptimistic

04 Do While Not rs.EOF

05 Combo5.AddItem rs("排查順序")

06 rs.MoveNext

07 Loop

08 rs.Close

3)“次數”字段

在檢索及存儲“次數”字段的過程中,由于每一個故障原因都要檢索發生過的案例次數,

每次檢索均需要重復打開記錄集、檢索數據、存入組合框、關閉記錄集這一過程,因此,在編程中采用For循環語句,通過將相應的組合框項目數作為條件,將各個故障原因的“次數”存入組合框控件中。程序代碼如下:

01 For i = 0 To Combo3.ListCount -1

02 sql = "select count(*) from 案例 where 故障原因

03 like '%" & Combo3.List(i) & "%' and 故障現象 = '" & Combo2.Text & "' "

04 rs.Open sql, con, adOpenDynamic, adLockOptimistic

05 Combo4.AddItem (rs(0))

06 rs.Close

07 Next i

C. 診斷建議表轉存數據

為了使檢索得到的3個字段能同時在數據表格中顯示,需要將3個字段的數據同時轉存至Access的診斷建議表中,轉存結果,如圖4所示:

圖4 轉存結果

轉存流程如圖5所示:

圖5 轉存數據流程圖

整個過程通過For循環語句完成,利用Open()函數執行相應的Sql語句,通過記錄集的增加新記錄、更新記錄等操作將組合框中數據轉存至Access診斷建議表中。

相關代碼如下:

01 For i = 0 To Combo3.ListCount - 1

02 sql = " select * from 診斷建議"

03 rs.Open sql, con, adOpenDynamic, adLockOptimistic

04 rs.AddNew

05 rs.MoveLast

06 rs.Fields(0) = Combo3.List(i)

07 rs.Fields(1) = Combo4.List(i)

08 rs.Fields(2) = Combo5.List(i)

09 rs.Update

10 rs.Close

11 Next i

D. 數據表格控件顯示數據

在顯示數據的過程中,首先設置記錄集游標服務的位置為adUseClient(本地游標庫提供的客戶端的游標)。隨后,調用Open()函數打開記錄集,執行Sql語句,將診斷建議表中的內容先按“次數”降序、再按“排查順序”升序。最后,通過將記錄集賦予數據表格控件的數據源,完成數據的顯示過程。顯示結果如圖6所示:

圖6 顯示數據

程序代碼如下:

01 sql = " select * from 診斷建議 order by 次數DESC,排查順序 ASC"

02 rs.CursorLocation = adUseClient

03 rs.Open sql, con, adOpenDynamic, adLockOptimistic

04 Set DataGrid1.DataSource = rs

05 End If

06 End Sub

3 總結

本文中提出的方法能很好地對Access數據庫進行訪問、檢索及顯示,使維護人員得到所需的數據,從而對地鐵列車故障進行診斷,同時,該方法還有著很好的擴展性,針對不同程序背景,只需通過建立相應數量的組合框控件及空Access數據表,便能很好地對數據庫進行多次檢索,滿足用戶的不同需求。VB對數據庫的處理有著強大的功能,在今后的系統開發中,應進一步對此加以研究應用,使程序更優化,用戶操作更便捷。

[1] 國家863中部軟件孵化器.Visual Basic從入門到精通[M].北京:人民郵電出版社,2010

[2] 高勇,符敢為.基于VC+ADO+Access的數據庫訪問技術在Pro/E環境下的實現[J] .機械設計與制造工程, 2013,42(3):14-17

[3] 董晶晶.基于VB與Access的人事信息管理系統設計[J].科技資訊, 2013(13):18-19

[4] 馮曉星,馬曉靜.VC基于ADO技術訪問Access數據庫[J].計算機與網絡, 2013(8):54-56

[5] 賈保英.VB環境下ADO數據庫開發技術[J].中小企業管理與科技, 2013(24):286-287

[6] 衣文鳳,劉玫,王大鵬.Vb+Access在柴油機故障診斷系統界面記憶輸入中的程序設計[J]. 科技創新導報, 2009(8):12-12

Study on VB Accessing to Access Database

Tao Jiaqi, Weng Zhengxin
(1.Department of Automation,Shanghai Jiao Tong University, Shanghai200240,China; 2. Rolling Stock Branch of Shanghai Rail Transit maintenance support Co.,Ltd., Shanghai200233, China)

Taking the fault diagnosis system of metro vehicle as an example, a method of VB accessing to Access database by ADO way is designed. This method is applied to retrieval the data from different data table. The retrieval results can be displayed on the VB datagrid control simultaneously according to the demand. The main process and the program code are also introduced.

VB; Access Database; Metro Vehicle

TP391

A

1007-757X(2014)10-0014-03

2014.05.15)

上海市自然科學基金(12ZR1415000)

陶佳琦(1987-), 男,上海,上海交通大學自動化系,碩士研究生,研究方向:故障診斷,上海,200240

翁正新(1966-),男,江蘇,上海交通大學自動化系,副教授,博士,研究方向:故障診斷與容錯控制,上海,200240

猜你喜歡
故障診斷數據庫故障
故障一點通
數據庫
財經(2017年2期)2017-03-10 14:35:35
奔馳R320車ABS、ESP故障燈異常點亮
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
因果圖定性分析法及其在故障診斷中的應用
故障一點通
江淮車故障3例
基于LCD和排列熵的滾動軸承故障診斷
主站蜘蛛池模板: 综合久久久久久久综合网| 国产精品丝袜视频| 亚洲无码高清一区| 日本黄色不卡视频| 综合色亚洲| 熟妇丰满人妻av无码区| 亚洲人成色77777在线观看| 亚洲国产精品无码AV| 国产精品午夜福利麻豆| 精品乱码久久久久久久| 四虎在线观看视频高清无码| 国产一级一级毛片永久| 一级香蕉视频在线观看| 国产精欧美一区二区三区| 亚洲人成在线免费观看| 美女国内精品自产拍在线播放| WWW丫丫国产成人精品| 久久亚洲高清国产| 亚洲天堂2014| 亚洲视频免| 国产精品私拍在线爆乳| 欧美成人怡春院在线激情| 任我操在线视频| 国产偷国产偷在线高清| 好久久免费视频高清| 国产一区二区免费播放| 中文字幕伦视频| 色偷偷一区| 丝袜国产一区| 亚洲免费成人网| jizz亚洲高清在线观看| 欧美a在线看| 国产啪在线| 成年片色大黄全免费网站久久| 无套av在线| 欧美日韩国产在线播放| 视频一本大道香蕉久在线播放 | 日韩精品一区二区三区大桥未久 | 鲁鲁鲁爽爽爽在线视频观看| 99久久精品国产自免费| 国产性精品| a国产精品| 国产99热| 色AV色 综合网站| 成年人国产视频| 国产乱子伦精品视频| 久久99蜜桃精品久久久久小说| 九九九精品视频| 国产色伊人| 91久草视频| 久久亚洲高清国产| 无码福利视频| 最近最新中文字幕免费的一页| 国产女人水多毛片18| 国内精品久久九九国产精品| 狠狠ⅴ日韩v欧美v天堂| 婷婷伊人久久| 精品视频在线观看你懂的一区| 爱色欧美亚洲综合图区| 亚洲精品中文字幕午夜| 黄色三级网站免费| 天天综合网亚洲网站| 国产成人久久综合一区| 91精品啪在线观看国产60岁| 免费国产一级 片内射老| 婷婷综合色| 欧美精品v欧洲精品| 国精品91人妻无码一区二区三区| 亚洲第一视频区| 亚洲成年网站在线观看| 日韩精品一区二区三区大桥未久| 国产精彩视频在线观看| 色135综合网| 亚洲综合亚洲国产尤物| 日本伊人色综合网| 99热6这里只有精品| 欧美激情第一欧美在线| 亚洲一区二区三区香蕉| 女人毛片a级大学毛片免费| 国外欧美一区另类中文字幕| 亚洲三级色| 熟妇人妻无乱码中文字幕真矢织江|