Access第八章VBA.docx
《Access第八章VBA.docx》由会员分享,可在线阅读,更多相关《Access第八章VBA.docx(9页珍藏版)》请在冰豆网上搜索。
Access第八章VBA
2011年3月
(23)下列表达式中,能正确表示条件“x和y都是奇数”的是
A)xMod2=0AndyMod2=0B)xMod2=0OryMod2=0
C)xMod2=1AndyMod2=1D)xMod2=1OryMod2=1
(24)若在窗体设计过程中,命令按钮Command0的事件属性设置如下图所示,则含义是
A)只能为"进入"事件和"单击"事件编写事件过程
B)不能为"进入"事件和"单击"事件编写事件过程
C)“进入”事件和“单击”事件执行的是同一事件过程
D)已经为“进入”事件和“单击”事件编写了事件过程
(25)若窗体Frm1中有一个命令按钮Cmd1,则窗体和命令按钮的Click事件过程名分别为
A)Form_Click() Command1_Click()
B)Frm1_Click() Command1_Click()
C)Form_Click() Cmd1_Click()
D)Frm1_Click() Cmd1_Click()
(26)在VBA中,能自动检查出来的错误是
A)语法错误 B)逻辑错误C)运行错误 D)注释错误
(27)下列给出的选项中,非法的变量名是
A)Sum B)Integer_2 C)Rem D)Form1
(28)如果在被调用的过程中改变了形参变量的值;但又不影响实参变量本身,这种参数传递方式称为
A)按值传递 B)按地址传递C)ByRef传递 D)按形参传递
(29)表达式“B=INT(A+0.5)”的功能是
A)将变量A保留小数点后1位 B)将变量A四舍五入取整
C)将变量A保留小数点后5位 D)舍去变量A的小数部分
(30)VBA语句“DimNewArray(10)asInteger”的含义是
A)定义10个整型数构成的数组NewArrayB)定义11个整型数构成的数组NewArray
C)定义1个值为整型数的变量NewArray(10) D)定义1个值为10的变量NewArray
(31)运行下列程序段,结果是
Form=10to1step0
k=k+3
Nextm
A)形成死循环 B)循环体不执行即结束循环
C)出现语法错误 D)循环体执行一次后结束循环
(32)运行下列程序,结果是
PrivateSubCommand32_Click()
f0=1:
f1=1:
k=1
DoWhilek<=5
f=f0+f1
f0=f1
f1=f
k=k+1
Loop
MsgBox"f="&f
EndSub
A)f=5 B)f=7 C)f=8 D)f=13
(33)有如下事件程序,运行该程序后输出结果是
PrivateSubCommand33_Click()
DimxAsInteger,yAsInteger
x=1:
y=0
DoUntily<=25
y=y+x*x
x=x+1
Loop
MsgBox"x="&x&",y="&y
EndSub
A)x=1,y=0 B)x=4,y=25C)x=5,y=30 D)输出其他结果
(34)下列程序的功能是计算sum=1+(1+3)+(1+3+5)+……+(1+3+5+……+39)
PrivateSubCommand34_Click()
t=0:
m=1:
sum=0
Do
t=t+m
sum=sum+t
m=______
LoopWhilem<=39
MsgBox"Sum="&sum
EndSub
为保证程序正确完成上述功能,空白处应填入的语句是
A)m+1 B)m+2C)t+1 D)t+2
(35)下列程序的功能是返回当前窗体的记录集
SubGetRecNum()
DimrsAsObject
Setrs=______
MsgBoxrs.RecordCount
EndSub
为保证程序输出记录集(窗体记录源)的记录数,空白处应填入的语句是
A)Recordset B)Me.Recordset C)RecordSource D)Me.RecordSource
(9)在VBA中要将数值表达式的值转换为字符串,应使用函数str()。
(10)运行下列程序,输入如下两行:
Hi,
Iamhere.
弹出的窗体中的显示结果是Hi,。
PrivateSubCommand11_Click()
DimabcAsString,sumAsstring
sum=""
Do
abc=InputBox("输入abc")
IfRight(abc,1)="."ThenExitDo
sum=sum+abc
Loop
MsgBoxsum
EndSub
(11)运行下列程序,窗体中的显示结果是:
x=21。
OptionCompareDatabase
DimxAsInteger
PrivateSubForm_Load()
x=3
EndSub
PrivateSubCommand11_Click()
StaticaAsInteger
DimbAsInteger
b=x^2
fun1x,b
fun1x,b
MsgBox"x="&x
EndSub
Subfun1(ByRefyAsInteger,ByValzAsInteger)
y=y+z
z=y-z
EndSub
(12)“秒表”窗体中有两个按钮(“开始/停止”按钮bOK,“暂停/继续”按钮bPus);一个显示计时的标签1Num;窗体的“计时器间隔”设为100计时精度为0.1秒。
要求:
打开窗体如图1所示;第一次单击“开始婷止”按钮,从0开始滚动显示计时(见图2);10秒时单击“暂停/继续”按钮,显示暂停(见图3),但计时还在继续;若20秒后再次单击“暂停/继续”按钮,计时会从30秒开始继续滚动显示;第二次单击“开始/停止”按钮,计时停止,显示最终时间(见图4)。
若再次单击“开始/停止”按钮可重新从0开始计时。
相关的事件程序如下。
请在空白处填入适当的语句,使程序可以完成指定的功能。
OptionCompareDatabase
Dimflag,pauseAsBoolean
PrivateSubbOKClick()
flag=true
Me!
bOK.Enabled=True
Me!
bPus.Enabled=flag
EndSub
PrivateSubbPus_Click()
pause=Notpause
Me!
bOK.Enabled=NotMe!
bOK.Enabled
EndSub
PrivateSubFormOpen(CancelAsInteger)
flag=False
pause=False
Me!
bOK.Enabled=True
Me!
bPus.Enabled=False
EndSub
PrivateSubFormTimer()
StaticcountAsSingle
Ifflag=TrueThen
Ifpause=FalseThen
Me!
1Num.Caption=Round(count,1)
EndIf
count=count+1
Else
count=0
EndIf
EndSub
(13)数据库中有“学生成绩表”,包括“姓名”、“平时成绩”、“考试成绩”和“期末总评”等字段。
现要根据“平时成绩”和“考试成绩”对学生进行“期末总评”。
规定:
“平时成绩”加“考试成绩”大于等于85分,则期末总评为“优”,“平时成绩”加“考试成绩”小于60分,则期末总评为“不及格”,其他情况期末总评为“合格”。
下面的程序按照上述要求计算每名学生的期末总评。
请在空白处填入适当的语句,使程序可以完成指定的功能。
PrivateSubCommand0_Click()
DimdbAsDAO.Database
DimrsAsDAO.Recordset
Dimpscj,kscj,qmzpAsDAO.Field
DimcountAsInteger
Setdb=CurrentDb()
Setrs=db.OpenRecordset("学生成绩表")
Setpscj=rs.Fields("平时成绩")
Setkscj=rs.Fields("考试成绩")
Setqmzp=rs.Fields("期末总评")
count=0
DoWhileNotrs.EOF
【14】
Ifpscj+kscj>=85Then
qmzp="优"
ElseIfpscj+kscj<60Then
qmzp="不及格"
Else
qmzp="合格"
EndIf
rs.Update
count=count+1
【15】
Loop
rs.Close
db.Close
Setrs=Nothing
Setdb=Nothing
MsgBox"学生人数:
"&count
EndSub
2010年9月
(26)要将一个数字字符串转换成对应的数值,应使用的函数是
A)ValB)SingleC)Asc D)Space
(27)下列变量名中,合法的是
A)4A B)A-1C)ABC_1D)private
(28)若变量i的初值为8,则下列循环语句中循环体的执行次数为
DoWhilei<=17
i=i+2
Loop
A)3次B)4次C)5次D)6次
(29)InputBox函数的返回值类型是
A)数值B)字符串C)变体D)视输入的数据而定
(30)下列能够交换变量X和Y值的程序段是
A)Y=X:
X=Y
B)Z=X:
Y=Z:
X=Y
C)Z=X:
X=Y:
Y=Z
D)Z=X:
W=Y:
Y=Z:
X=Y
(31)窗体中有命令按钮Commandl,事件过程如下:
PublicFunctionf(xAsInteger)AsInteger
DimyAsInteger
x=20:
y=2
f=x*y
EndFunction
PrivateSubCommandl_Click()
DimyAsInteger
StaticxAsInteger
x=10
y=5
y=f(x)
Debug.Printx;y
EndSub
运行程序,单击命令按钮,则立即窗口中显示的内容是
A)105B)1040C)205D)2040
(32)窗体中有命令按钮Commandl和文本框Text1,事件过程如下:
Functionresult(ByValxAsInteger)AsBoolean
IfxMod2=0Then
result=True
Else
result=False
EndIf
EndFunction
PrivateSubCommandl_Click()
x=Val(InputBox(“请输入一个整数”))
If______Then
Text1=Str(x)&“是偶数.”
Else
Text1=Str(x)&“是奇数.”
End If
EndSub
运行程序,单击命令按钮,输入19,在Text1中会显示“19是奇数”.那么在程序的空白处应填写
A)result(x)=“偶数”
B)result(x)
C)resuIt(x)=“奇数”
D)NOTresult(x)
(33)窗体有命令按钮Commandl和文本框Textl,对应的事件代码如下:
PrivateSubCommandl_Click( )
For i=1 To 4
x=3
Forj=1To3
Fork=1To2
x=x+3
Nextk
Nextj
Nexti
Text1.Value=Str(x)
EndSub
运行以上事件过程,文本框中的输出是
A)6B)12C)18D)21
(34)窗体中有命令按钮run34,对应的事件代码如下:
PrivateSubrun34_Enter()
DimnumAsInteger,aAsInteger,bAsInteger,iAsInteger
Fori=1To10
num=InputBox(“请输入数据:
”,“输入”)
IfInt(num/2)=num/2Then
a=a+1
Else
b=b+1
EndIf
Nexti
MsgBox(“运行结果:
a=”&Str(a)&“,b=”&Str(b))
EndSub
运行以上事件过程,所完成的功能是
A)对输入的10个数据求累加和
B)对输入的10个数据求各自的余数,然后再进行累加
C)对输入的10个数据分别统计奇数和偶数的个数
D)对输入的10个数据分别统计整数和非整数的个数
(35)运行下列程序,输入数据8,9,3,0后,窗体中显示结果是
PrivateSubForm_click()
DimsumAsInteger,mAsInteger
sum=0
Do
m=InputBox(“输入m”)
sum=sum+m
LoopUntilm=0
MsgBoxsum
EndSub
A)0B)17 C)20D)21
(9)在VBA中要判断一个字段的值是否为Null,应该使用的函数是isnull。
(10)一下列程序的功能是求方程:
x2十y2=1000(平方和为1000)的所有整数解。
请在空白处填入适当的语句,使程序完成指定的功能。
PrivateSubCommandl_Click()
Dimxasinteger,yasinteger
Forx=-34To34
Fory=-34To34
Ifx*x+y*y=1000Then
Debug.Printx,y
EndIf
Nexty
Nextx
EndSub
(11)下列程序的功能是求算式:
1+1/2!
+1/3!
+1/4!
+……前10项的和(其中n!
的含义是n的阶乘)。
请在空白处填入适当的语句,使程序完成指定的功能。
PrivateSubCommandl_Click()
Dimiasinteger,sassingle,aassingle
a=1:
s=0
Fori=1To10
a=a/i
s=s+a
Nexti
Debug.Print“1+1/2!
十1/3!
+.…=”;s
EndSub
(12)在窗体中有一个名为Command12的命令按钮,Click事件功能是:
接收从键盘输入的10个大于0的不同整数,找出其中的最大值和对应的输入位置。
请在空白处填入适当语句,使程序可以完成指定的功能。
PrivateSubCommand12_Click()
max=0
maxn=0
fori=1To10
num=Val(InputBox(‘,请输入第“&i&”个大于0的整数:
“))
Ifmax max=num
maxn=I
EndIf
Nexti
MsgBox(”最大值为第“&maxn&”个输入的“&max)
EndSub
(13)数据库的”职I基本情况表“有”姓名“和”职称“等字段,要分别统计教授、副教授和其他人员的数量。
请在空白处填入适当语句,使程序可以完成指定的功能。
PrivateSubCommands_Click()
DimdbAsDAO.Database
DimrsAsDAO.Recordset
DimzcAsDAO.Field
DimCountlAsInteger,Count2AsInteger,Count3AsInteger
Setdb=CurrentDb()
Setrs=db.OpenRecordset(”职工基本情况表“)
Setzc=rs.Fields(”职称“)
Countl=0:
Count2=0:
Count3=0
DoWhileNotrs.Edit
SelectCasezc
CaseIs=”教授“
Countl=Countl+1
CaseIs=”副教授“
Count2=Count2+1
CaseElse
Courit3=Count3+1
EndSelect
rs.movenext
Loop
rs.Close
Setrs=Nothing
Setdb=Nothing
MsgBox”教授:
“&Count1&”,副教授:
“&Count2&”,其他:
“&count3
EndSub