狭义来说(注意:是"狭义"来说), EXCEL和ACCESS VBA编程很容易,无非是
1。熟悉VBA的几个语句,条件,分支,循环。这很容易掌握。 2。熟悉应用程序的对象模型。这需要一些时间,并且对应用程序的操作越熟练,你对应用程序的对象模型掌握的就越透彻。
熟悉了应用程序的对象模后,你的注意力就应该转移到如何精确引用你要操作的对象上来了。
对于EXCEL来说,精确引用你要操作的对象可能相对容易一些,因为在EXCEL VBA中,对象的引用只有"."点引用,掌握了如下引用,恭喜你,很多工作都可以用这种最笨的方法完成(必须完全不考虑代码简洁和效率)。
Wookbooks("WorkbooksName.xls").WorkSheets("WorkSheetName").Cells(r,c).value.
但对于ACCESS,情况可能稍微复杂一点。在ACCESS中对象的引用不仅有"."点引用,还有"!"引用。 至于什么时候用".",什么时候用"!",确实令ACCESS的初学者一头雾水。
我在这里谈一谈这个问题。
简单来说; "!"引用用于引用用户自己创建的ACCESS数据库对象,比如用户创建的窗体,报告,控件等。 "."引用用于引用ACCESS数据内置的对象,属性。
比如Reports!rptOrders.Visible, 第一个元素,Reports表示ACCESS内置的报告集合,包含所有当前打开的报告。第二个元素rptOrders是用户自己创建的报告,所以在它的前面使用"!"分隔符。而第三个元素Visible,是ACCESS数据库应用程序的内置属性,所以它前面用"."分隔符.
有时我们会看到如下形式的对象和属性的引用: [Reports]![rptOrders].Visible,甚至[Reports]![rptOrders].[Visible]。 其实在上面这种情况下方括号不是必需的,但加上也没有什么坏处。
但在以下两种情况下必须加方括号。 1。对象名字中间有空格或者其他非标准字符。 2。在参数查询条件里引用对象名称时,需要方括号,以避免在查询条件里把对象名称误认为是字符串。
此外,我们还有两种方法引用用户自定义对象,"双引号引用"和"索引号引用"'
1."双引号引用" 比如,"双引号引用"Reports("rptOrders")和Reports!rptOrders等价。这种引用方式允许把对象名称存储在变量里以便随后引用。比如: Dim strReportName As String strReportName="rptOrders" Reports(strReportName).visible=False
2."索引号引用" 当你需要遍历对象集合中的所有对象时,使用"索引号引用"非常方便。比如Reports(0)代表Report对象集合中的第一个报告,Reports(Reports.Count)代表Report对象集合中的最后一个报告。
|