摘要:本文主要講述了使用DBGird等ActiveX控件來顯示Access數據庫記錄數據的一般方法。
關鍵字:DBGird控件、ActiveX、Access數據庫
一、 引言 隨著數據庫技術的進一步發展,我們在生活、辦公時越來越多地同各式各樣的數據庫前臺程序打著交道,這就要求數據庫前臺程序必須擁有良好的人機界面,使用戶能有一種好的心情方便的同程序進行交互。Microsoft 的Office系列產品之所以能得到廣泛的認同,也是與其良好的人機界面分不開的。數據庫最基本的單位--表包含有若干條數據記錄,而每一條記錄又包含有許多的字段,如何能方便、美觀的將這些數據記錄顯示給用戶,并能方便實用的同用戶進行交互操作便成為一個程序能否為人接受的重要因素了。Microsoft的Access 97/2000在這方面就做的相當不錯,用一個網格式表單容納了表中所有的數據,顯得清晰簡潔。而我們在用Visual C++開發的數據庫前臺程序中如要實現類似的表格就不得不借助于提供的ActiveX控件--DBGrid Control來實現,因為自己重新開發類似的功能無疑是比較困難而又煩瑣的。本文著重對該控件的使用做了介紹。
二、 程序的設計實現 本程序采用ODBC接口同Access 2000數據源相連,并將數據庫中的記錄數據通過網格的形式顯示給用戶,并能完成同Access表單類似的諸如添加記錄、刪除記錄等功能。
在開始編制程序之前首先要通過控制面板的32位ODBC數據源設置我們待操作的后臺Access數據源,建立名稱為"雇員"的系統DSN,并將其指向Employee.mdb。為簡單計,數據庫中有一個"雇員表",內含5個字段:"雇員ID
","tb雇員姓名"、"所在部門","職務","備注"等,并預先填充幾條記錄備用。
在用VC創建工程時,需要在第二步確認提供了對ActiveX控件的支持。需要有后臺數據庫的支持,并通過"DataSource"按扭選擇剛才注冊過的ODBC數據源。此時編譯運行程序,通過工具條上的數據庫導航條可以移動數據庫的記錄指針,說明此時已經同數據庫建立了連接,但由于沒有控件(編輯框或其他)同數據庫的字段相棒定,此時還無法顯示數據庫中的記錄。我們先插入網格控件DBGrid Control,方法如下:
1)選擇菜單->Project->Add to Project->Components and Controls Gallery
2)在部件選擇對話框中進入Registered ActiveX Controls
3)選擇DBGrid Control,單擊Insert按鈕,確認后對類進行配置(可以按默認),我們不做任何修改單擊OK按鈕,插入完成。
在VC工作區的ResourceView中可以如同使用標準控件一樣將剛添加來的DBGird網格控件拖入到對話框中,并對其屬性進行設置。下面將主要的屬性列表如下:
屬性名稱 |
值 |
說明 |
Caption |
雇員表 |
設定DBGird控件的網格標題 |
AllowAddNew |
True |
是否允許添加記錄 |
AllowDelete |
True |
是否允許刪除記錄 |
AllowDelete |
True |
是否允許更新記錄 |
ColumnHeaders |
True |
是否顯示每列的標題 |
DefColWidth |
100 |
設定每列的寬度 |
RowHeight |
11 |
設定每行高度 |
DataSource |
<Not bound to a DataSource> |
設定綁定的數據源 |
BackColor |
0x8000000E |
設定網格的背景色 |
再次運行程序,可以看到類似Access表格風格的DBGird控件以按我們的屬性設定顯示了出來,但并沒有數據庫記錄的顯示,而且我們注意到剛才設定數據源屬性DataSource時,下拉選項只有<Not bound to a DataSource>一項,而并沒有我們所希望的ODBC數據源"雇員"的存在。所以我們還要繼續添加一些輔助的控件來完成同數據庫源的綁定。用同插入DBGird控件一樣的步驟,插入Microsoft RemoteData Control控件,同樣也要對其屬性進行設置:
屬性名稱 |
值 |
說明 |
ID |
IDC_REMOTEDATACTL1 |
控件ID |
Caption |
人事管理系統--雇員表 |
設定導航條的標題 |
UserName |
|
由于沒有指定用戶及密碼,設為空 |
Password |
|
同上 |
SQL |
SELECT * FROM |
"雇員表" 待執行的SQL結構化查詢語言 |
在RemoteData控件里用SQL語言將ODBC數據源的"雇員表"打開并選取里面的所有字段,也即顯示表里的所有記錄信息。這時再打開DBGird控件的DataSource屬性就會發現下拉條里多了一個"IDC_REMOTEDATACTL1",正是RemoteData的ID號。此次編譯運行程序就在網格控件內顯示了數據源指定表的所有記錄信息,而且可以方便的添加、刪除記錄以及調整字段尺寸等。具體如圖所示:
運行結果表明,在RemoteData控件的中介作用下實現了DBGird控件同ODBC數據源之間的交互。該程序設計實現過程是可靠、實用的。
小結:
DBGrid數據網格控件以其短小精悍而深受大家的喜愛,,本文將在VC下使用DBGrid的具體步驟和方法作了簡要地介紹。其它類似的表格控件也可以大致參考這個過程,希望本文能有所啟迪與幫助。在Windows 2000 Professional下,由Microsoft Visual C++ 6.0編譯測試通過。后臺數據源為Microsoft Access 2000。