Access学习资源推荐——专家开发篇

Access学习资源推荐——专家开发篇

关于本篇的写作犹豫了一段时间,一是由于前几篇Access书籍推荐文章,读者反馈低于预期,也许大家对此主题并没有多大兴趣,让我写作热情消退。二是,我也对死磕 Access / VBA 的意义产生了怀疑,VB / VBA 是一门行将就木的语言,靠着 MS Office 苟延残踹(至少我是这么觉得,也许你有不同意见)。

然而,由于眼界有限的关系,在我能预见的未来,还看不到微软会在 Office 中用一门新的语言替代 VBA 的可能性。(多年以前,VSTO(Visual Studio Tools for Office)一度很火,大有替代 VBA 的势头,而最近几年在网络上似乎销声匿迹了)如果真的是这样的话,我想大胆的扔出一块砖头:老而不死,死而不僵的 VB / VBA 就可能会成为像C语言那样的越老越吃香的语言吗?(这个问题也许可以成为一个热门关注话题,有好事者可以在知乎上发起提问试试看)

如果你觉得答案是肯定的,那么本篇的写作就有它的意义了。如果你觉得答案是否定的,但你打算死磕 VB / VBA,本篇就是为你而作。


处于Access VBA 高阶开发的你,应该已经为部门做了不少工具/系统(小的单机版的叫工具,大的多用户数据共享的叫系统)了,这些工具/系统用户界面友好,代码健壮(我看到国内一个术语叫“鲁棒性”,其实就是robust的音译,为什么不是意译?我一直不明白)。

虽然用Access 开发出来的系统有它无法避免的破解漏洞,但你看看那帮连 Excel 都玩不溜的同事,他们哪有本事破解你的 Access 系统?(用C语言写的就无法破解吗?试试反汇编。编程语言界的鄙视链,在我看来,那是弱者的心灵鸡血)。话说回来,单机版的工具,我一般是连同源代码一起发布给用户的,他们就算看到源代码也不会不敢改。

你如果有幸将部门中的数个核心业务数据处理都在Access中开发实现出来,毫无疑问,你会成为部门中最有价值员工之一。你用 Access 开发的工具/系统,会成为部门关键任务系统(Mission Critical)。如果该系统一直没有被升迁到IT部门,用更流行的平台、语言、解决方案替代,你就得一直维护下去。

而系统的维护就是你的噩梦。这里说的系统维护,并不是指简单的备份数据,用户权限管理等,这些是系统管理员(指定给某个用户来做的)。由于外部和内部的环境变化,用户对系统的需求也会随之改变,作为系统开发者,你需要针对用户需求的改变而调整系统的功能。

如果这个系统是你“为达目的,不择手段”开发出来的,这个手段有多么卑劣,那么维护起来就会有多么让人抓狂。编写易于维护的代码是专家阶段应该追求的首要目标,易于维护的代码,无非在于代码的合理组织,最高限度的代码重用(使用代码库类模块,开发框架等),以及合适的设计模式。其次,数据结构算法以及 VBA 语言本身,在某些时候,也会成为你研究的客体。

1.《Doing Objects in Visual Basic 6》

这是一本注水严重的书,该书作者Deborah Kurata 最开始是 VB 类模块专栏作者,成名以后出的本书。看这本书时,你可以感觉到,作者为了凑够这600多页的内容,煞费了多少苦心。一共15章的内容,至少有一半内容,是空洞枯燥乏味的。然而这并不重要。抽掉这些注水的内容,剩下的全部都是精华!

仅就入门学习 VBA 类模块来说,你只用看第1、10、11、12这4章精华内容就好了。

在我推荐的高级开发阶段的书中,几乎每一本都会讲到类模块,然而,没有任何一本讲得比这本还要好,它首选传达的是思想,最后才向你揭示代码,你读起来会上瘾。我推荐这本书作为类模块入门的首选。一旦入门了类模块,就可以回看高级开发阶段介绍的每一本书中的类模块部分,继续类模块的进阶。

2. 《Visual Basic 6 Business Objects》

这是一本用一个项目贯穿始终,教你设计3层数据访问对象模型的书。尽管是基于VB6平台,你看完以后仍会受益良多,特别是多个类对象之间如何分工协作这部分。它跟设计模式有着天然的联系。只要你愿意,你可以根据本书的步骤顺序,在自己的电脑上实现这个大型的项目。这是学习使用类对象不可或缺的一个经历过程。

3. 《Beginning Access 2002 VBA》

在专家阶段介绍一本入门书?其实我并不想介绍这整本书,只是想介绍作者之一的John Colby,以及在本书中他写的第15章 Libraries and Add-Ins。看过我的个人博客网站的人知道,我翻译了 John Colby 的 Access 框架系列文章的前半部分。我在John Colby的个人博客网站上受益良多,是他忠实的粉丝。这是唯一一本John Colby参与写作的书。这也是唯一一本详细介绍如何创建Access 代码库(Library)的书。代码库在代码重用方面,虽然较开发框架低了一个层次,但依然有很大作用。

这本书也是一本开发进阶的宝典类书,除了版本有点旧以外,其他都是上乘之作。

4.《Microsoft Visual Basic Design Patterns》


设计模式方面的几本非常经典的书,都不是使用VB/VBA来介绍的。为数不多的VB设计模式可选书中,这本勉强算我能看的进去的一本。也许是这个话题天生的抽象性,本书在行文叙述上很不连贯,好在它的实例很给力

5. 《Visual Basic Developer's Guide to Uml and Design Patterns》

这本恰好和上一本书互补,行文叙述流畅,然而实例代码不够详尽。当然也许是我水平有限的原因。

甩个锅,设计模式我至今只学得一招半式,跟该领域严重匮乏的资源脱不了关系。当然国外网络上还是有一些牛人的博客颇具参考价值,但依然不成系统。如果读者有更好的资源推荐,欢迎给我留言。

6.《VBA Developer's Handbook Second Edition》

这本书放在这儿,原因就是它的第15章。这是唯一一本用一章的篇幅详细介绍VBIDE编程的书,学完这一章,用VBA代码编写VBA代码对你来说就不是什么神话。

除此以外,本书的其他章节亦可作为质量上乘的高级开发阶段的参考书。行文叙述非常流畅,实例也非常给力。注意到作者之一的Ken Getz了吗?在高级开发篇中,也介绍过他的2本书。最后值得一提的是,本书适用于整个Office常用套件,比如Excel,Word,Outlook等。

7. 《Ready-to-Run Visual Basic Algorithms》

开发Access数据库系统似乎离数据结构和算法有点遥远,毕竟99%的问题域都有现成的解决方式供你挑选,你很少需要自己创造新的解题思路。是的,这本书就是为那1%的问题而准备的。而这1%就是专家技能的重要体现

与设计模式一样,介绍数据结构和算法的书,很少有使用VB/VBA来讲述的。这本是我觉得质量很不错的一本。行文叙述流畅详尽,示例代码质量上乘。

发布于 2019-07-31

文章被以下专栏收录