薛瑋翔
(廣東省水利電力勘測設(shè)計(jì)研究院,廣東廣州510635)
一種以VBA與SQL語言開發(fā)的軟件在水利電子檔案檢查錄入中的應(yīng)用
薛瑋翔
(廣東省水利電力勘測設(shè)計(jì)研究院,廣東廣州510635)
檔案技術(shù)正處于由紙質(zhì)管理轉(zhuǎn)向電子管理的過渡時(shí)期,大量的現(xiàn)存紙質(zhì)檔案通過手動(dòng)打錄轉(zhuǎn)化為電子檔案無疑是一項(xiàng)繁瑣、易錯(cuò)的工作量龐大的工作。而在檢查核驗(yàn)與導(dǎo)入數(shù)據(jù)庫這兩個(gè)關(guān)鍵易錯(cuò)步驟更是變得尤為困難。利用VBA與SQL語言開發(fā)出的輔助軟件,能很好地彌補(bǔ)相關(guān)輔助工具的缺失,提供自動(dòng)生成檔號(hào)等信息,檢查核錯(cuò)與批量導(dǎo)入數(shù)據(jù)庫等功能,使導(dǎo)入工作變得正確、簡潔且高效,可以大大提高電子檔案錄入的效率。
電子檔案;VBA;SQL;檢查核驗(yàn);批量錄入;正確高效
隨著數(shù)字檔案技術(shù)的日益發(fā)展與進(jìn)步,水利系統(tǒng)檔案管理逐步由純紙質(zhì)檔案向“雙軌制”轉(zhuǎn)化,即由電子科技檔案與紙質(zhì)檔案并存管理。目前的電子科技檔案有兩種管理形式,即物理保存的文件載體和數(shù)字檔案管理系統(tǒng)存儲(chǔ)的網(wǎng)絡(luò)載體。
物理存儲(chǔ)的檔案文件條目多由表格制作,分行列舉檔案信息條目,并配以索引查詢相關(guān)資料文件。條目多由手工錄入。水利項(xiàng)目紙質(zhì)檔案由來已久,將紙質(zhì)檔案錄入是一個(gè)龐大而繁瑣的過程,且很難逐條檢查,所以檢查錄入信息的正確是一項(xiàng)困難的工作。數(shù)字檔案系統(tǒng)是由數(shù)據(jù)庫與前端組成的網(wǎng)絡(luò)載體。目前市場上所有的檔案管理軟件,都是采用Web技術(shù)開發(fā)的,通過前端頁面固定以單條錄入的方式導(dǎo)入檔案信息數(shù)據(jù)進(jìn)入數(shù)據(jù)庫,并未提供檢查核驗(yàn)、批量上傳的方式。因此,很多檔案管理部門只使用數(shù)字檔案存儲(chǔ)新增檔案信息,而大量的老舊檔案仍只通過紙質(zhì)檔案的方式登記保存。
通過手打電子化陳年累計(jì)的龐大的紙質(zhì)文檔,本身就難以避免錯(cuò)打、漏打的情況。單純利用Excel導(dǎo)入數(shù)據(jù)庫,更面臨字段不匹配或某條目錯(cuò)誤而失敗而中斷,且不會(huì)提示已錄入與未錄入的部分,極易造成數(shù)據(jù)庫混亂。所以,將大批量的現(xiàn)存檔案錄入的難度與所需時(shí)間更是高于前者。
1.1 電子檔案錄入工作現(xiàn)狀
目前,電子檔案的錄入工作大部分處于新工程直接電子化、老工程慢慢錄的模式,由于上述原因,陳年積累的紙質(zhì)檔案電子化的進(jìn)度進(jìn)展緩慢。廣東省水利電力勘測設(shè)計(jì)研究院(以下簡稱省院)正實(shí)施數(shù)字化檔案,將現(xiàn)存所有檔案全部錄入成電子科技檔案。
在電子檔案錄入的過程中,最容易造成錯(cuò)誤、引發(fā)數(shù)據(jù)混亂的原因主要有兩個(gè):一是由于工作量過于龐大,漏、錯(cuò)輸?shù)膯栴}難以避免,尤其像檔號(hào)、工程類別、工程編號(hào)等,如果輸出錯(cuò)誤,電子檔案系統(tǒng)就很難以此進(jìn)行分類曬別,查詢也變得困難;二是錄入字段的格式與數(shù)據(jù)庫字段設(shè)置不符。如果沒有相關(guān)軟件進(jìn)行銜接,直接錄入,容易造成錄入失敗,甚至造成數(shù)據(jù)庫混亂。
面對(duì)上述問題,一種基于Excel、VBA、SQLServer開發(fā)的檔案檢查錄入系統(tǒng)應(yīng)運(yùn)而生,可極大地解決信息檢查問題,快速查出錯(cuò)、漏內(nèi)容,檢查各字段格式,并且實(shí)現(xiàn)檔案批量上傳。
1.2 相關(guān)技術(shù)背景
VBA(Visual Basic for Applications)是VB的一門宏語言,應(yīng)用于Office工具中,可在表格間實(shí)行VB編程的功能。
結(jié)構(gòu)化查詢語言(Structured Query Language,以下簡稱SQL),是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng),允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。實(shí)際中,可以使用相同的SQL作為數(shù)據(jù)輸入與管理的接口。同時(shí),SQL語句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能。
結(jié)合VBA、SQL,可以開發(fā)接口軟件,實(shí)現(xiàn)檢查錄入與批量導(dǎo)入數(shù)據(jù)庫的功能。
2.1 軟件主要特點(diǎn)
數(shù)據(jù)庫是以字段為單元的一種表式結(jié)構(gòu),目前所有電子檔案系統(tǒng)都是以數(shù)據(jù)庫作為載體進(jìn)行數(shù)據(jù)的存儲(chǔ)。但是數(shù)據(jù)庫難以直接寫入字段,而目前所有檔案管理系統(tǒng)無法實(shí)現(xiàn)批量錄入上傳功能,其提供的都是單條錄入的接口。Excel擁有批量記錄條目的功能,雖然SQL有上傳Excel入數(shù)據(jù)庫的簡易接口,但是條件非??量?,無法提供檢查,一旦出錯(cuò)會(huì)半途中斷且無法提供已錄入的進(jìn)度,極易造成數(shù)據(jù)庫混亂。根據(jù)省院原有工作經(jīng)驗(yàn),通過此方法上傳是費(fèi)時(shí)費(fèi)力且易錯(cuò)的。
基于此種現(xiàn)狀,開發(fā)了一種銜接數(shù)據(jù)庫與Excel的生成檢查導(dǎo)入軟件。該軟件的主要特點(diǎn)有:銜接Excel與SQLServer,比對(duì)字段格式,確保字段匹配;按照檔案管理規(guī)范標(biāo)準(zhǔn),自動(dòng)檢查字段內(nèi)容、格式,檢查錯(cuò)、漏和未按標(biāo)準(zhǔn)錄入的內(nèi)容;自動(dòng)生成主鍵和檔號(hào)等由其余字段內(nèi)容確認(rèn)的主要關(guān)鍵字段,確保主要字段正確性;摒棄原有的簡易接口,通過VBA與SQL重寫完整的端口,逐行上傳跟蹤,記錄已上傳行數(shù),確保上傳正確完成,并提供數(shù)據(jù)庫檢索和刪除等新功能。檔案數(shù)據(jù)檢查導(dǎo)入系統(tǒng)流程,如圖1所示。

