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

VB訪問Access數(shù)據(jù)庫的研究

2014-08-07 13:22:50陶佳琦翁正新
微型電腦應(yīng)用 2014年10期
關(guān)鍵詞:故障診斷數(shù)據(jù)庫故障

陶佳琦,翁正新

VB訪問Access數(shù)據(jù)庫的研究

陶佳琦,翁正新

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

VB;Access數(shù)據(jù)庫;地鐵列車

0 引言

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

1 數(shù)據(jù)庫及ADO對象簡介

1.1 數(shù)據(jù)庫的簡介

Microsoft Office Access是微軟把數(shù)據(jù)庫引擎的圖形用戶界面和軟件開發(fā)工具結(jié)合在一起的一個(gè)數(shù)據(jù)庫管理系統(tǒng)。Access數(shù)據(jù)庫具有存儲方式簡單,易于維護(hù)管理、界面友好,易操作、集成環(huán)境,處理多種數(shù)據(jù)信息等優(yōu)點(diǎn)[2~3]。地鐵列車故障診斷系統(tǒng)數(shù)據(jù)庫,如表1所示:

表1 地鐵列車故障診斷系統(tǒng)數(shù)據(jù)庫

案例表列車號;時(shí)間;故障類型;故障現(xiàn)象;故障原因;編號存儲列車發(fā)生過的故障案例 有診斷建議表 故障原因;排查順序;次數(shù) 程序運(yùn)行中存儲檢索的數(shù)據(jù) 無

數(shù)據(jù)庫構(gòu)建完成后,需在VB中采用合適的方式進(jìn)行數(shù)據(jù)訪問,VB作為一款強(qiáng)大的編程軟件,支持DAO、RDO、ADO等多種訪問數(shù)據(jù)庫的方式,比較分析后,本文采用ADO方式對數(shù)據(jù)庫進(jìn)行訪問。

1.2 ADO簡介

ADO(ActiveX Data Object)稱為ActiveX數(shù)據(jù)對象,是微軟公司開發(fā)數(shù)據(jù)庫應(yīng)用程序面向?qū)ο蟮男陆涌冢珹DO數(shù)據(jù)庫接口繼承了早期基于ODBC的DAO、RDO所使用的對象模型,并加以改進(jìn),包含了較少的對象、更多的屬性方法和事件。ADO有 7個(gè)對象:Command(命令)對象、Conection(連接)對象、Recorsdet(記錄集)對象、Parameter(參數(shù))對象、Field(域)對象、Error(錯(cuò)誤)對象和Property(屬性)對象,其中Conection對象主要用于應(yīng)用程序和數(shù)據(jù)源的連接;Command對象主要有執(zhí)行命令函數(shù)Execute等; Recordset對象主要包括記錄集移動(dòng)函數(shù)、記錄集打開及關(guān)閉函數(shù)、創(chuàng)建新記錄函數(shù)、刪除及更新函數(shù)等[4~6]。

2 VB訪問Access數(shù)據(jù)庫

2.1 設(shè)計(jì)原理

程序的原理設(shè)計(jì)如圖1所示:

圖1 原理設(shè)計(jì)圖

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

2.2 具體步驟

A. Connection對象連接數(shù)據(jù)庫

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

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

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

3) Set con = New ADODB.Connection

4) con.ConnectionString = str

5) con.Open

B. Recordset對象檢索數(shù)據(jù)

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

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

圖2 檢索結(jié)果

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

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

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

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

程序代碼如下:

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

02 in ('" & Combo1.Text & "') and 故障現(xiàn)象 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)“排查順序”字段

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

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

02 in ('" & Combo1.Text & "') and 故障現(xiàn)象 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)“次數(shù)”字段

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

每次檢索均需要重復(fù)打開記錄集、檢索數(shù)據(jù)、存入組合框、關(guān)閉記錄集這一過程,因此,在編程中采用For循環(huán)語句,通過將相應(yīng)的組合框項(xiàng)目數(shù)作為條件,將各個(gè)故障原因的“次數(shù)”存入組合框控件中。程序代碼如下:

01 For i = 0 To Combo3.ListCount -1

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

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

04 rs.Open sql, con, adOpenDynamic, adLockOptimistic

05 Combo4.AddItem (rs(0))

06 rs.Close

07 Next i

C. 診斷建議表轉(zhuǎn)存數(shù)據(jù)

為了使檢索得到的3個(gè)字段能同時(shí)在數(shù)據(jù)表格中顯示,需要將3個(gè)字段的數(shù)據(jù)同時(shí)轉(zhuǎn)存至Access的診斷建議表中,轉(zhuǎn)存結(jié)果,如圖4所示:

