第9章主要探讨的是模块与VBA程序设计的相关概念和技巧,这是在Microsoft Access等数据库管理软件中进行自动化和定制化操作的基础。VBA(Visual Basic for Applications)是一种基于Visual Basic的编程语言,用于编写能够控制应用程序的代码。
一、选择题知识点:
1. 模块是存储代码的容器,窗体是一种**类模块**,它允许用户与数据交互并展示界面。
2. 使用`Dim`声明变量,如果不指定类型,默认为**Variant**类型,这是一种可以存储任何数据类型的变量。
3. 函数`Len("Access 数据库")`返回字符串的长度,所以值是**9**。
4. 函数`Right(Left(Mid("Access_DataBase",10,3),2),1)`取"Access_DataBase"中第10到12位的字符,即"ase"的第二个字符,值是**a**。
5. 表示“m 和 n 至少有一个为偶数”的逻辑表达式是**m Mod 2 = 0 Or n Mod 2 = 0**。
6. `Case`语句中,表达式`Case x > 10`是错误的,因为`Case`后面应该直接跟值或者范围,而不是表达式。
7. `Sub`过程和`Function`过程的根本区别在于**Sub 过程不能返回值,而 Function 过程可以通过过程名返回值**。
8. 调用有参过程`PPSum(a, b)`的正确形式是**PPSum x, y**,这里使用实参调用形参。
9. 在VBE的立即窗口输入`x=4=5? x`,由于4不等于5,所以输出结果是**False**。
10. 程序调试的目的是**查找和解决程序代码的错误**。
二、填空题知识点:
1. `Int(Rnd*61+15)`可以生成[15, 75]区间的随机整数,`Rnd`函数产生0到1之间的随机数,乘以61加15是为了将范围调整到所需区间。
2. 二维数组`A(2 to 5, 5)`包含的元素个数是`(5-2+1)*(5-2+1)`,即**24**个。
3. VBA中的变量作用域分为**局部变量**(在过程中定义)、**模块变量**(在模块级别定义)和**全局变量**(在标准模块或类模块顶部定义)。
4. `ByVal`说明形参为**传值调用**,形参的值不会被改变;`ByRef`说明形参为**传地址调用**,形参的值可能被改变。
5. 代码运行后,变量`n`的值是**12**,`i`的值是**4**,因为内层循环比外层循环先结束,所以`i`最终为4,而`n`在内层循环中累加,总共循环了12次。
6. 执行后的消息框输出内容是**5**,因为在`Select Case`语句中,当`i`为1和3时,`a`分别增加1,总共增加2,`i`为2时没有执行任何操作,所以`a`的总和是5。
7. ADO编程中,**RecordSet**对象用于存储查询数据时返回的结果集。
8. `RecordSet`对象的属性中,判断记录指针是否在最后一条记录之后的是**EOF (End Of File)**属性。
三、问答题知识点:
1. Access中提供宏操作是为了简化常见的任务,但VBA允许更高级的编程和自定义功能,可以实现宏无法完成的复杂逻辑和操作。
2. **类模块**是用来定义自定义对象的,它可以包含方法和属性,类实例化后成为对象。**标准模块**则用于存放通用的函数和子程序,不与特定对象关联。类模块具有封装和继承的特性,而标准模块不具备。
这些知识点展示了VBA编程中的基础概念,包括模块类型、变量声明、函数与过程的区别、逻辑表达式、随机数生成、数组、作用域、调试、ADO对象以及宏与VBA的比较。掌握这些内容对于编写和理解VBA代码至关重要。