胡華彬
摘 要 隨著普通高校招生網(wǎng)上錄取信息系統(tǒng)的普遍使用,高校招生錄取人員和學(xué)籍管理人員必須解決如何匯總多達(dá)上百個錄取新生的投檔單文件(數(shù)據(jù)庫文件),以形成當(dāng)年錄取新生原始數(shù)據(jù)的問題。本文提供了一個用Access工具來完成這項匯總工作的切實(shí)可行的簡易方法。
關(guān)鍵詞 普通高校招生 錄取系統(tǒng) 數(shù)據(jù)文件 數(shù)據(jù)匯總
中圖分類號:TP315文獻(xiàn)標(biāo)識碼:A
近年來,計算機(jī)信息技術(shù)和網(wǎng)絡(luò)通信技術(shù)的發(fā)展推動了普通高校招生錄取方式的重大變革,使用普通高校招生網(wǎng)上錄取信息系統(tǒng)進(jìn)行網(wǎng)上遠(yuǎn)程錄取的方式已在全國高校招生工作中全面推廣運(yùn)用。各高校在錄取工作結(jié)束后,從招生網(wǎng)上下載新生錄取投檔單,作為當(dāng)年新生錄取的原始資料,為高校下一步的學(xué)籍管理和教學(xué)管理工作提供了基礎(chǔ)和依據(jù)。
然而,對高校來說,不但投檔單文件數(shù)目多至百個左右(按省別、文理科別、錄取類型別、批次別等各自成為一個單獨(dú)的投檔單文件),而且,存儲于投檔單文件中的許多字段信息為代碼形式(如性別、民族、政治面貌等),這給高校的投檔單數(shù)據(jù)處理造成了相當(dāng)?shù)墓ぷ髁亢屠щy。如果高校采取手工匯總投檔單文件的做法,面對上百個文件一個一個的插入,不但效率低,而且容易出現(xiàn)錯漏情況;而且,數(shù)據(jù)匯總后的代碼值需要轉(zhuǎn)換成為顯式數(shù)據(jù)才行。顯然,先匯總數(shù)據(jù),再進(jìn)行一次性轉(zhuǎn)換的效率要遠(yuǎn)遠(yuǎn)高于先一個一個轉(zhuǎn)換數(shù)據(jù)后再匯總數(shù)據(jù)的效率。為了提高匯總數(shù)據(jù)和轉(zhuǎn)換數(shù)據(jù)的效率和準(zhǔn)確度,我們不妨利用Microsoft office下的Access來完成。
1利用Access完成投檔單數(shù)據(jù)的匯總
1.1把所有投檔單文件導(dǎo)入Access數(shù)據(jù)庫文件
為了方便后面編寫一個小程序進(jìn)行自動匯總工作,我們把全部需要匯總的投檔單文件(dbf文件)先壓縮后解壓到同一個文件夾中,然后在文件夾窗口中做如下重命名工作:“編輯” --> “全選”-->“重命名”,輸入“tdd”后按回車鍵,這樣所有的投檔單文件就重新命名成如下的文件名:tdd(1).dbf,tdd(2) .dbf,tdd(3) .dbf……。最后,我們再把這些文件統(tǒng)一導(dǎo)入到我們事先建立好的一個空數(shù)據(jù)庫文件“投檔單匯總.mdb”中。
1.2設(shè)計匯總數(shù)據(jù)的窗體
我們在數(shù)據(jù)庫文件“投檔單匯總.mdb”中新建一個窗體,然后,在窗體中插入一個“按鈕”。鼠標(biāo)右鍵單擊“按鈕”,在彈出的快捷菜單中左鍵單擊選擇“事件生成器(B)…”,在“Microsoft Visual Basic”程序窗口中輸入如下代碼:
Private Sub Command0_Click ()
Dim strSql As String, y As String
Dim s As Integer, x As Integer, z As Integer
z = InputBox("請輸入累加的終值")
For x = 2 To z
s = x
If s < =z Then
y = "[tdd (" + LTrim(Str(s)) + ")]"
MsgBox "y:" & y
strSql = "insert into [tdd(1)]( KSH, ZKZH, XM, ZZMMDM, MZDM, KSLBDM, BYLBDM, ZXDM, ZXMC, DQDM, SFZH, JTDZ, YZBM, LXDH, KSTC, KSJLHCF, CJ, GKCJX01, GKCJX02, GKCJX03, GKCJX04 )SELECT KSH, ZKZH, XM, ZZMMDM, MZDM, KSLBDM, BYLBDM, ZXDM, ZXMC, DQDM, SFZH, JTDZ, YZBM, LXDH, KSTC, KSJLHCF, CJ, GKCJX01, GKCJX02, GKCJX03, GKCJX04? FROM " & y
MsgBox "strSql:" & strSql
DoCmd.RunSQL strSql? '運(yùn)行第一個更新語句
End If
Next
End Sub
最后保存窗體,匯總數(shù)據(jù)將保存在表文件tdd(1)中。
1.3打開窗體,進(jìn)行數(shù)據(jù)匯總
打開窗體,點(diǎn)擊按鈕,程序會提示“請輸入累加的終值”,這時我們只要輸入需要匯總的全部投檔單文件的個數(shù)即可,比如“99”。程序運(yùn)行過程中,我們需要響應(yīng)程序的交互請求,不斷點(diǎn)擊“確認(rèn)”按鈕,以監(jiān)控當(dāng)前正在插入的是哪一個表文件。當(dāng)遇到個別表中沒有以上字段時,需要在彈出的“輸入?yún)?shù)值”對話框中點(diǎn)“是”按鈕。
為了盡可能匯總各種招生類別的投檔單數(shù)據(jù)信息,我們需要熟悉全國各省各種招生類別投檔單中到底存儲著哪些信息,并將其納入?yún)R總表中。簡要來說,投檔單主要包括考生基本信息、報名信息、成績與志愿信息、體檢信息、錄取信息、附加信息等。
2利用Access完成投檔單數(shù)據(jù)轉(zhuǎn)換工作
在我們的匯總數(shù)據(jù)中,多個數(shù)據(jù)字段信息都以代碼形式存在,并不能直接用于后面的學(xué)籍管理和教學(xué)管理,必須做相應(yīng)的數(shù)據(jù)轉(zhuǎn)換工作。各類代碼表主要有政治面貌代碼表、省市代碼表、專業(yè)代碼表、民族代碼表、錄取批次代碼表、錄取類型代碼表、考生類別代碼表、計劃性質(zhì)代碼表、計劃屬性代碼表等。
首先,我們將這些代碼表全部導(dǎo)入到數(shù)據(jù)庫文件“投檔單匯總.mdb”中備用。
接著,我們設(shè)計轉(zhuǎn)換數(shù)據(jù)的窗體。下面以轉(zhuǎn)換政治面貌和民族信息為例,示范如何轉(zhuǎn)換數(shù)據(jù)的步驟。
我們在數(shù)據(jù)庫文件“投檔單匯總.mdb”中新建一個窗體,然后,在窗體中插入一個“按鈕”。鼠標(biāo)右鍵單擊“按鈕”,在彈出的快捷菜單中左鍵單擊選擇“事件生成器(B)…”,在“Microsoft Visual Basic”程序窗口中輸入如下代碼:
Private Sub Command0_Click()
Dim strSql1 As String, strSql2 As String
strSql1 = "UPDATE tdd(1) INNER JOIN dic_zzmm ON tdd(1).zzmmdm = dic_zzmm.zzmmdm SET tdd(1).zzmmmc = dic_zzmm!zzmmmc;"
MsgBox "strSql1:" & strSql1
DoCmd.RunSQL strSql1? '運(yùn)行第一個語句
strSql2 = "UPDATE tdd(1) INNER JOIN dic_mz ON tdd(1).mzdm = dic_mz.mzdm SET tdd(1).mzmc = dic_mz!mzmc;"
MsgBox "strSql2:" & strSql2
DoCmd.RunSQL strSql2? '運(yùn)行第二個語句
End Sub
最后,我們保存窗體,隨后運(yùn)行窗體,點(diǎn)擊按鈕運(yùn)行更新程序即可完成數(shù)據(jù)轉(zhuǎn)換。以上程序代碼中,我們只是給出了執(zhí)行政治面貌代碼和民族代碼轉(zhuǎn)換的示例,當(dāng)然在實(shí)際數(shù)據(jù)轉(zhuǎn)換過程中,我們應(yīng)將所有要轉(zhuǎn)換數(shù)據(jù)的更新語句都事先設(shè)計進(jìn)程序中。
3結(jié)束語
在我校實(shí)踐中,利用Access完成投檔單數(shù)據(jù)的匯總和數(shù)據(jù)轉(zhuǎn)換工作提高了工作效率和工作質(zhì)量,使得我校的整個投檔單數(shù)據(jù)的處理工作總能又好又快地完成。
但是,在處理過程也有一個問題有待完善。因為部分省份的高考科目設(shè)置不相同、考生類型不相同、錄取批次不相同等各種情況導(dǎo)致錄取投檔單數(shù)據(jù)表在結(jié)構(gòu)上本身就存在著較大差別,所以我們應(yīng)仔細(xì)研究清楚這些情況后,科學(xué)確定匯總表的數(shù)據(jù)字段結(jié)構(gòu),最終才能把數(shù)據(jù)正確、全面地導(dǎo)入?yún)R總表的相應(yīng)數(shù)據(jù)字段,盡量做到不遺漏或少遺漏考生的重要檔案信息,為做好隨后的學(xué)籍管理工作和教學(xué)管理工作打好基礎(chǔ)。