圖4 轉(zhuǎn)存結(jié)果

轉(zhuǎn)存流程如圖5所示:

圖5 轉(zhuǎn)存數(shù)據(jù)流程圖

整個(gè)過程通過For循環(huán)語句完成,利用Open()函數(shù)執(zhí)行相應(yīng)的Sql語句,通過記錄集的增加新記錄、更新記錄等操作將組合框中數(shù)據(jù)轉(zhuǎn)存至Access診斷建議表中。

相關(guān)代碼如下:

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. 數(shù)據(jù)表格控件顯示數(shù)據(jù)

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

圖6 顯示數(shù)據(jù)

程序代碼如下:

01 sql = " select * from 診斷建議 order by 次數(shù)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 總結(jié)

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

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

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

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

[4] 馮曉星,馬曉靜.VC基于ADO技術(shù)訪問Access數(shù)據(jù)庫[J].計(jì)算機(jī)與網(wǎng)絡(luò), 2013(8):54-56

[5] 賈保英.VB環(huán)境下ADO數(shù)據(jù)庫開發(fā)技術(shù)[J].中小企業(yè)管理與科技, 2013(24):286-287

[6] 衣文鳳,劉玫,王大鵬.Vb+Access在柴油機(jī)故障診斷系統(tǒng)界面記憶輸入中的程序設(shè)計(jì)[J]. 科技創(chuàng)新導(dǎo)報(bào), 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)

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

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

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

猜你喜歡
故障診斷數(shù)據(jù)庫故障
故障一點(diǎn)通
數(shù)據(jù)庫
奔馳R320車ABS、ESP故障燈異常點(diǎn)亮
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
因果圖定性分析法及其在故障診斷中的應(yīng)用
故障一點(diǎn)通
江淮車故障3例
基于LCD和排列熵的滾動(dòng)軸承故障診斷
主站蜘蛛池模板: 波多野结衣一区二区三区AV| 欧美中文字幕在线视频| 激情爆乳一区二区| 在线无码av一区二区三区| 四虎影视无码永久免费观看| 区国产精品搜索视频| 国产一级裸网站| 欧美日本一区二区三区免费| 国产在线欧美| 美女被操91视频| 亚洲精品爱草草视频在线| 国产一级裸网站| 日韩av高清无码一区二区三区| 亚洲码一区二区三区| 婷婷综合缴情亚洲五月伊| 91精品人妻一区二区| 国产精品 欧美激情 在线播放| 欧美日韩中文字幕二区三区| 久久www视频| 久久综合色播五月男人的天堂| 国产欧美成人不卡视频| 亚洲综合二区| 国产精品视频第一专区| 97在线国产视频| 在线观看国产精美视频| 欧美三级日韩三级| 999精品免费视频| 欧美激情二区三区| 一本大道香蕉久中文在线播放| 狠狠干欧美| 伊人久久婷婷| 亚洲国产精品人久久电影| 色欲不卡无码一区二区| 国产精品九九视频| 欧美人与动牲交a欧美精品| 国产主播在线观看| 亚洲精品国产精品乱码不卞| 91亚洲视频下载| 成人年鲁鲁在线观看视频| 成人欧美日韩| 在线观看无码a∨| 欧美一区二区精品久久久| 91国内在线视频| 国产h视频免费观看| 999精品视频在线| 国产精品毛片一区| 国产新AV天堂| 免费无码在线观看| 国产在线观看一区二区三区| 99久久免费精品特色大片| 国产精品香蕉在线| 国产日韩欧美一区二区三区在线| 999国内精品视频免费| 国产在线观看高清不卡| 毛片基地视频| 亚洲欧美在线综合一区二区三区| 国产精品va免费视频| 91青青草视频在线观看的| 99久久婷婷国产综合精| 欧美一区二区自偷自拍视频| 国产精品9| 亚洲女同欧美在线| 92午夜福利影院一区二区三区| 波多野结衣亚洲一区| 亚洲国产天堂在线观看| 欧美日韩在线成人| 国产自在线播放| 国产毛片片精品天天看视频| 中国国产一级毛片| 国产在线观看精品| 在线无码九区| 亚洲欧美不卡| 午夜电影在线观看国产1区| 国产精品亚洲一区二区三区z | 97se亚洲综合| 亚洲精品亚洲人成在线| 米奇精品一区二区三区| 亚洲天堂免费在线视频| 国内老司机精品视频在线播出| 欧美综合成人| 亚洲国产成人麻豆精品| 国产美女丝袜高潮|