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

Word文檔自動化生成技術(shù)初探

2010-04-12 11:43:22李汝光
關(guān)鍵詞:數(shù)據(jù)庫

□李汝光

( 鎮(zhèn)江高等專科學(xué)校,江蘇 鎮(zhèn)江 212003)

隨著社會信息化程度的提高,一些傳統(tǒng)的由手工完成的工作逐漸轉(zhuǎn)向由計算機來處理。本文提出了將存儲在Access2003數(shù)據(jù)庫中的數(shù)據(jù)自動生成特定格式的Word文檔的方法,提高了工作效率。針對上述問題,分三個方面來討論:Word對象模型、ADO技術(shù)連接Access2003數(shù)據(jù)庫、Visual Basic6.0引用Microsoft Office 11.0 Object library實現(xiàn)Word文檔生成。

一、Word對象模型

Word的任何元素(如文檔、表格、段落等)都可以用Visual Basic中的對象來代表。對象代表一個Word的元素,如文檔、段落或表格。一個Word文檔是由若干諸如段(Paragraph)、表(Table)等對象構(gòu)成,在Word的高級版本中,都提供了利用VBA來控制Word的方法。Word文檔中經(jīng)常操作的對象主要有以下一些:

Application:代表Word應(yīng)用程序。 ActiveDocument: 代表一篇活動文檔。

PageSetup:代表頁面設(shè)置描述。 Table:代表一個表格。

只要清楚了Word文檔中對象的層次關(guān)系以及相關(guān)的對象屬性,就可以非常方便的對Word文檔進(jìn)行控制。例如,要對一篇Word文檔進(jìn)行頁面設(shè)置,上、下、左、右頁邊距設(shè)置為2,紙張大小設(shè)置為16開,可以通過工具→宏→錄制新宏命令進(jìn)行錄制,錄制完畢打開工具→宏→Visual Basic編輯器,觀察上述操作的VBA腳本,如下所示。

With ActiveDocument.PageSetup ’當(dāng)前活動文檔的頁面設(shè)置

.TopMargin=CentimetersToPoints(2) ’當(dāng)前活動文檔的上頁邊距

.BottomMargin=CentimetersToPoints(2) ’當(dāng)前活動文檔的下頁邊距

.LeftMargin=CentimetersToPoints(2) ’當(dāng)前活動文檔的左頁邊距

.RightMargin=CentimetersToPoints(2) ’當(dāng)前活動文檔的右頁邊距

.PageWidth=CentimetersToPoints(18.4) ’紙張寬度

.PageHeight=CentimetersToPoints(26) ’紙張高度

End With

二、ADO技術(shù)連接Access2003數(shù)據(jù)庫

ADO(ActiveX Data Objects)稱為ActiveX數(shù)據(jù)對象,是Microsoft公司開發(fā)數(shù)據(jù)庫應(yīng)用程序面向?qū)ο蟮男陆涌冢珹DO技術(shù)已成為訪問數(shù)據(jù)庫應(yīng)用程序的核心。ADO是DAO/RDO的后繼產(chǎn)物,它擴展了DAO和RDO所使用的對象模型,具有更加簡單,更加靈活的操作性能。ADO在Internet方案中使用最少的網(wǎng)絡(luò)流量,并在前端和數(shù)據(jù)源之間使用最少的層數(shù),提供了輕量、高性能的數(shù)據(jù)訪問接口。下面簡要介紹使用ADO對象訪問Access2003數(shù)據(jù)庫。要能正確引用ADO數(shù)據(jù)對象,應(yīng)在Visual Basic集成開發(fā)環(huán)境中選擇“工程”菜單,再點擊“引用”菜單項,在彈出的“引用”對話框中選中“Microsoft ActiveX Data Objects 2.0 Library”或更高的版本選項來添加ADO數(shù)據(jù)對象類型庫。ADO對象模型中二個主要的對象為Connection對象和Recordset對象。

1.Connection對象

要建立數(shù)據(jù)庫連接,首先必須創(chuàng)建Connection對象實例。下述代碼創(chuàng)建Connection對象實例,并打開一個連接:

Dim ans1 As New adodb.Connection

ans1.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=數(shù)據(jù)庫文件路徑及文件名;Persist Security Info=False”

使用Connection對象的Close方法可以關(guān)閉與數(shù)據(jù)源的連接。

2. Recordset對象

要使用Recordset對象處理結(jié)果,首先必須創(chuàng)建Recordset對象實例。下述代碼創(chuàng)建Recordset對象實例,并打開Recordset對象:

Dim rst As New adodb.Recordset

rst.open “表文件”,conn,2,3,3

使用Close方法關(guān)閉Recordset對象。打開Recordset對象后,就可以讀取、插入、刪除和更新其中的記錄。這里就不贅述了。

三、Visual Basic6.0引用Microsoft Office 11.0 Object library實現(xiàn)Word文檔生成

在編寫《大學(xué)計算機信息技術(shù)習(xí)題集》一書中,習(xí)題量大,采用手工輸入習(xí)題,如果需要增加或刪除習(xí)題,則所有習(xí)題和答案的序號就要重新編號,費時費力。在實踐中采用VBA技術(shù)就可以實現(xiàn)習(xí)題的自動生成。為實現(xiàn)上述功能,首先要在Visual Basic6.0中分別引用Microsoft ActiveX Data Objects 2.0 Library”和“Microsoft Office 11.0 Object library”分別實現(xiàn)數(shù)據(jù)庫的連接和Word文檔的生成。下面具體說明:

《大學(xué)計算機信息技術(shù)習(xí)題集》分三種題型:是非題、單項選擇題、填空題。單項選擇題的關(guān)系模式為:選擇題(章節(jié)號,知識點,試題,選項A,選項B,選項C,選項D,答案,是否圖片,圖片位置)。編寫Visual Basic程序,首先建立和單項選擇題表的連接,具體代碼如下:

ans1.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:試題庫建設(shè)db2.mdb;Persist Security Info=False” ’Data Source指數(shù)據(jù)庫的路徑和文件名

sq = “select 章節(jié)號,知識點,試題,選項A,選項B,選項C,選項D,是否圖片,圖片位置 from 選擇題” & “ where left(章節(jié)號,1)=‘1’ order by 章節(jié)號,知識點, 試題”

rst1.Open sq, ans1, adOpenDynamic, adLockBatchOptimistic

rst1.MoveFirst ’記錄移到第一條記錄

上述代碼把選擇題按章節(jié)號分章節(jié)編排,每章再按知識點、內(nèi)容有序編排,方便學(xué)生學(xué)習(xí)。試題的增、刪、改在數(shù)據(jù)庫中進(jìn)行,編號可以自動重新編號,方便快捷。下面通過實例演示W(wǎng)ord文檔自動生成技術(shù):

Set wdapp=CreateObject(“word.application”)’創(chuàng)建一個Word應(yīng)用程序?qū)ο髮嵗?/p>

Set wddoc=wdapp.Documents.Add ’創(chuàng)建一個Word文檔對象實例

創(chuàng)建好Word文檔對象實例后,下面的工作就是把表中的記錄導(dǎo)出成Word文檔,代碼如下:

With wdapp

i = 1 ’設(shè)置自動編號的初始值

Do While Not rst1.EOF() ’遍歷記錄集中的所有記錄

.Selection.TypeText Trim(Str(i)) +“、”+ Trim(rst1.Fields(2).Value) ’輸出試題

.Selection.TypeParagraph

.Selection.TypeText “A、”+ Trim(rst1.Fields(3).Value) ’輸出選項A

.Selection.TypeParagraph

選項B、C、D代碼同選項A

rst1.MoveNext ’下移一條記錄

i = i + 1 ’設(shè)置自動編號自動加1

Loop

習(xí)題的答案也可以自動生成,下面的代碼演示用Word表格自動生成答案。具體代碼如下:

sq =“select 章節(jié)號,知識點,試題,答案 from 選擇題”&“where left(章節(jié)號,1)=‘1’order by 章節(jié)號, 知識點,試題” ’習(xí)題答案的記錄集代碼答案的輸出采用每行10個答案,具體代碼如下:

Do While Not rst.EOF()

.Selection.TypeText Trim(CStr(i)) ’輸出試題編號

.Selection.MoveDown Unit:=wdLine, Count:=1 ’光標(biāo)下移一行

.Selection.TypeText Trim(rst.Fields(3).Value) ’輸出試題答案

If i Mod 10 <> 0 Then

.Selection.MoveUp Unit:=wdLine, Count:=1 ’光標(biāo)上移一行

.Selection.MoveRight Unit:=wdCharacter, Count:=Len(Trim(CStr(i))) 光標(biāo)右移編號指定的字符個數(shù)

Else '如果一行10個答案輸完,光標(biāo)要移到下一行的第一個單元格

.Selection.MoveDown Unit:=wdLine, Count:=1 ’光標(biāo)下移一行