圖1 檔案數(shù)據(jù)檢查導(dǎo)入系統(tǒng)流程
2.2 軟件自動(dòng)生成、檢查與導(dǎo)入功能
(1)自動(dòng)生成、檢查功能。檔案錄入人員通過軟件的讀取接口,將批量存放于Excel內(nèi)的檔案信息條目讀取到導(dǎo)入系統(tǒng)中。讀取操作界面,如圖2所示。

圖2 讀取操作界面
此時(shí),系統(tǒng)會(huì)自動(dòng)讀取該表格的數(shù)據(jù)。通過VBA代碼控制,系統(tǒng)進(jìn)行的工作主要有:獲取當(dāng)前日期時(shí)間每條數(shù)據(jù)自動(dòng)生成的一個(gè)與日期時(shí)間相關(guān)的記錄碼,用作數(shù)據(jù)庫表主鍵且便于以后查找;自動(dòng)生成由其余字段內(nèi)容確認(rèn)的主要關(guān)鍵字段;根據(jù)相關(guān)標(biāo)準(zhǔn)規(guī)范、數(shù)據(jù)庫字段設(shè)計(jì)等要求,逐條逐字段檢查;顯示當(dāng)前處理進(jìn)度信息。顯示讀取進(jìn)度界面,如圖3所示。

