国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用Access和VBA編程實(shí)現(xiàn)醫(yī)保變更業(yè)務(wù)中Word表格模板的批量打印

2018-12-07 05:23閆婷婷
海峽科技與產(chǎn)業(yè) 2018年9期
關(guān)鍵詞:工號(hào)對(duì)照表字段

閆婷婷

吉林師范大學(xué), 吉林 四平 136000

1 實(shí)現(xiàn)功能

通過Access窗口進(jìn)行交互式信息選擇、錄入及外部數(shù)據(jù)導(dǎo)入,輸入工號(hào),根據(jù)人員所屬不同類型賬號(hào)直接讀取關(guān)聯(lián)信息,實(shí)現(xiàn)了自動(dòng)選擇人員賬號(hào)、變更類型、自動(dòng)輸入基礎(chǔ)信息的自動(dòng)填寫功能;重新填寫可通過清空記錄按鈕實(shí)現(xiàn)一鍵清除已填寫信息的功能,最終實(shí)現(xiàn)將所有停退保人員信息批量寫入新的Word表格模板,并根據(jù)記錄數(shù)量實(shí)現(xiàn)自動(dòng)分頁存儲(chǔ)、打印預(yù)覽(打?。┕δ堋?/p>

2 實(shí)現(xiàn)方法

首先新建一個(gè)名為DbTChange.mdb的Access數(shù)據(jù)庫,并將“空白模板.doc”和數(shù)據(jù)庫DbTChange.mdb放到同一個(gè)目錄下。在庫中創(chuàng)建停退保信息表、停退保類型表、BN工號(hào)_醫(yī)保編號(hào)對(duì)照表和BW工號(hào)_醫(yī)保編號(hào)對(duì)照表,共4個(gè)表。停退保信息表是依據(jù)Word模板所需的字段信息來設(shè)計(jì)表的結(jié)構(gòu),每一個(gè)進(jìn)行變更的人員相關(guān)信息最后都存在這個(gè)表中。停退保類型表僅僅用來存儲(chǔ)一列有效信息,將用于存儲(chǔ)所有停退保類型,此表用于組合框值列表,應(yīng)用于數(shù)據(jù)錄入時(shí)的類型選擇,避免了手工輸入的麻煩[1]。BN工號(hào)-醫(yī)保編號(hào)對(duì)照表和BW工號(hào)-醫(yī)保編號(hào)對(duì)照表為兩種不同類型人員的基本信息和醫(yī)保信息關(guān)聯(lián)對(duì)照表,兩張表結(jié)構(gòu)完全相同,在實(shí)際應(yīng)用中可根據(jù)人員情況進(jìn)行相應(yīng)修改,這兩張表用于人員信息自動(dòng)錄入,即在信息錄入窗口輸入工號(hào)后回車,即可將醫(yī)保編號(hào)和姓名關(guān)聯(lián)取出寫入窗口,既節(jié)省時(shí)間又準(zhǔn)確無誤。另外,根據(jù)情況不同,可分別對(duì)兩張表格的字段進(jìn)行擴(kuò)充。

2.1 新增停退保人員信息記錄

根據(jù)具體情況,可以選擇通過外部數(shù)據(jù)導(dǎo)入,即將Excel導(dǎo)入Access中,也可以在Access窗體上通過文本錄入,將停退保人員信息錄入。在這個(gè)過程中,人員類型和變更類型都是通過組合框的應(yīng)用和設(shè)置來實(shí)現(xiàn)自動(dòng)填充的,添加成功后在子窗體中實(shí)時(shí)顯示查看[2]。

2.2 批量信息生成模板打印

傳統(tǒng)的方式主要是基于書簽、Word郵件合并以及插入域的方式,來實(shí)現(xiàn)將Excel或Access數(shù)據(jù)庫表中的內(nèi)容逐條按字段寫入Word模板,但僅針對(duì)每一條記錄多個(gè)字段寫入一個(gè)模板,也有通過跨數(shù)據(jù)表或數(shù)據(jù)庫聯(lián)合查詢的,但無一例外都是一條記錄的N個(gè)字段對(duì)應(yīng)Word模板,多條數(shù)據(jù)循環(huán)生成多個(gè)模板文檔。針對(duì)向一個(gè)表格模板中導(dǎo)入多條數(shù)據(jù)多個(gè)字段,并根據(jù)表格模板容量自動(dòng)分頁生成新文檔的情況并沒有相關(guān)案例,本文對(duì)這種情況的模板套打提出了解決辦法并得以實(shí)現(xiàn)。

首先要?jiǎng)?chuàng)建一個(gè)基于Word表格模板的文檔,新建數(shù)據(jù)記錄集用于獲取待處理的所有記錄,然后將記錄集內(nèi)容按字段賦值給Word表格單元格,并根據(jù)記錄數(shù)循環(huán)分頁,最后實(shí)現(xiàn)打印預(yù)覽功能。如需要直接打印,可將代碼doc.PrintPreview改為doc.Print即可。

