摘要:本文主要讲述了使用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。