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

基于MFC與Access的Word報表的設計與實現

2015-02-10 17:08:46邵英安

邵英安

摘要:本文介紹了在VC++中利用Access數據庫,讀取數據并且調用VBA對象來制作復雜Word報表的方法,以及通過具體一個動態復雜報表實例給出了詳細設計的實現過程。

關鍵詞:VC++ Access VBA 報表

0 引言

Visual C++作為一種可視化編程平臺,其一,代碼框架自動生成,用戶交互強,可開發多種領域的應用程序,并支持數據庫接口ODBC,以及OLEDB、ADO數據庫訪問等,直接調用底層的驅動程序對各種主流數據庫進行訪問,進而在一定程度上提高編程效率。其二,VC++提供了ADO和OLE技術,并為開發者提供了系統控件及第三方控件,從而實現程序的模塊化。其中ADO是數據庫程序開發接口,主要通過數據訪問層OLE DB Provider提供的COM接口訪問數據,優化了數據訪問的過程,增加了數據訪問的靈活性,是數據庫主流的數據訪問接口,加大了簡化程序開發難度。VBA是通用的宏語言,其具有方便靈活高效的特點,并且可被所有的Microsoft 可編程應用軟件如Visual C++所共享,即多種應用程序使用統一的標準宏語言,極大地提高了編程人員在編程和源代碼上調試的工作量,提高了工作效率,增強了各種應用軟件之間的協調開發和調用能力。

1 實驗平臺搭建

1.1 初始化ADO環境:創建一個MFC的一個工程,導入ADO動態鏈接庫在stdafx.h文件

#import "C:/Program Files/Common Files/System/ado/msado15.dll"no_namespace rename("EOF", "adoEOF")rename("BOF", "adoBOF")然后,并在應用程序對象類的成員函數中BOOL CXXApp::InitInstance()中::CoInitialize(NULL); //以單線程的方式初始化COM對象。

1.2 聲明三個接口,根據數據類型來創建三個智能指針對象,分為指向:連接對象(Connection)、命令對象(Command)和記錄集對象(RecordSet),其接口為_ConnectionPtr接口、_CommandPtr接口、_RecordsetPtr接口。其中_ConnectionPtr接口:返回一個記錄集或一個空指針。_CommandPtr接口:該接口返回一個記錄集,用來執行返回記錄集的存儲過程和SQL語句。_RecordsetPtr接口:該接口是一個記錄集對象,可以對記錄集進行記錄鎖定、觸發器、游標控制等。

_ConnectionPtr m_pConnection ;

_RecordsetPtr m_pRecordset ;

_RecordsetPtr m_pRecordsetFind ; //記錄集對象查找指針。

1.3 創建Connection對象,并設置數據源,訪問數據庫,并給出捕獲異常完整代碼

try

{m_pConnection.CreateInstance("ADODB.Connection"); //創建連接對象實例

_bstr_t strConnect="DRIVER={Microsoft Access Driver (*.mdb)}; uid=;pwd=;DBQ=數據庫.mdb;";

m_pConnection->Open(strConnect,"","",adModeUnknown);

}

catch (_com_error e)//捕捉錯誤

{ AfxMessageBox(e.Description()); //彈出錯誤

CString mErrorMessage;

mErrorMessage.Format("連接數據庫失敗!\r\n錯誤信息:%s",e.ErrorMessage());

AfxMessageBox(mErrorMessage);///顯示錯誤信息

return FALSE;

}

1.4 初始化VBA環境

1.4.1 OFFICE組件庫:按下快捷鍵Ctrl+W,彈出

MFC ClassWizard對話框,單擊Add Class…,選擇From a type library…,彈出Import from Type Library對話框,找到OFFICE軟件的安裝文件夾,在其中找到MSWORD.OLB(Microsoft Office Word 2003 MSWord.olb)打開,在選類的對話框中中按下Ctrl鍵選中所要選中的類,單擊確定。

1.4.2 導入本工程所需要的頭文件:在實際的應用過

程當中,我們主要采用以下幾個類來進行開發,引入頭文件#include "msword.h",Application:代表Microsoft Word 應用程序,其中包含可返回最高級對象的屬性和方法。例如:

Documents:由 Word 當前打開的所有 Document(文檔)對象所組成的集合。

Document:代表一篇文檔。Document對象是

Documents 集合中的一個元素。

Selection:該對象代表窗口或窗格中的當前所選內容。一個應用程序中只能有一個活動的文檔窗格,一個文檔窗格只能以一個活動Selection對象。

1.4.3 創建Word文檔

首先,創建三個變量:COleVariant vTrue((short)TRUE); //真COleVariant vFalse((short)FALSE); //假COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

