薛瑋翔
(廣東省水利電力勘測設(shè)計研究院,廣東廣州510635)
一種以VBA與SQL語言開發(fā)的軟件在水利電子檔案檢查錄入中的應(yīng)用
薛瑋翔
(廣東省水利電力勘測設(shè)計研究院,廣東廣州510635)
檔案技術(shù)正處于由紙質(zhì)管理轉(zhuǎn)向電子管理的過渡時期,大量的現(xiàn)存紙質(zhì)檔案通過手動打錄轉(zhuǎn)化為電子檔案無疑是一項繁瑣、易錯的工作量龐大的工作。而在檢查核驗與導(dǎo)入數(shù)據(jù)庫這兩個關(guān)鍵易錯步驟更是變得尤為困難。利用VBA與SQL語言開發(fā)出的輔助軟件,能很好地彌補相關(guān)輔助工具的缺失,提供自動生成檔號等信息,檢查核錯與批量導(dǎo)入數(shù)據(jù)庫等功能,使導(dǎo)入工作變得正確、簡潔且高效,可以大大提高電子檔案錄入的效率。
電子檔案;VBA;SQL;檢查核驗;批量錄入;正確高效
隨著數(shù)字檔案技術(shù)的日益發(fā)展與進步,水利系統(tǒng)檔案管理逐步由純紙質(zhì)檔案向“雙軌制”轉(zhuǎn)化,即由電子科技檔案與紙質(zhì)檔案并存管理。目前的電子科技檔案有兩種管理形式,即物理保存的文件載體和數(shù)字檔案管理系統(tǒng)存儲的網(wǎng)絡(luò)載體。
物理存儲的檔案文件條目多由表格制作,分行列舉檔案信息條目,并配以索引查詢相關(guān)資料文件。條目多由手工錄入。水利項目紙質(zhì)檔案由來已久,將紙質(zhì)檔案錄入是一個龐大而繁瑣的過程,且很難逐條檢查,所以檢查錄入信息的正確是一項困難的工作。數(shù)字檔案系統(tǒng)是由數(shù)據(jù)庫與前端組成的網(wǎng)絡(luò)載體。目前市場上所有的檔案管理軟件,都是采用Web技術(shù)開發(fā)的,通過前端頁面固定以單條錄入的方式導(dǎo)入檔案信息數(shù)據(jù)進入數(shù)據(jù)庫,并未提供檢查核驗、批量上傳的方式。因此,很多檔案管理部門只使用數(shù)字檔案存儲新增檔案信息,而大量的老舊檔案仍只通過紙質(zhì)檔案的方式登記保存。
通過手打電子化陳年累計的龐大的紙質(zhì)文檔,本身就難以避免錯打、漏打的情況。單純利用Excel導(dǎo)入數(shù)據(jù)庫,更面臨字段不匹配或某條目錯誤而失敗而中斷,且不會提示已錄入與未錄入的部分,極易造成數(shù)據(jù)庫混亂。所以,將大批量的現(xiàn)存檔案錄入的難度與所需時間更是高于前者。
1.1 電子檔案錄入工作現(xiàn)狀
目前,電子檔案的錄入工作大部分處于新工程直接電子化、老工程慢慢錄的模式,由于上述原因,陳年積累的紙質(zhì)檔案電子化的進度進展緩慢。廣東省水利電力勘測設(shè)計研究院(以下簡稱省院)正實施數(shù)字化檔案,將現(xiàn)存所有檔案全部錄入成電子科技檔案。
在電子檔案錄入的過程中,最容易造成錯誤、引發(fā)數(shù)據(jù)混亂的原因主要有兩個:一是由于工作量過于龐大,漏、錯輸?shù)膯栴}難以避免,尤其像檔號、工程類別、工程編號等,如果輸出錯誤,電子檔案系統(tǒng)就很難以此進行分類曬別,查詢也變得困難;二是錄入字段的格式與數(shù)據(jù)庫字段設(shè)置不符。如果沒有相關(guān)軟件進行銜接,直接錄入,容易造成錄入失敗,甚至造成數(shù)據(jù)庫混亂。
面對上述問題,一種基于Excel、VBA、SQLServer開發(fā)的檔案檢查錄入系統(tǒng)應(yīng)運而生,可極大地解決信息檢查問題,快速查出錯、漏內(nèi)容,檢查各字段格式,并且實現(xiàn)檔案批量上傳。
1.2 相關(guān)技術(shù)背景
VBA(Visual Basic for Applications)是VB的一門宏語言,應(yīng)用于Office工具中,可在表格間實行VB編程的功能。
結(jié)構(gòu)化查詢語言(Structured Query Language,以下簡稱SQL),是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng),允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。實際中,可以使用相同的SQL作為數(shù)據(jù)輸入與管理的接口。同時,SQL語句可以嵌套,這使它具有極大的靈活性和強大的功能。
結(jié)合VBA、SQL,可以開發(fā)接口軟件,實現(xiàn)檢查錄入與批量導(dǎo)入數(shù)據(jù)庫的功能。
2.1 軟件主要特點
數(shù)據(jù)庫是以字段為單元的一種表式結(jié)構(gòu),目前所有電子檔案系統(tǒng)都是以數(shù)據(jù)庫作為載體進行數(shù)據(jù)的存儲。但是數(shù)據(jù)庫難以直接寫入字段,而目前所有檔案管理系統(tǒng)無法實現(xiàn)批量錄入上傳功能,其提供的都是單條錄入的接口。Excel擁有批量記錄條目的功能,雖然SQL有上傳Excel入數(shù)據(jù)庫的簡易接口,但是條件非常苛刻,無法提供檢查,一旦出錯會半途中斷且無法提供已錄入的進度,極易造成數(shù)據(jù)庫混亂。根據(jù)省院原有工作經(jīng)驗,通過此方法上傳是費時費力且易錯的。
基于此種現(xiàn)狀,開發(fā)了一種銜接數(shù)據(jù)庫與Excel的生成檢查導(dǎo)入軟件。該軟件的主要特點有:銜接Excel與SQLServer,比對字段格式,確保字段匹配;按照檔案管理規(guī)范標(biāo)準(zhǔn),自動檢查字段內(nèi)容、格式,檢查錯、漏和未按標(biāo)準(zhǔn)錄入的內(nèi)容;自動生成主鍵和檔號等由其余字段內(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ǎo)入功能
(1)自動生成、檢查功能。檔案錄入人員通過軟件的讀取接口,將批量存放于Excel內(nèi)的檔案信息條目讀取到導(dǎo)入系統(tǒng)中。讀取操作界面,如圖2所示。
圖2 讀取操作界面
此時,系統(tǒng)會自動讀取該表格的數(shù)據(jù)。通過VBA代碼控制,系統(tǒng)進行的工作主要有:獲取當(dāng)前日期時間每條數(shù)據(jù)自動生成的一個與日期時間相關(guān)的記錄碼,用作數(shù)據(jù)庫表主鍵且便于以后查找;自動生成由其余字段內(nèi)容確認(rèn)的主要關(guān)鍵字段;根據(jù)相關(guān)標(biāo)準(zhǔn)規(guī)范、數(shù)據(jù)庫字段設(shè)計等要求,逐條逐字段檢查;顯示當(dāng)前處理進度信息。顯示讀取進度界面,如圖3所示。
圖3 顯示讀取進度界面
當(dāng)讀取結(jié)束時,會提示第一個檢查到的錯誤字段位置,并進入表格,如圖4所示。
圖4 顯示錯誤位置
此時,檔號已經(jīng)通過相應(yīng)字段由VBA代碼自動生成,且未按標(biāo)準(zhǔn)、缺漏字的格子會自動變?yōu)榧t色。每個字段均有按標(biāo)準(zhǔn)編制的字典數(shù)據(jù),與輸入數(shù)據(jù)進行比對檢查,確保字段內(nèi)容正確無誤。
之后,可對錯誤的格子進行修改,且會自動提示錯誤信息。通過操作面板的檢查按鈕,可自動跳轉(zhuǎn)到有錯誤的格子進行修改。修改時,亦會根據(jù)各字段規(guī)范進行檢查。當(dāng)格子內(nèi)數(shù)據(jù)無錯誤時,該格底色會變回為白色。當(dāng)全部錯誤都已被修正、無錯誤時點擊檢查按鈕會提示無錯信息。此外,在點擊數(shù)據(jù)庫操作界面前,也會進行一次錯誤檢查,無錯后方可打開數(shù)據(jù)庫操作界面。
(2)導(dǎo)入功能。打開數(shù)據(jù)庫操作界面,進入數(shù)據(jù)庫操作面板。數(shù)據(jù)庫錄入界面提供連接指定電子檔案數(shù)據(jù)庫功能,并且提供刪除和導(dǎo)入功能。檔案管理人員可選擇指定庫,根據(jù)已完成檢查的程序內(nèi)的數(shù)據(jù)進行導(dǎo)入或者刪除。導(dǎo)入與刪除或于某行失敗的結(jié)果會以提示信息的方式給出,如圖5—6所示。
圖5 數(shù)據(jù)庫操作界面查詢與匯總
軟件基于VBA與SQL開發(fā),主要分為導(dǎo)入檢查與數(shù)據(jù)庫操作兩大基本模塊。導(dǎo)入檢查模塊主要使用VBA實現(xiàn)。通過VB面向?qū)ο蟮奶攸c,把所需操作劃分為逐個對象。VBA繼承所有VB語言的功能,并提供對Excel格子數(shù)據(jù)作為對象的操作,使編輯窗體、通過代碼檢查操作格子內(nèi)容成為可能。由于VBA對于單元格操作機制優(yōu)化不足,對大數(shù)據(jù)處理需優(yōu)化算法,否則易造成時間與空間開銷溢出。在本系統(tǒng)中,檢查代碼也進行了多次算法優(yōu)化,最終得以實現(xiàn)。數(shù)據(jù)庫操作模塊主要使用VB與SQL實現(xiàn),通過編寫數(shù)據(jù)接口,完成Excel與電子檔案庫數(shù)據(jù)庫的對接。與SQL自帶的簡易接口相比,原接口過于簡易,使用條件苛刻,無異常處理能力,極易破壞數(shù)據(jù)。本軟件實現(xiàn)的接口更加安全、穩(wěn)定,定位性更強,可實際應(yīng)用于上傳操作。
水利檔案電子化是一個繁瑣且龐大的工作,VBA是門功能強大的拓展語言,充分利用好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—),男,助理工程師,主要從事水利電力信息自動化工作。