1、国家二级 ACCESS机试选择题(模块与 VBA编程基础、 VBA数据库编程)模拟试卷 1及答案与解析 一、选择题 1 运行下列程序,结果是 Privme Sub Command32_Click() f0=1: fl=1: k=1 Do While k =5 f=f0+f1 f0=f1 f1=f k=k+1 Loop MsgBox“f=”&f End Sub ( A) f=5 ( B) f=7 ( C) f=8 ( D) f=13 2 有 如下事件程序,运行该程序后输出结果是 Private Sub Command33_Click() Dim XAs Integer, yAs Integer
2、x=l: y=0 Do Until y =25 y=y+x*x x=x+l Loop MsgBox“x=”&x&“, y=”&y End Sub ( A) x=1, y=0 ( B) x=4, y=25 ( C) x=5, y=30 ( D)输出其他结果 3 下列程序的功能是计算 sum=l+(1+3)+(1+3+5)+(1+3+5+39) Private Sub Command34_Click() t=0 m=1 sum=0 Do T=t+m Sum=Sum+t m=_ Loop While m =39 MsgBox“Sum=” sun End Sub 为保证程序正确完成上述功能,空白处应填
3、入的语句是 ( A) m+1 ( B) m+2 ( C)什 1 ( D) t+2 4 由 “For i=1 To 16 Step 3”决定的循环结构被执行 ( A) 4次 ( B) 5次 ( C) 6次 ( D) 7次 5 若有以下窗体单击事件过程: Private Sub Form_Click() result=1 For i=1 To 6 step 3 result=-result*i Next i MsgBox result End Sub 打开窗体运行后,单击窗体,则消息框的输出内容是 ( A) 1 ( B) 4 ( C) 15 ( D) 120 6 窗体中有命令按钮 Command3
4、2,其 Click事件代码如下。该事件的完整功能是:接收从键盘输入的 10个大于 0的整数,找出其中的最大值和对应的输入位置。 Private Sub Command32_Click() max=0 max_n=0 For i=1 To 10 num=Val(InputBox(“请输入第 ”&i&“个大于 0的整数: ”) If_Then maX=num max_n=i End If Next i MsgBox(“最大值为第 ”&max_n&“个输入的 ”&max) End Sub 程序空白处应该填入的表达式是 ( A) num i ( B) i max ( C) hum max ( D) n
5、um max 7 若有如下 sub过程: Sub sfun(xAs Single, YAs Single) t=X x=t y y=t Mod y End Sub 在窗体中添加一个命令按钮 command33,对应的事件过程如下: Private Sub Command33_Click() Dim aAs Single DimbAs Single a=5: b=4 sfun(a, b) MsgBox a chr(10)+chr(13) b End SUb 打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为 ( A) 1和 1 ( B) 1 25和 1 ( C) 1 25和 4 ( D
6、) 5和 4 8 运行下列程序,显示的结果是 Private SUb Command34_Click() i=0 Do i=i+1 Loop While i 10 MsgBox i End Sub ( A) 0 ( B) 1 ( C) 10 ( D) 11 9 运行下列程序,在立即窗口显示的结果是 Private Sub Command0_Click() Dim IAs Integer,JAs Integer For I=2 To 10 For J=2 To 1/2 IfI mod J=0 Then Exit For Next J IfJ sqr(I)Then Debug Print I; N
7、ext I End Sub ( A) 1 5 7 9 ( B) 4 6 8 ( C) 3 5 7 9 ( D) 2 3 5 7 10 运行下列过程,当输入一组数据: 10, 20, 50, 80, 40, 30, 90, 100, 60,70,输出的结果应该是 Sub p 10 Dim i,j, arr(11)As Integer k=1 While k =10 arr(k)=Val(InputBox(“请输入第 “&k&“个数: “, “输入窗口 “) k=k+l Wend For i=l To 9 j=i+l If arr(i) arr(j)Then temp=arr(i) art(i)=
8、arrO) arr(j)=temp End If Debug Print arr(i) Next i End Sub ( A)无序数列 ( B)升序数列 ( C)降序数列 ( D)原输入数列 11 下列程序的功能是计 算 N=2+(2+4)+(2+4+6)+(2+4+6+40) 的值。 Private Sub Command34_Click() t=0 m=0 sum=0 Do t=t+m sum=sum+t m=_ Loop While m 41 MsgBox“sum=“&sum End Sub 空白处应该填写的语句是 ( A) t+2 ( B) t+1 ( C) m+2 ( D) m+l
9、12 在窗体中有一 个名为 Commandl的命令按钮,事件代码如下: Private Sub CommandlClick() Dim m(10) For k=1 T0 10 m(k)=11-k Nextk x=6 MsgBox m(2+m(x) End Sub 打开窗体,单击命令按钮,消息框的输出结果是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 13 在窗体中有一个名为 run34的命令按钮,事件代码如下: Private Sub run34_Click() f1=l f2=1 For n=3 To 7 f=f1+f2 fl=f2 f2=f Next n MsgBox f En
10、d Sub 打开窗体,单击命令按钮,消息框的输出结果是 ( A) 8 ( B) 13 ( C) 21 ( D)其他结果 14 假定有如下的 Sub过程: Sub sfun(x As Single, y As Single) t=X X=t y Y=t Mod y End Sub 在窗体上添加一个命令按钮 (名为 Commandl),然后编写如下事件过程: Private Sub Commandl_Click() Dim a as single Dimb as single a=5 b=4 sfun a,b MsgBox a&chr(10)+chr(13)&b End Sub 打开窗体运行后,单
11、击命令按钮,消息框的两行输出内容分别为 ( A) 1和 1 ( B) 1 25和 1 ( C) 1 25和 4 ( D) 5和 4 15 Sub过程与 Function过程最根本的区别是 ( A) Sub过程的过程名不能返回值,而 Function过程能通过过程名返回值 ( B) Sub过程可以使用 Call语句或直接使用过程名调用,而 Function过程不可以 ( C)两种过程参数的传递方式不同 ( D) Function过程可以有参数, Sub过程不可以 16 在窗体中添加一个名称为 Commandl的命令按钮,然后编写如下程序: Public X As Integer Private
12、Sub Command l_Click() X=10 Call s1 CaU s2 MsgBox x End Sub Private Sub sl() x=X+20 End Sub Private Sub s2() Dim X As Integer x=x+20 End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果为 ( A) 10 ( B) 30 ( C) 40 ( D) 50 17 在过程定义中有语句: Private Sub GetData(ByRef f As Integer) 其中 “ByRef”的含义是 ( A)传值调用 ( B)传址调用 ( C)形式参数 ( D)实际
13、参数 18 若要在子过程 Procl调用后返回两个变量的结果,下列过程定义语句中有效的是 ( A) Sub Proc l(n, n1) ( B) Sub Procl(ByVal n, m) ( C) Sub Procl(n, BYVal m) ( D) Sub Procl(ByVal n, ByVal m) 19 在过程定义中有 语句: Private Sub GetData(ByVal data As Integer) 其中 “ByVal”的含义是 ( A)传值调用 ( B)传址调用 ( C)形式参数 ( D)实际参数 20 要想在过程 Proc调用后返回形参 X和 Y的变化结果,下列定义语
14、句中正确的是 ( A) Sub Proc(X as Integer, Y as Integer) ( B) Sub Proc(ByVal x as Integer, Y as Integer) ( C) Sub Proc(x as Integer, ByVal Y as Integer) ( D) SUb Proc(ByVal x as Integer, ByVal Y as Integer) 21 在 VBA中,下列关于过程的描述中正确的是 ( A)过程的定义可以嵌套,但过程的调用不能嵌套 ( B)过程的定义不可以嵌套,但过程的调用可以嵌套 ( C)过程的定义和过程的调用均可以嵌套 ( D)
15、过程的定义和过程的调用均不能嵌套 22 在窗体上有一个命令按钮 Commandl,编写事件代码如下: Private Sub CommandI_Click() Dim x As Intege YAs Integer X=12: y=32 Call Proc(x, y) End Sub Public Sub Proch As Integer,ByVal m As Integer) n=n Mod 10 m=m Mod 10 End Sub 打开窗体运行后,单击命令按钮,立即窗口上输出的结果是 ( A) 2 32 ( B) 12 3 ( C) 2 2 ( D) 12 32 23 窗体 中有命令按钮
16、 Commandl,事件过程如下: Public Function f(xAs Integer)As Integer DimYAs Integer x=20 y=2 f=-x*y End Function Private Sub Commandl Click() Dim yAs Integer Static X As Integer x=10 y=5 y=f(x) Debug Printx; y End Sub 运行程序,单击命令按钮,则立即窗口中显示的内容是 ( A) 10 5 ( B) 10 40 ( C) 20 5 ( D) 20 40 24 如果在被调用的过程中改变了形参变量的值,但又
17、不影响实参变量本身,这种参数传递方式称为 ( A)按值传递 ( B)按地址传递 ( C) ByRef传递 ( D)按形参传递 25 在代码中定义了一个子过程: Sub P(a, b) End Sub 下列调用该过程的形式中,正确的是 ( A) P(10, 20) ( B) Call P ( C) Call P 10, 20 ( D) Call p(10, 20) 26 不属于 VBA提供的程序运行错误处理的语句结构是 ( A) On Error Then标号 ( B) On Error Goto标号 ( C) On Error Resume Next ( D) On Error Goto 0
18、27 在调试 VBA程序时,能自动被查出来的错误是 ( A)语法错误 ( B)逻辑错误 ( C)运行错误 ( D)语法错误和逻辑错误 28 下列属于通知或警告用户的命令是 ( A) PrintOut ( B) OutputTo ( C) MsgBox ( D) Set Warnings 29 在 VBA中,能自动检查出来的错误是 ( A)语法错误 ( B)逻辑错误 ( C)运行错误 ( D)注释错误 30 要显示当前过程中的所有变量及对象的取值,可以利用的调试窗口是 ( A)监视窗口 ( B)调用堆栈 ( C)立即窗口 ( D)本地窗口 31 在代码调试时,使用 Debug Print语句显示
19、指定变量结果的窗口是 ( A)立即窗口 ( B)监视窗口 ( C)本地窗口 ( D)属性窗口 32 现有一个已经建好的窗体,窗体中有一命令按钮,单击此按钮,将打开“tEmployee”表,如果采用 VBA代码完成,下面语句正确的是 ( A) docmd openform“tEmployee” ( B) docmd openview“tEmployee” ( C) docmd opentable“tEmployee” ( D) docmd openreport“tEmployee” 33 在 VBA中,实现窗体打开操作的命令是 ( A) DoCmd OpenForm ( B) OpenForm
20、( C) Do OpenForm ( D) DoOpcn Form 34 在 VBA中要打开名为 “学生信息录入 ”的窗体,应使用的语句是 ( A) DoCmd OpenForm“学生信息录入 ” ( B) OpenForm“学生信息录入 ” ( C) DoCmd OpenWindow“学生信息录入 ” ( D) OpenWindow“学生信息录入 ” 35 下列过程的功能是:通过对象变量返回当前窗体的 Recordset属性记录集引用,消息框中输出记录集的记录 (即窗体记录源 )个数。 Sub GetRecNum0 Dim rs As Object Set rs=Me Recordset M
21、sgBox_ End Sub 程序空白处应填写的是 ( A) Count ( B) rs Count ( C) RecordCount ( D) rs RecordCount 36 下列程序段的功能是实现 “学生 ”表中 “年龄 ”字段值加 1 Dim StrAs String SU=“_” Docmd RunSQL Str 空白处应填入的程序代码是 ( A)年龄 =年龄 +1 ( B) Update学生 Set年龄 =年龄 +1 ( C) Set年龄 =年龄 +1 ( D) Edit学生 Set年龄 =年龄 +1 37 下列程序的功能是返回当前窗体的记录集 Sub GetRecNum0 Di
22、m rsAs Object Set rS= MsgBox rs RecordC0unt End Sub 为保证程序输出记录集 (窗体记录源 )的记录数,空白处应填入的语句是 ( A) Recordset ( B) Me Recordset ( C) RecordSource ( D) Me RecordSource 38 在 Access中, DAO的含义是 ( A)开放数据库互连应用编辑接口 ( B)数据库访问对象 ( C) Active数据对象 ( D)数据库动态链接库 39 ADO的含义是 ( A)开放数据库互连应用编程接口 ( B)数据库访问对象 ( C)动态链接库 ( D) Acti
23、ve数据对象 40 利用 ADO访问数据库的步骤是: 定义和创建 ADO对象实例变量 设置连续参数并打开连接 设置命令参数并执行 命令 设置查询参数并打开记录集 操作记录集 关闭、回收有关对象 这些步骤的执行顺序应该是 ( A) ( B) ( C) ( D) 41 ADO对象模型包括 5个对象,分别是 Connection、 Command、 Field、 Error和 ( A) Database ( B) Workspace ( C) RecordSet ( D) DBEngine 42 DAO层次对象模型的顶层对象是 ( A) DBEngine ( B) Workspace ( C) Da
24、tabase ( D) RecordSet 国家二级 ACCESS机试选择题(模块与 VBA编程基础、 VBA数据库编程)模拟试卷 1答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 Do WhileLoop 循环结构是当条件为假时,重复执行循环体,直至条件表达式为真,结束循环。 【知识模块】 模块与 VBA编程基础 2 【正确答案】 A 【试题解析】 Do UntilLoop 循环结构是当条件为假时,重复执行循环体,直至条件表达式为真,结束循环。本题 中循环条件是 y=0=25条件为真,即不执行循环体,所以 x、 y的值即为初始值。 【知识模块】 模块与 VBA编程基础 3 【正确
25、答案】 B 【试题解析】 根据题中计算式可以找出规律, m变量为奇数,且相邻两个奇数相差为 2,所以本题选 B)。 【知识模块】 模块与 VBA编程基础 4 【正确答案】 C 【试题解析】 根据题意可知,步长为 3,所以当 i分别为 1、 4、 7、 10、 13、 16时执行循环体,所以共执行了 6次。 【知识模块】 模块与 VBA编程基础 5 【正确答案】 B 【试题解析】 根据题意可知, For循环的步长为 3,只有当 i分别为 1和 4时才会执行循环体,所以该事件的最终结果是 4。 【知识模块】 模块与 VBA编程基础 6 【正确答案】 C 【试题解析】 由题意可知, max代表最大值
26、, max n代表最大值的位置,而 num为输入的数值。在 IF语句中,将 num的值赋予 max,只有当 num max时,才能实现将最大值查找出来,并记录其位置。 【知识模块】 模块与 VBA编程基础 7 【正确答案】 B 【试题解析】 由题意可知 sfun函数实现求除数和 求余数的功能,所以最终结果是 1 25和 1。 【知识模块】 模块与 VBA编程基础 8 【正确答案】 C 【试题解析】 依据题意可知,当执行完第 10次循环体后,此时 i的值为 10,while的条件为假,所以跳出循环,所以最终的结果为 10。 【知识模块】 模块与 VBA编程基础 9 【正确答案】 D 【试题解析】
27、 根据题意,两个 For执行的过程中,各变量的值如下所示:由上表可知,当 i为 2、 3、 5、 7时,在立即窗口中显示 i的值。 【知识模块】 模块与 VBA编程基础 10 【正确 答案】 A 【试题解析】 本段代码段是一个单重循环,对于数组中的每一个元素,依次与后面的元素进行比较,较大的数放在前面。运行这个过程,返回序列为: 10、 20、50、 40、 30、 80、 90、 60、 70、 100,表明是一个无序序列。 【知识模块】 模块与 VBA编程基础 11 【正确答案】 C 【试题解析】 m每次递增加 2,得到的数值为 2、 4、 6等,在每次循环的开始,则 t的值为 2、 (2
28、+4)、 (2+4+6)等, sum的值为 2, 2+(2+4), 2+(2+4)+(2+4+6)等符合要求。 【知识模块】 模块与 VBA编程基础 12 【正确答案】 C 【试题解析】 由题意可知, m(6)的值为 5, m(7)=4,所以 m(2+m(6)=m(7)=4。 【知识模块】 模块与 VBA编程基础 13 【正确答案】 B 【试题解析】 根据题意,执行的过程中,各变量的值如下所示:【知识模块】 模块与 VBA编程基础 14 【正确答案】 B 【试题解析】 本题考查 VBA中参数传递的知识。在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时没有说明传
29、递类型,则默认为传址传递,即形参的结果会传递给实参。本例就是传址传递,所以过程调用时 x=a,也就是 5; y=b,也就是 4。在过程内 x的值变为 5 4也就是1 25, y的值变为 5Mod4也就是 1。过程调用结束时 x和 y的值分别回送给 a和b,所以选项 B正确。 【知识模块】 模块与 VBA编程基础 15 【正确答案】 A 【试题解析】 本题考查函数过程和子过程的知识。函数过程和子过程都是过程,都可以使用 Call语句进行调用,都可以指定参数,并且都可以指定用传址还是传值的方式进行参数传递。它们除了定义的关键 字不同外的根本区别是:函数过程最终会通过过程名返回一个函数值,而子过程不
30、会。 【知识模块】 模块与 VBA编程基础 16 【正确答案】 B 【试题解析】 本题考查变量作用域的知识。在整个程序中定义了一个全局变量x,在命令按钮的单击事件中对这个 x赋值为 10,然后依次调用 s1和 s2;在 s1中对 x自加了 20;在 s2中用 Dim定义了一个局部变量 x,按照局部覆盖全局的原则,在 s2中的操作都是基于局部变量 x而不是全局变量 x。故此最终的输出结果为 30。 【知识模块】 模块与 VBA编程基础 17 【 正确答案】 B 【试题解析】 本题考查 VBA中参数传递的知识。在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用
31、ByVal声明,说明此参数为传值调用;若用 ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。 【知识模块】 模块与 VBA编程基础 18 【正确答案】 A 【试题解析】 本题考查 VBA中参数传递的知识。在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用 ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。 【知识模块】 模块与 VBA编程基础 19 【正确答案】 A 【试题解析】
32、参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用 ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。 【知识模 块】 模块与 VBA编程基础 20 【正确答案】 A 【试题解析】 本题考查 VBA中参数传递的知识。在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal声明,说明此参数为传值调用;若用 ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。 【知识模块
33、】 模块与 VBA编程基础 21 【正确答案】 B 【试题解析】 本题考查过程的知识。过程可以嵌套调用,但是不得嵌套定义。 【知识模块】 模块与 VBA编程基础 22 【正确答案】 A 【试题解析】 在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用 By: Ref声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。因此调用函数实参 x是传址方式传递,实参 y为传值方式传递,调用函数后 x值在函数中随形参改变,即 X=X mod 10=12 m
34、od 10=2,而 v不随之改变。 【知识模块】 模块与 VBA编程基础 23 【正确答案】 B 【试题解析】 static为静态变量,要在过程的实例间保留局部变量的值,用此变量,它的持续时间是整个模块执行的时间,但它的有效作用范围是由其定义位置决定的。 【知识模块】 模块与 VBA编程基础 24 【正确答案】 A 【试题解析】 在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用 ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到 实参;没有说明传递类型,则默认为传址传递。
35、 【知识模块】 模块与 VBA编程基础 25 【正确答案】 D 【知识模块】 模块与 VBA编程基础 26 【正确答案】 A 【试题解析】 本题考查 VBA中程序运行错误处理的知识。在 VBA中,程序运行错误处理的语句有三种,分别是: On Error GoTo标号,在遇到错误发生时程序转移到标号所指位置代码执行; On Error Resume Next,在遇到错误发生时不会考虑错误并继续执行下一条语句; On Error GoTo O,关闭错误处理。 【知识模块】 模块与 VBA编程基础 27 【正确答案】 A 【试题解析】 在调试 VBA程序时,通过语法分析能自动检查语法是否错误,而不能
36、检查逻辑错误。 【知识模块】 模块与 VBA编程基础 28 【正确答案】 C 【试题解析】 PrintOut:打印打开的数据库中的活动对象,也可以打印数据表、窗体、报表、数据访问页和模块。 OutputTo:可将 Access数据库对象中的数据输出到 Excel、 MS-DOS文本文件或多信息文件格式及其他格式的文件中。 MsgBox:显示包含警告信息或其他信息的消息框。 【知识模块】 模块与 VBA编程基础 29 【正确答案】 A 【试题解析】 在 VBA中,能自动检查出来的错误是语法错误,如有语法错误则程序不会继续运行,逻辑错误、注释错误是不能自动检查出来的,逻辑错误需要调试,对结果进行分
37、析,需要人为检查,注释错误不影响程序执行。 【知识模块】 模块与 VBA编程基础 30 【正确答案】 D 【试题解析】 本题考查程序调试的知识。程序调试的时候可以利用几种辅助窗口来辅助调试,它们分别是: “本地 ”窗口 显 示当前过程中变量的值: “立即 ”窗口 当应用程序处于中断模式时,允许运行代码或查询变量值; “监视 ”窗口 显示选定表达式的值;快速监视 当应用程序处于中断模式时,列出表达式的当前值:调用堆栈在 中断模式中,显示一个对话框,其中列出所有被调用且未完成运行的过程。 【知识模块】 模块与 VBA编程基础 31 【正确答案】 A 【试题解析】 立即窗口是用来进行快速的表达式计算
38、、简单方法的操作及进行程序测试的工作窗口。在代码窗口编写代码时,要在立即窗口打印变量或表达式的值,可使用 Debug Print语句。 【知识模块】 模块与 VBA编程基础 32 【正确答案】 C 【试题解析】 本题考查 VBA中如何打开对象的知识。在 VBA中,打开表的命令格式为: DoCmd OpenTable表名。另外还需知道打开查询使用DoCmd OpenQuery;打开窗体使用 DoCmd OpenForm;打开报表使用DoCmd OpenReports;打开视图使用 DoCmd OpenView;关闭窗体和报表使用 DoCmd Close等。 【知识模块】 VBA数据库编程 33
39、【正确答案】 A 【试题解析】 DoCmd OpenForm为打开窗体命令。 【知识模块】 VBA数据库编程 34 【正确答案】 A 【试题解析】 本题考查 VBA中如何打开对象的知识。在 VBA中,打开窗体的命令为: Docmd OpenForm。另外还需知道打开表使用命令Docmd OpenTable;打开报表使用命令 Docmd OpenReport;打开查询使用命令 Docmd OpenQuery;关闭窗体和报表使用命令 Docmd Close。 【知识模块】 VBA数据库编程 35 【正确答案】 D 【试题解析】 RecordCount属性返回 L,ong值,指示 Recordset
40、中的记录数目。由于对象变量 rs返回当前窗体的 RecordSet属性记录集引用,所以输出记录个数时的代码写成 rs RecordCount。 【知识模块】 VBA数据库编程 36 【正确答案】 B 【试题解析】 在 SOL语句中 UPDATE可以更新数据表,格式 UPDATE数据表名 SET字段名 =设置结果。 【知识模块】 VBA数据库编程 37 【正确答案】 B 【试题解析】 Me Recordset为记录集, Me RecordSource是记录源,本题要求输出记录集的记录数。 【知识模块】 VBA数据库编程 38 【正确答案】 B 【试题解析】 本题考查 VBA中数据库访问接口的知识
41、。在 VBA中,数据库访问接口有 3种:开放数据库互连 (ODBC)、数据访问对象 (DAO)和 Active数据对象(ADO)。 【知识模块】 VBA数据库编程 39 【正确答案】 D 【试题解析】 本题考查 VBA中数据库访问接口的知识。在 VBA中,数据库访问接口有 3种:开放数据库互连 (ODBC)、数 据访问对象 (DAO)和 Active数据对象(ADO)。 【知识模块】 VBA数据库编程 40 【正确答案】 D 【试题解析】 ADO访问数据库的顺序为: 定义实例变量; 使用 Connection对象连接到数据源; 设置参数并执行命令; 使用 Recordset对象打开记录集; 在
42、程序中操作记录集; 最后关闭回收有关对象。 【知识模块】 VBA数据库编程 41 【正确答案】 C 【试题解析】 ADO对象模型包括 5个对象, 分别为 Connection对象、Command对象、 Recordset对象、 Field对象和 Error对象。 Connection对象:用于建立与数据库的连接。通过连接可从应用程序访问数据源,它保存诸如指针类型、连接字符串、查询超时、连接超时和缺省数据库这样的连接信息。 Command对象:在建立数据库连接后,可以发出命令操作数据源。一般情况下, Command对象可以在数据库中添加、删除或更新数据,或者在表中进行数据查询。 Command对
43、象在定义查询参数或执行存储过程时非常有用。 Recordset对象:表示数据操作返回的记录集。这个记录集是一个连接的数据库中的表,或者是 Command对象的执行结果返回的记录集。所有对数据的操作几乎都是在 Recordset对象中完成的,可以完成指定行、移动行、添加、更改和删除记录操作。 Field对象:表示记录集中的字段数据信息。 Error对象:表示数据提供程序出错时的扩展信息。 【知识模块】 VBA数据库编程 42 【正确答案】 A 【试题解析】 DAO模型的分层结构包含了一个复杂的可编程数据关联对象的层次 ,其中 DBEngine对象处于最顶层,它是模型中唯一不被其他对象所包含的数据库引擎本身。 【知识模块】 VBA数据库编程