1、国家二级 ACCESS机试选择题( VBA编程)模拟试卷 5及答案与解析 一、选择题 1 在 VBA中,要引用 “学生名单 ”窗体中的控件对象,正确的格式是 ( A) Forms!学生名单 !控件名称 属性名称 ( B) Forms学生名单控件名称 属性名称 ( C) Forms!学生名单 !控件名称 !属性名称 ( D) Forms!学生名单控件名称 属性名称 2 在窗体中有一个名称为 Command1的按钮,该模块内还有一个函数过程: Public Function f(x As Integer)As Integer Dim y As Integer x=20: y=2: f=x*y En
2、d Function Private Sub Command1_Click() Dim y As Integer Static x As Integer x=10 y=5 y=f(x) Debug Print x; y End Sub 打开窗体运行后,如果单击按钮,则在立即窗口上显示的内容是 ( A) 105 ( B) 1040 ( C) 205 ( D) 2040 3 若数据库中有表 STUD,则下列函数实现的功能是 Function DropPrimaryKey() Dim strSQL As String strSQL=“ALTERTABLESTUDDropCONSTRAINTPRIMA
3、RY_KEY“ CurrentProject Connection ExecutestrSQL End Function ( A)为关系 STUD中设置主关键字 ( B)取消关系 STUD中的主 关键字 ( C)为关系 STUD添加索引 ( D)取消关系 STUD的全部索引 4 下列子过程实现对 “教师表 ”中的基本工资涨 10的操作。 Sub GongZi() Dim cn As New ADODB Connection Dim rs As New ADODB Recordset Dim fd As ADODB Field Dim strConnect As String Dim strSQ
4、L As String Set cn=CurrentProject Connection strSQL=“Select基本工资 from教师表 “ rs Open strSQL, cn, adOpenDynamic, adLockOptimistic, adCmdText Set fd=rs Fields(“基本工资 “) Do While Not rs EOF rs Update rs MoveNext Loop rs Close cn Close Set rs=Nothing Set cn=Nothing End Sub 程序空白处 应该填写的语句是 ( A) fd=fd*1 1 ( B)
5、 rs=rs*1 1 ( C)基本工资 =基本工资 *1 1 ( D) rs fd=rs fd*1 1 5 在计算控件的表达式中必须使用运算符是 ( A) = ( B) ! ( C)圆括号 () ( D)方括号 6 在窗体 “学生信息 ”中,若要用宏操作 GoToControl将焦点移到 “学号 ”字段上,则该宏操作的参数 “控件名称 ”应设置为 ( A) F0ms!学生信息 !学 号 ( B) 学生信息 !学号 ( C) 学号 !学生信息 ( D) 学号 7 下列关于宏操作 MessageBox的叙述中,错误的是 ( A)可以在消息框中给出提示或警告 ( B)可以设置在显示消息框的同时扬声器
6、发出嘟嘟声 ( C)可以设置消息框中显示的按钮的数目 ( D)可以设置消息框中显示的图标的类型 8 内部计算函数 Min的功能是 ( A)计算所有指定字段值的最小值 ( B)计算全部数值型字段的最小值 ( C)计算一条记录中数值型字段的最小值 ( D)计算一条记录中指定字段的最小值 9 打开报表的宏命令是 ( A) DocmD OpenTable ( B) DocmD OpenReport ( C) OpenTable ( D) OpenReport 10 在 Hungarian命名法中使用约定的字首码代表特定的类型,代表复选框的字首码是 ( A) Chk ( B) Cbo ( C) cmd
7、( D) opt 11 已知事件对应的程序代码如下: Private Sub CommandO_Click() Dim J As Integer J=100 Call GetData(J+5) MsgBox J End Sub Private Sub GetData(ByRef f As Integer) f=f+120 End Sub 运行程序,则输出结果是 ( A) 100 ( B) 120 ( C) 125 ( D) 225 12 下列选项中,与 VBA语句: DimNew, sum!等价的是 ( A) Dim New As Double, sum As Single ( B) Dim
8、New As Integer, slim As Double ( C) Dim New As Integer, sum As Single ( D) Dim New As Double, sum As Integer 13 VBA中要进行读文件操作,应使用的命令是 ( A) Input ( B) Read ( C) Get ( D) Fgets 14 已知过程对应的代码如下: Sub Proc0 f1=0: t2=1 For n=1 to 5 f=f1+f2 Debug Printf f1=t2 f2=f Next n End Sub 过程 Proc在立即窗口中依次显示的数值是 ( A) 12
9、358 ( B) 12345 ( C) 1261015 ( D) 12468 15 “用户表 ”中包含 4个字段:用户名 (文本,主关键字 ),密码 (文本 ),登录次数(数字 ),最近登录时间 (日期时间 )。在 “登录界面 ”的窗体中有两个名为 tUser和tPassword的文本框,一个登录按钮 CommandO。进入登录界面后,用户输入用户名和密码,点击登录按钮后,程序查找 “用户表 “。如果用户名和密码全部正确,则登录次数 加 1,显示上次的登录时间,并记录本次登录的当前日期和时间;否则,显示出错提示信息。 为完成上述功能,请在程序中 处填入适当语句。 Private Sub Com
10、mand0_Click() Dim ca As New ADODB Connection Dim rs As New ADODB Recordset Dim fdl As ADODB Field Dim fd2 As ADODB Field Dim strSQL As String Setcn=CurrentProject Connection strSQL=“Select登录次数,最近登录时间 From用户表 Where用户名 =“Me!tUser “And密码 =“ Me!tPassword “ rs Open strSQL, ca, adOpenDynamic, adLockOptimi
11、stic, adCmdText Set fdl=rs Fields(“登录次数 “) Set fd2=rs Fields(“最近登录时间 “) lf Not rs EOF Then fdl=fdl+1 MsgBox“用户已经登录: “ fdl “次 “ Chr(13) Chr(13) ”上次登录时间: “fd2 fd2=Now() Else MsgBox“用户名或密码错误。 “ End If rs Close cn Close Set rs=Nothing Set cn=Nothing End Sub ( A) rs Update ( B) Update ( C) rs Change ( D)
12、 Change 16 以下程序的功能是求 “x3-5”表达式的值,其中 x的值由文本框 Text0输入,运算的结果由文本框 Text3输出。 Private Sub Command0_Click() Dim xAs Integer, y As Long Me Text0=x y=x3-5 Me Text3=y End Sub 上述程序有错误。错误的语句是 ( A) Dim x As Integer ( B) Me Text0=x ( C) Me Text3=y ( D) Dim y As Long 17 下列代码实现的功能是:若在文本框 tNum中输入课程编号,则将在文本框tName显示 “课
13、表 ”中对应的 “课程名称 ”。 Private Subt Num_AtterUpdate() Me!tName=(“课程名称 “, “课表 “, “课程编号 =“ Me!tNum “) End Sub 则程序中 处应该填写的是 ( A) DLookup ( B) Switch ( C) DFind ( D) Choose 18 已知代码下: Dim strSQL As String strSQL=“CreateTableStudent(“ strSQL=strSQL+“SnoCHAR(10)PRIMARYKEY, “ strSQL=strSQL+“SnameVARCHAR(1 5)NOT N
14、ULL, “ strSQL=strSQL+“SphotolMAGE); “ DoCmd Run SQLstrSQL 以上代码实现的功能是 ( A)创建表 Student ( B)删除 Student表中指定的字 段 ( C)为 Student表建立索引 ( D)为 Student表设置关键字 19 在 VBA变量的 Hungarian命名法中,代表复选框的字首码是 ( A) Chk ( B) Cbo ( C) cmd ( D) opt 20 在窗体上有一个按钮,当单击该按钮时,若将窗体标题改为 “欢迎 ”,则设计该宏时应选择的宏操作是 ( A) AddMenu ( B) RepaintObje
15、ct ( C) SetMenultem ( D) SetProperty 21 有宏 M1,依次包含 Macro1和 Macro2两个子宏,以下叙 述中错误的是 ( A)创建子宏的目的是方便对宏的管理 ( B)可以用 RunMacro宏操作调用子宏 ( C)调用 MI中 Macro1的正确形式是 M1 Maero1 ( D)如果调用 M1则顺序执行 Macro1和 Macro2两个子宏 22 内置计算函数 Max的功能是 ( A)计算所有指定字段值的最大值 ( B)计算全部数值型字段的最大值 ( C)计算一条记录中数值型字段的最大值 ( D)计算一条记录中指定字段的最大值 23 打开数据表的是
16、宏命令是 ( A) DocmD, OpenTable ( B) DocmD OpenReport ( C) OpenTable ( D) OpertReport 24 与 VBA语句 DimVar, sum!等价的是 ( A) Dim Var As Integer, sum As Single ( B) Dim Var As Integer, sum As Double ( C) Dim Var As Single, sum As Double ( D) Dim Var As Double, Sum As Single 25 VBA程序中,打开窗体应使用的命令是 ( A) DoCmd Open
17、Form ( B) Docmd OpenReport ( C) OpenForm ( D) OpenReport 26 与 DateDiff(“m“, #1893-12-26#, Date()等价的表达式是 ( A) (Month(date()-Month(#1893-12-26#) ( B) (MonthName(date()-MonthName(#1893-12-26#) ( C) (year(date()-year(#1893-12-26#)*12-(month(date()-month(#1893-12-26#) ( D) (year(date()-year(#1893-12-26#)
18、*12+(month(date()-month(#1893-12-26#) 27 要从记录集中得到符合条件的特定字段的值,应使用的内置函数是 ( A) DLookup ( B) DCotmt ( C) DFirst ( D) DLast 28 调用下面子过程,消息框显示的结果是 Sub SFun() Dim x, y, m x=100: y=200 Ifxy Then m=x Else m=y End If MsgBoxm End Sub ( A) 300 ( B) 400 ( C) 100 ( D) 200 29 已知在 “用户表 ”中包含 4个字段:用户名 (文本,主关键字 ),密码 (文
19、本 ),登录次数 (数字 ),最近登录时间 (日期时间 )。在 “登录界面 ”的窗体中有两个名为“tUser”和 “tPassword”的文本框,一个登录按钮 “Command0“。进入登录界面后,用户输入用户名和密码,点击登录按钮后,程序查找 “用户表 ”。如果用户名和密码全部正确,则登录次数加 1,显示上次的登录时间,并记录本次登录的当前日期和时间;否则,显示出错提示信息。 为完成上述功能,请在程序 处填入适当语句。 PrivateSub Command0_Click() Dim cn As New ADODB Connection Dim rs As New ADODB Recordse
20、t Dim fd1 As ADODB Field Dim fd2 As ADoDB Field Dim strSQL AS String Set en=CurrentProject Connection strSQL=“Select登录次数,最近登录时间 From用户表 Where用户名 =“Me!tUser “And密码 =“ Me!tPassword “ rs Open strSQL, cn, adOpenDynamic, adLockOptimistic, adCmdText Set fd1=rs Fields(“登录次数 “) Set fd2=rs Fields(“最近登录时间 “)
21、IfNot rs EOF Then fdl=fdl+1 MsgBox“用户已经登录: “ fdl “次 “ Chr(13) Chr(13) “上次登录 时间: “fd2 fd2= rs Update Else MsgBox“用户名或密码错误。 “ End If rs Close cn Close Set rs=Nothing Set cn=Nothing End Sub ( A) Now() ( B) Date() ( C) Time() ( D) Day() 30 以下程序的功能是求 “x3*5”表达式的值,其中 x的值由文本框 “Text0”输入,运算的结果由文本框 “Textl”输出。
22、Private Sub Command0_Click() Dim x As Integer, y As Long Me Text0=x y=x3*5 Me Text1=y End Sub 运行上述程序时,会有错误。错误的语句是 ( A) Dim x As Integer ( B) Me Text0=x ( C) Me Text1=y ( D) Dim y As Long 国家二级 ACCESS机试选择题( VBA编程)模拟试卷 5答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 VBA中引用 Access窗体中的控件对象的格式为: Forms!窗体名称 !控件名 属性名 ,所以选项
23、A正确。 【知识模块】 VBA编程 2 【正确答案】 D 【试题解析】 本题主要考查局部变量的使用和函数调用过程中的参数传递。参数传递的方式有传值和传址两种形式,其中默认的方式是传址。本题中 Click事件和函数 f都有变量 y,但都是各自的局部变量,只是同名而已。同样 Click事件和函数 f中的 x也是局部变量 (形式参数也属于局部变量 ),但此处的参数传递是 传址,因此函数 f对变量 x的修改会带回到 Click事件。在 Click事件中,调用函数 f的同时将参数 x以传址的方式传给了函数 f。在函数 f中 x被重新赋值为 20,并与函数 f的局部变量 y相乘得结果 40,并通过函数 f
24、传回了 Click事件。在 Click事件中该结果被赋值给该事件的局部变量 y,所以调用的结果是 Click事件中的局部变量 x和 y分别变成了 20和 40。所以此正确答案为选项 D。 【知识模块】 VBA编程 3 【正确答案】 D 【试题解析】 首先,函数内定义字符串变量 strSOL;然后将 SOL语句赋值 ,该语句的功能是将表 STUD中字段学号取消为关键字 (ALTER修改、 Drop删除、PRIMARY_KEY关键字 );最后执行语句执行 SQL。所以应选择选项 B。 【知识模块】 VBA编程 4 【正确答案】 A 【试题解析】 程序中 “Do While Not rs EOF”中
25、 “rs EOF”表示文件记录是否是该查询结果集的最后一条记录,如果是,则返回真,如果不是,则返回假。 “Set fd=rs Fields(“基本工资 “)”语句为设置 “基本工资 ”字段的引用,本题中需要对 “教师表 ”中的基本工资涨 10,所以程序空白处应该填上 “fd=fd*1 1”。 【知识模块】 VBA编程 5 【正确答案】 A 【试题解析】 计算控件的表达式中必须以 “=”开头,所以选项 A正确。 【知识模块】 VBA编程 6 【正确答案】 D 【试题解析】 使用 GoToControl操作,可以把焦点移到打开的窗体、窗体数据表、表数据表或查询数据表中当前记录的指定字段或控件上。要
26、想将焦点移动到“学号 ”字段,必需先引用该字段。在 Access中引用窗体对象上某一控件的语法格式为: Forms!窗体名称 !控件名称 ,属性名 ,由上述语法格式可知, “控件名称 “参数应设置为该控件的字段名称,所以选择选项 D。 【知识模块】 VBA编程 7 【正确答案】 C 【试题解析】 宏操作 MessageBox可以设置 “消息 ”、 “发嘟嘟声 ”、 “类型 ”以及“标题 ”信息,不能设置消息框中显示的按钮的数目,所以选项 C错误。 【知识模块】 VBA编程 8 【正确答案】 A 【试题解析】 Min函数的功能是求指定字段值的最小值,所以选项 A正确。 【知识模块】 VBA编程
27、9 【正确答案】 D 【试题解析】 Docmd对象是 VBA中使用的,在宏中打开报表对象,直接使用宏命令 “OpenReport”,所以选项 D正确。 【知识模块】 VBA编程 10 【正确答案】 A 【试题解析】 Hungarian符号使用一组代表数据类型的码。用小写字母作为变量名的前缀, “Chk”代表复选框, “Cbo”代表组合框, “cmd”代表命令按钮, “opt”代表选项按钮,所以选项 A正确。 【知识模块】 VBA编程 11 【正确答案】 A 【试题解析】 ByRef是指参数按地址传递,但是 在这里面参数是一个表达式(J+5),表达式的结果会赋给一个 Il缶时变量,然后把临时变量
28、的地址传递给 f,因此 f的计算结果并不会影响 J的值。 【知识模块】 VBA编程 12 【正确答案】 C 【试题解析】 整数型数据类型标识为 Integer,用 “ ”表示;单精度数据类型标识为 Single,用 “!”表示,所以选项 A正确。 【知识模块】 VBA编程 13 【正确答案】 A 【试题解析】 语法: Input#filenumber, varname,其功能是从已打开的顺序文件中读出一行并将它 分配给 String变量,所以选择选项 A。 【知识模块】 VBA编程 14 【正确答案】 A 【试题解析】 程序执行过程如下: 程序初始化 f1=0; f2=1; 当 n=1时; F
29、or n=1 to 5;执行第一次循环,条件为 true; f=f1+f2=0+1=1输出 f的值为 1; f1=f2=1; f2=f=2; 当 n=2时;执行第二次循环,条件为 true: f=f1+f2=1+1=2输出 f的值为 2;f1=f2=1; f2=f=2; 当 n=3时;执行第三次循环,条件为 true; f=f1+f2=1+2=3输出 f的值为 3;f1=f2=2: f2=f=3; 当 n=4时:执行第四次循环,条件为 true; f=f1+f2=2+3=5输出 f的值为 5;f1=f2=3; f2=f=5; 当 n=5时;执行第五次循环,条件为 true; f=f1+f2=3
30、+5=8输出 f的值为 8;f1=f2=5; f2=f=8; 当 n=6时;执行第六次循环,条件为 false,结束循环。 综上所述,程序输出结果依次为 1, 2, 3, 5, 8,所以选项 A正确。 【知识模块】 VBA编程 15 【 正确答案】 A 【试题解析】 本题中的 if语句是是否到文件结尾,当执行更新操作 fd1=fd1+1;fd2=Now()之后,都需要使用 rs update语句将所更新的记录数据存储到数据库中,所以选项 A正确。 【知识模块】 VBA编程 16 【正确答案】 B 【试题解析】 根据题意,程序功能是求 “x3*5”表达式的值, x的值由文本框Text0输入,则在
31、程序中应该将 TextO的值赋给变量 x,而程序中 Me Text0=x的功能是将 x的值赋给 Text0,所以选择选项 B。 【知识模块】 VBA编程 17 【正确答案】 A 【试题解析】 根据题意, 处的代码应实现的功能是在 “课程表 ”中查询出 “课程编号 ”等于 tNum文本框中数据的 “课程名称 ”,此 DLookup函数有此功能。DLookup函数的格式为: DLookup(表达式,记录集 ,条件式 )。其中表达式用来指定要查询的字段,即题中的 “课程名称 ”。记录集用来指定要查询的范围,即题中的 “课程表 ”。条件式用来指定查询条件,即题中的 “课程编号 =”Me!tNum“”,
32、所以选择选项 A。 【知识模块】 VBA编程 18 【正确答案 】 A 【试题解析】 在 SOL语言中,可以使用 CREATE TABLE语句建立基本表,本题是将创建基本表 student的 SQL语句,存放在 StrsQL变量中,然后使用Docmd RunsQL命令,执行该 sQL语句,所以本题是动态创建表对象 student,所以选项 A正确。 【知识模块】 VBA编程 19 【正确答案】 A 【试题解析】 Hungarian符号使用一组代表数据类型的码。用小写字母作为变量名的前缀, “Chk”代表复选框, “Cbo”代表组合框, “cmd”代表命令按钮, “opt”代表选项按钮,所以选项
33、 A正确。 【知识模块】 VBA编程 20 【正确答案】 D 【试题解析】 根据题意,单击按钮时调用宏,宏的功能是将窗体的标题改为 “欢迎 “,窗体的标题属于窗体的一个属性,则宏的功能是改变窗体的属性值, A选项中 AddMenu的功能是增加菜单,不符合题意。 B选项 RepaintObject功能是重画窗体,不符合题。 C选项 SetMenultern功能是设置菜单元素,不符合题意 D。 【知识模块】 VBA编程 21 【正确答案】 D 【试题解析】 创建子宏的目的是方便 对宏的管理, A选项正确;使用 RunMacro宏操作命令可以调用子宏,调用的格式为:宏名子宏名, B、 C选项正确;如
34、果调用 M1则只会执行 Macrol,不会执行 Macro2,所以选项 D叙述错误。 【知识模块】 VBA编程 22 【正确答案】 A 【试题解析】 Max函数的功能是求指定字段值的最大值,所以选项 A正确。 【知识模块】 VBA编程 23 【正确答案】 C 【试题解析】 Docmd对象是 VBA中使用的,在宏中打开表对象,直接使用宏命令 “OpenTable”,所以选项 C正确 。 【知识模块】 VBA编程 24 【正确答案】 A 【试题解析】 整数型数据类型标识为 Integer,用 “ ”表示:单精度数据类型标识为 Single,用 “!”表示,所以选项 A正确。 【知识模块】 VBA编
35、程 25 【正确答案】 A 【试题解析】 Docmd对象是 VBA中使用的,打开窗体对象,使用命令“Docmd OpenForm”,所以选项 A正确。 【知识模块】 VBA编程 26 【正确答案】 D 【试题解析】 日期时间函数 DateDiff(间隔类型,日期 1,日期 2, W1, W2)返回两个日期之间按照间隔类型指定的时间间隔数目。题目中的间隔类型为 ”m”表示月,函数 Date()获得当前系统日期,表达式的结果是当前系统日期与 1893-12-26之间相差的月数,即为 “(当前年份 -1893)*12+(当前月份 -12)”,所以选择选项 D。 【知识模块】 VBA编程 27 【正确
36、答案】 A 【试题解析】 DLookup表示从记录集中检索特定字段的值: DCount函数用于返回指定记录集中的记录数;如果只需要表或查询中特定字段的任意值,则可以使用 DFirst和 DLast函数从该字段返回随机记录。可以在宏、模块、查询表达式或者窗体或报表上的计算控件中使用 DFirst和 DLast函数。所以选项 A正确。 【知识模块】 VBA编程 28 【正确答案】 D 【试题解析】 本题的 if else语句功能是将变量 x和 y中的较大值赋给变量 m,所以选项 D正确。 【知识模块】 VBA编程 29 【正确答案】 A 【试题解析】 记录本次登录的当前日期和时间使用 Now函数,所以选项 A正确。 【知识模块】 VBA编程 30 【正确答案】 B 【试题解析】 根据题意,程序功能是求 “x3*5”表达式的值, x的值由文本框Text0输入,则在程序中应该将。 Fext0的值赋给变量 x,而程序中 Me Text0=x的功能是将 x的值赋给 Text0,所以选择选项 B。 【知识模块】 VBA编程