Private Sub CmdSave_Click()

......

MyPath=CurrentProject.Path

Set rs=CurrentDb.OpenRecordset("停退保信息表")

rs.MoveLast

rs.MoveFirst

lr=rs.RecordCount

maxRs=9

p=countPage(lr,maxRs)

m=0

For I=1 To p

Set mydoc=doc.Documents.Add(MyPath&"空白模板.doc")

doc.Visible=False

Set Ttable=doc.ActiveDocument.Tables(1)

For j=1 To maxRs

If rs.EOF Then Exit Sub

Ttable.Cell(j+1,2).Range.Text=rs.Fields.Item(1)&""

......

Ttable.Cell(j+1,8).Range.Text=rs.Fields.Item(7)&""

doc.PrintPreview

rs.MoveNext

Next

m=m+1

mydoc.SaveAs MyPath&"醫(yī)療保險(xiǎn)參保人員停保、退保變更登記表"&m&".doc"

Next

End Sub

以上代碼中記錄集rs和doc.ActiveDocument.Tables(1)的應(yīng)用至關(guān)重要,其中的rs.fields.item(i)理解為將數(shù)據(jù)表中的內(nèi)容放入記錄集后,i相當(dāng)于字段列所處序號(hào),然后通過rs.MoveNext實(shí)現(xiàn)數(shù)據(jù)行的變更;舍棄常用的書簽bookmark,直接采用Ttable.Cell(j+1,2).Range.Text來向模板的Word表格指定單元格中寫入內(nèi)容,這里的Cell()函數(shù)使用上需要特別注意,起點(diǎn)是從0開始而不是1。將mydoc.SaveAs MyPath&"醫(yī)療保險(xiǎn)參保人員停保、退保變更登記表"&m&".doc"這段代碼放入循環(huán),實(shí)現(xiàn)新建Word文檔的重新命名和保存。

2.3 計(jì)算頁數(shù)函數(shù)

我們將頁碼計(jì)算單獨(dú)放在一個(gè)函數(shù)中,這樣提高了代碼的可移植性和效率,當(dāng)模板發(fā)生變更時(shí),此功能無需修改依然可用。利用記錄總數(shù)和模板的最多容納記錄數(shù)來計(jì)算總的頁數(shù),需要注意在獲取記錄總數(shù)lr前要先把記錄集的位置移到最后,否則將得不到記錄總數(shù)。

2.4 自動(dòng)匹配不同賬套人員信息

利用組合框來實(shí)現(xiàn)職工類型選擇,組合框的值設(shè)為BN工號(hào)-醫(yī)保編號(hào)對(duì)照表和BW工號(hào)-醫(yī)保編號(hào)對(duì)照表,即存放不同賬號(hào)類型人員信息的數(shù)據(jù)庫表名,輸入工號(hào)以后程序自動(dòng)匹配姓名和醫(yī)保編號(hào)。

綜上,根據(jù)固定模板填充數(shù)據(jù)的工作,一旦業(yè)務(wù)量大,信息來源多,純手工粘貼復(fù)制,或者單純的引用函數(shù)就無法滿足工作需求。文章采用記錄集循環(huán)、分頁判斷、Word表格Cell()用法解決了使用書簽、郵件合并以及域方式實(shí)現(xiàn)模板套打無法滿足多條記錄分頁填充批量打印的問題,適應(yīng)不同信息源和打印模板,簡便靈活。

猜你喜歡
工號(hào)對(duì)照表字段
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
2019年成考院校招生簡章審核對(duì)照表
基于J2EE公司員工信息管理系統(tǒng)設(shè)計(jì)
ISO?9001:2015與ISO?9001:2008之間的對(duì)照表
圖說
CNMARC304字段和314字段責(zé)任附注方式解析
提高安全意識(shí)保護(hù)好自己
無正題名文獻(xiàn)著錄方法評(píng)述
關(guān)于CNMARC的3--字段改革的必要性與可行性研究
本刊常用符號(hào)對(duì)照表