圖3 顯示讀取進(jìn)度界面
當(dāng)讀取結(jié)束時(shí),會(huì)提示第一個(gè)檢查到的錯(cuò)誤字段位置,并進(jìn)入表格,如圖4所示。

圖4 顯示錯(cuò)誤位置
此時(shí),檔號(hào)已經(jīng)通過相應(yīng)字段由VBA代碼自動(dòng)生成,且未按標(biāo)準(zhǔn)、缺漏字的格子會(huì)自動(dòng)變?yōu)榧t色。每個(gè)字段均有按標(biāo)準(zhǔn)編制的字典數(shù)據(jù),與輸入數(shù)據(jù)進(jìn)行比對(duì)檢查,確保字段內(nèi)容正確無誤。
之后,可對(duì)錯(cuò)誤的格子進(jìn)行修改,且會(huì)自動(dòng)提示錯(cuò)誤信息。通過操作面板的檢查按鈕,可自動(dòng)跳轉(zhuǎn)到有錯(cuò)誤的格子進(jìn)行修改。修改時(shí),亦會(huì)根據(jù)各字段規(guī)范進(jìn)行檢查。當(dāng)格子內(nèi)數(shù)據(jù)無錯(cuò)誤時(shí),該格底色會(huì)變回為白色。當(dāng)全部錯(cuò)誤都已被修正、無錯(cuò)誤時(shí)點(diǎn)擊檢查按鈕會(huì)提示無錯(cuò)信息。此外,在點(diǎn)擊數(shù)據(jù)庫操作界面前,也會(huì)進(jìn)行一次錯(cuò)誤檢查,無錯(cuò)后方可打開數(shù)據(jù)庫操作界面。
(2)導(dǎo)入功能。打開數(shù)據(jù)庫操作界面,進(jìn)入數(shù)據(jù)庫操作面板。數(shù)據(jù)庫錄入界面提供連接指定電子檔案數(shù)據(jù)庫功能,并且提供刪除和導(dǎo)入功能。檔案管理人員可選擇指定庫,根據(jù)已完成檢查的程序內(nèi)的數(shù)據(jù)進(jìn)行導(dǎo)入或者刪除。導(dǎo)入與刪除或于某行失敗的結(jié)果會(huì)以提示信息的方式給出,如圖5—6所示。

圖5 數(shù)據(jù)庫操作界面查詢與匯總
軟件基于VBA與SQL開發(fā),主要分為導(dǎo)入檢查與數(shù)據(jù)庫操作兩大基本模塊。導(dǎo)入檢查模塊主要使用VBA實(shí)現(xiàn)。通過VB面向?qū)ο蟮奶攸c(diǎn),把所需操作劃分為逐個(gè)對(duì)象。VBA繼承所有VB語言的功能,并提供對(duì)Excel格子數(shù)據(jù)作為對(duì)象的操作,使編輯窗體、通過代碼檢查操作格子內(nèi)容成為可能。由于VBA對(duì)于單元格操作機(jī)制優(yōu)化不足,對(duì)大數(shù)據(jù)處理需優(yōu)化算法,否則易造成時(shí)間與空間開銷溢出。在本系統(tǒng)中,檢查代碼也進(jìn)行了多次算法優(yōu)化,最終得以實(shí)現(xiàn)。數(shù)據(jù)庫操作模塊主要使用VB與SQL實(shí)現(xiàn),通過編寫數(shù)據(jù)接口,完成Excel與電子檔案庫數(shù)據(jù)庫的對(duì)接。與SQL自帶的簡易接口相比,原接口過于簡易,使用條件苛刻,無異常處理能力,極易破壞數(shù)據(jù)。本軟件實(shí)現(xiàn)的接口更加安全、穩(wěn)定,定位性更強(qiáng),可實(shí)際應(yīng)用于上傳操作。
水利檔案電子化是一個(gè)繁瑣且龐大的工作,VBA是門功能強(qiáng)大的拓展語言,充分利用好VBA在Office軟件中的功能,可以開發(fā)拓展出更多適用于批量數(shù)據(jù)處理的輔助工作軟件。
TV:G270.73
:B
:1004-7328(2017)01-0061-03
10.3969/j.issn.1004-7328.2017.01.019
2016—11—13
薛瑋翔(1991—),男,助理工程師,主要從事水利電力信息自動(dòng)化工作。