WordApplication::_Application oWordApp; //開始一個新的Microsoft Word實例

if (!oWordApp.CreateDispatch("Word.Application", NULL))

{AfxMessageBox("先安裝Office2003,Createfailed."); return; }

//創建一個新的word文檔

WordApplication::Documents oDocs=oWordApp.GetDocuments();

WordApplication::_Document oDoc=oDocs.Add(vOpt,vOpt,vOpt,vOpt); //創建_Document對象

WordApplication::Selection oSel = oWordApp.GetSelection();//創建Selection 對象

WordApplication::_ParagraphFormat wordFormat=oSel.GetParagraphFormat();//創建_ParagraphFormat對象

1.4.4 創建Word報表的格式

創建表的標題行、設置字體大小、設置字體類型、文本居中對齊,并通過打開數據庫中指定的表,通過_RecordsetPtr記錄集對象中的GetItem讀取相應的數據,顯示在指定的數據控件上。

1.4.5 計算報表中數據

首先,定義兩個數組用來存儲將小寫金額轉換成大寫金額,并對所有的物資金額進行統計運算,并且將金額相應轉化成大寫形式。其相應宏命令如下:

Selection.InsertFormula Formula:="=SUM(ABOVE)",NumberFormat:="#,##0.00"進行對輸入表格中的數據時行運算, 顯示文檔并激活文檔,保存word文檔,釋放所有對象。

1.4.6 最終生成的數據報表

2 結束語

本文介紹了如何在VC++中利用MFC和VBA,并結合數據庫ACCESS來生成復雜數據報表的編程思想和具體詳細的實現過程。實踐證明本文所提供的方法,可以快速高效地創建復雜的數據報表,有助于提高編程的效率。

參考文獻:

[1]李婭.清江防洪與梯調仿真系統數據庫設計研究[D].華中科技大學,2004(04).

[2]任慶臻.基于IEC62305雷擊災害風險評估系統的設計[D].吉林大學,2010(04).

[3]劉曉華.精通MFC[M].電子工業出版社,2003.

[4]趙輝,葉子青.Visual C++系統開發實例精粹[M].人民郵電出版社,2005.

主站蜘蛛池模板: 亚洲综合片| 欧美三级视频网站| 全部免费特黄特色大片视频| 青青极品在线| 国产国产人免费视频成18| 依依成人精品无v国产| 白浆免费视频国产精品视频| 国产精品护士| 亚洲精品欧美日本中文字幕| 亚洲国产AV无码综合原创| 国产免费久久精品44| 免费一级α片在线观看| 日韩欧美国产精品| 国产精品自在在线午夜区app| 国产无码网站在线观看| 日韩区欧美国产区在线观看| 国产一区二区色淫影院| 日韩欧美国产精品| 青青草久久伊人| 乱人伦中文视频在线观看免费| 国产精品自在拍首页视频8| 久久久久国产一级毛片高清板| 久久综合五月| 无码一区中文字幕| 国产微拍一区二区三区四区| 国产爽爽视频| a级毛片免费网站| 亚洲欧美日韩另类| 久久精品国产国语对白| 精品免费在线视频| 热99re99首页精品亚洲五月天| 乱人伦99久久| 9久久伊人精品综合| 精品国产网| 亚洲伊人电影| 亚洲成人在线网| 精品国产美女福到在线不卡f| 99精品热视频这里只有精品7| 成人夜夜嗨| 国产呦视频免费视频在线观看| 青青草原偷拍视频| 国产av色站网站| 九九热这里只有国产精品| 国产爽歪歪免费视频在线观看| 国产麻豆福利av在线播放| 国产美女在线观看| 99精品视频九九精品| 成人综合久久综合| 毛片在线看网站| 午夜无码一区二区三区| 国产日韩欧美一区二区三区在线| 国产91特黄特色A级毛片| 久热这里只有精品6| 久久99精品久久久久纯品| 毛片基地视频| 亚洲国产天堂久久综合| 另类综合视频| 久久婷婷国产综合尤物精品| 久久免费视频6| 欧美在线视频不卡第一页| 国产精品30p| 熟妇丰满人妻| 欧美 亚洲 日韩 国产| 国产小视频a在线观看| 国产精品污视频| 91精品小视频| 91尤物国产尤物福利在线| 成人年鲁鲁在线观看视频| 国产精品视频导航| 国产69精品久久| 九九久久精品免费观看| 国产69囗曝护士吞精在线视频| 国产偷国产偷在线高清| 亚洲免费福利视频| 日本日韩欧美| 嫩草国产在线| 狠狠做深爱婷婷综合一区| 久久99国产综合精品1| 中文字幕调教一区二区视频| 波多野结衣一二三| 国产拍在线| 国产精品55夜色66夜色|