.Selection.MoveLeft Unit:=wdCharacter, Count:=9 ’光標(biāo)左移到行首

End If

i = i + 1

rst.MoveNext

Loop

其它諸如插入頁碼、保存、打印的方法可通過錄制宏,再到Visual Basic編輯器里粘貼相應(yīng)的代碼即可。

以上示例只是簡單的介紹了用Visual Basic控制生成Word文檔的方法,將Office文檔的對象關(guān)系及屬性搞清楚之后,可以非常方便地讀取或設(shè)置Office文檔中的所有對象的內(nèi)容。不僅可以對Word進(jìn)行程序控制, Office系統(tǒng)中的其它軟件都可以用類似的方法進(jìn)行控制,實現(xiàn)Excel自動化,PowerPoint自動化等。本例只要加上隨機化算法亦可以實現(xiàn)試卷的自動生成。

參考文獻(xiàn):

[1]孫建國,牛又奇.新編Visual Basic程序設(shè)計教程[M].蘇州:蘇州大學(xué)出版社,2002.

[2]王克剛,齊軍.Word文檔的程序控制[J].安康師專學(xué)報,2002,(2).

[3]龔沛曾,陸慰民,楊志強.Visual Basic程序設(shè)計教程(6.0版)[M].北京:高等教育出版社,2003.

[4]李汝光,江衛(wèi)星,黃力明.大學(xué)計算機信息技術(shù)習(xí)題集[M].南京:南京大學(xué)出版社,2010.

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
數(shù)據(jù)庫
財經(jīng)(2015年3期)2015-06-09 17:41:31
數(shù)據(jù)庫
財經(jīng)(2014年21期)2014-08-18 01:50:18
數(shù)據(jù)庫
財經(jīng)(2014年6期)2014-03-12 08:28:19
數(shù)據(jù)庫
財經(jīng)(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 视频二区亚洲精品| 亚洲IV视频免费在线光看| 国产成人无码久久久久毛片| 午夜精品影院| 亚洲成人动漫在线观看| 欧美激情福利| 欧美、日韩、国产综合一区| 成人毛片免费在线观看| 乱色熟女综合一区二区| 国产精品人人做人人爽人人添| 久久精品免费看一| 久久国产成人精品国产成人亚洲| 天天综合色天天综合网| 日本高清免费一本在线观看| 人妻91无码色偷偷色噜噜噜| 丁香婷婷激情综合激情| 国产无码制服丝袜| 亚洲侵犯无码网址在线观看| 色网站免费在线观看| 91久久精品国产| 久久青草免费91观看| 成AV人片一区二区三区久久| 欧美亚洲香蕉| 国产精品七七在线播放| 精品国产欧美精品v| 天堂亚洲网| 亚洲精品无码成人片在线观看| 在线播放国产一区| 欧美激情,国产精品| 一区二区三区四区在线| 一本大道视频精品人妻| 中文字幕亚洲综久久2021| 国产在线小视频| 久久亚洲国产一区二区| 国产精品国产三级国产专业不| 草草影院国产第一页| 久久精品娱乐亚洲领先| 四虎精品黑人视频| 二级特黄绝大片免费视频大片| 国产日韩精品欧美一区灰| 91免费精品国偷自产在线在线| 四虎影视库国产精品一区| 999国内精品视频免费| 国产色伊人| 亚洲精品少妇熟女| 亚洲女同一区二区| 久久久久国产一级毛片高清板| 欧美色视频网站| 久久亚洲天堂| 亚洲综合片| 亚洲天堂日韩av电影| 亚洲嫩模喷白浆| 无码中文字幕乱码免费2| 久久久精品无码一区二区三区| 伊人久久精品无码麻豆精品| 欧美午夜视频| 亚洲无码视频一区二区三区 | 亚洲无码四虎黄色网站| 欧美天堂久久| 热久久这里是精品6免费观看| 日韩精品免费一线在线观看| 国国产a国产片免费麻豆| 久久久黄色片| 五月婷婷综合色| 久996视频精品免费观看| 人妻中文久热无码丝袜| 九九热视频精品在线| 午夜日b视频| 亚洲综合亚洲国产尤物| 成人一区在线| 日本久久网站| 欧美激情第一欧美在线| 午夜福利网址| 亚洲精品国产成人7777| V一区无码内射国产| 成人亚洲天堂| 人妻一区二区三区无码精品一区 | 色综合激情网| 99视频有精品视频免费观看| 东京热高清无码精品| 午夜精品久久久久久久99热下载| 制服丝袜一区二区三区在线|