会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > DAO/ADO/ADP > 正文

VB 6.0与ACCESS的比较

时间:2003-12-13 23:31 来源:本站原创 作者:桂思强 阅读:
VB 6.0与access的比较

为何要写这篇文章?因为VB 6.0与ACCESS皆是适用做为数据库前端的工具,此类工具的特性是可制作供使用者操作的窗体及报表。笔者在access有多年开发经验,对于在数据库方面有大幅改进的VB 6.0,亦有些许测试心得,故将此二者以多个标准,放在同一个天平上进行检验,相信是很多测试人员亟欲了解的,以下是分成多个方面的说明:

数据链路

由于VB 6.0本身没有数据库处理功能,故须藉助外部数据库,乃发展出许多连结资料来源的方式,包括DAO、ADO及RDO等,尤其ADO在VB 6.0大幅扩充之后,几乎所有数据库的常见格式,其驱动程序皆罗列其内,如ODBC、SQL Server等。ACCESS本身就是数据库,当然除此之外,若要使用外部档案,主要管道有二,分别是ODBC及ISAM等,如要在ACCESS内连结SQL Server数据库,即须使用ODBC,ISAM则是Jet引擎针对外部数据库的定义的格式,如Excel、DBF等皆可透过ISAM,连结或汇入至access,但不包括SQL Server。

所以在数据链路方面,VB 6.0较ACCESS有更多选择,且可充份发挥各种连结方式的优点,如RDO的连接方式为ODBC,而RDO在ODBC上的控制亦较其它连结方式及access更为细密。

生产力

生产力指的是数据库系统的开发效率,但开发效率的高低与对开发工具的熟悉度有关,即熟悉度与开发效率成正比。笔者认为一个对ACCESS VBA有所涉猎及读完本书,拥有在VB 6.0设计一般数据库应用系统的人员而言,在窗体及报表的制作上,access应较VB 6.0来得有效率,主要有以下考虑点:

精灵:access精灵之多, 可能是各软件包之冠, 没有数据库概念的使用者, 都可藉由精灵快速制作窗体及报表。在VB 6.0内首先须知道如何正确取得资料来源, 方可以虽有资料窗体精灵制作窗体, 报表则无精灵。

程序维护:ACCESS的程序是VBA, 但ACCESS可能是所有可程序化的设计工具中, 最易维护的一个, 如笔者曾为多位读者的ACCESS半成品或成品进行诊断,? 即别人写的程序, 交给对access有所熟悉的人进行维护时, 通常亦不 是难事, 笔者相信在VB 6.0就无法如此简单, 或者应该说二者的层次不同 。

窗体的结合及设计

access的窗体只可结合至数据库内的一个资料表或查询,若要结合多个资料表或查询,须使用SQL语法,但多个资料表及查询间须有关联。在这一点上,VB 6.0就显得灵活多了,不但一个应用系统可在DataEnvironment窗口制作多个指令,一个窗体也可含有多个DAO、ADO或RDO等控件,这些控件及指令的输出记录及字段,均可提供予窗体上的字段进行结合。

但在详细控制上,可说各擅胜场,如输入屏蔽,在access窗体的文字方块有「输入屏蔽」属性及精灵,设计上颇为方便。但在VB 6.0,文字方块本身无法制作输入屏蔽,须使用另一名为MaskEdit的控件,这是专用于输入屏蔽的控件。

再如窗体本身执行后的显示位置,在VB 6.0可藉由数项属性精确控制,如固定在屏幕中央或某处,也可搭配MDI窗体;这些功能均不见于ACCESS窗体,所以access窗体的常见问题是在不同分辨率的计算机执行同一数据库时,窗体位置即可能无法固定。

报表制作

平心而论,在报表设计,应以access为佳,因为VB 6.0新加入的DataReport,不算是可全面程序化的组件,即在一般应用上尚可应付。精确控制时,如邮寄卷标、打印流水号、群组同页等,即使藉助程序,亦力有未逮。

也就是DataReport只有纵向的单栏处理(所以应为多栏的邮寄卷标即无法制作)、区段没有可处理的事件等,这些都造成DataReport的应用限制。

但有一点是在ACCESS颇为麻烦的地方,就是打印机的控制,在VB 6.0可使用Printer对象更改预设打印机。access则可使用报表对象的PrtDevMode、PrtDevNames及PrtMip等属性,控制打印机及报表的版面设定,但在处理上不是简单的一两行程序即可完成。

引用资源

这点可能是VB 6.0的最大好处,因为Visual Basic是纯粹的程序开发工具,目的是以最大的可用资源建立最适用的应用系统,所以它提供「接头」,可引用所有安装至系统的资源,包括安装VB 6.0后,自动安装至系统的控件,且多数控件不会显示在预设的工具箱中,但仍可使用「项目」→「设定使用组件」选项进行引用。

除此之外,ACCESS窗体及VB 6.0窗体的预设工具箱,可使用的控件也有差别,一个很简单的例子是若要在access窗体,制作让使用者选取档案的对话框,即须藉助CommonDialog控件,但一台只安装Office的计算机,没有这个控件可引用,亦无如同VB 6.0预设的DirListBox或DriveListBox等控件。

当然access仍可引用已安装在计算机中的ActiveX控件,但问题是执行应用系统的计算机可能没有此一控件,也就是下述散发的问题。

散发

VB 6.0可将应用系统编译为EXE文件及使用封装暨部署精灵,将应用系统提供予使用者。ACCESS则无法制作EXE档案,散发则可使用ODE(Office Developer Toolkit)的安装精灵,为MDB数据库制作安装程序,再安装至没有access的计算机。

关键在于两个精灵的「聪明」程度,因为必须将应用系统引用的资源(除内建以外的控件)一并安装至使用者的计算机,方可正确执行应用系统。在这一点上,VB 6.0的封装暨部署精灵表现至为优异,它会自动判断引用的非内建控件,及将它包含有在产生的安装程序内。ODE的安装精灵则须手动设定,将控件使用的档案(包括OCX及DLL),加至安装精灵内,若有漏一,则应用系统将无法正常执行。

以上列出数项VB 6.0及ACCESS在开发应用系统的差异,access常被设计人员视为玩具,事实上,它是第一套采用可视化设计方式的数据库。而VB 6.0则是在数据库处理上,做了大幅改进,以上意见,仅供参考,若读者有任何意见,可来函讨论。

 

作者:桂思强

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: