Excel/VBA/酷盘
用VBA开发的系统依托Excel环境,和Excel版本密切相关,而与操作系统关系不大。我们需要把派发客户端和执行客户端拿到不同版本的Excel环境下运行测试兼容性。这一步非常重要,因为一般情况下很难要求所有人都使用统一的办公软件。
从一开始就十分重视兼容性的问题,尽可能避免使用高版本特有的功能,然而还是出了一个小问题:07及以下版本不支持ActiveX按钮。改成表单按钮就解决了。表单按钮视觉效果稍差一些,设置方法简单一些,其它没什么区别。如图示插入按钮:
右击按钮指定宏:
设置按钮格式:END
执行客户端的“单元格变化即时写入数据库”功能十分考量写入速度,是这款软件最重要的一个指标。在小数据量的环境下我们已经体验过:写入的时候几乎感觉不到有停顿——这正是我们所希望的。然而只凭感觉毕竟不够准确,我们需要测试程序运行所需时间。接下来我们需要加大数据量,将数据库记录增加到5000条,用下面的方法测试一次写入动作所需时间。
现在我们在Worksheet_Change事件过程的首尾加入下面的语句:Private Sub Worksheet_Change(ByVal Target As Range)t = Timer ......MsgBox Timer - tEnd Sub一次写入动作耗时0.531秒。
现在我们来分段测试一下(请参考上期程序分段):Private Sub Worksheet_Change(ByVal Target As Range)t = Timer '......环境初始化化MsgBox '环境初始化:' & Timer - t & ' 秒't = Timer '......数据有效性判别MsgBox '数据有效性判别:' & Timer - t & ' 秒't = Timer '......打开数据库、单元格写入、关闭数据库MsgBox '打开数据库、单元格写入、关闭数据库:' & Timer - t & ' 秒't = Timer '......重新标色MsgBox '重新标色:' & Timer - t & ' 秒'End Sub
我们看到,数据库记录增加到5000条,一次写入动作总耗时0.531秒(属于可承受范围)。其中数据库打开、关闭耗时占到91%。如果数据库记录增加到1万条以上,一次写入动作总耗时会超过1秒(超出可承受范围了)。结论:如果有朋友打算依照此模型设计一款实际的应用系统,一定要考虑到数据库记录不能超过1万条,理想状况是5000条以内。
本文范例数据库使用Excel文件,其打开、关闭速度成为整个系统的瓶颈,受此限制,数据库记录不能超过1万条。如果能突破这一瓶颈,其应用前景将十分广阔。以后我们会尝试以TXT文件作为数据库的编程方法,因为TXT文件的打开、关闭速度比Excel快很多。
相遇短暂情谊长远!朋友们再见!END