vba编程练习题最近几年真题.docx
《vba编程练习题最近几年真题.docx》由会员分享,可在线阅读,更多相关《vba编程练习题最近几年真题.docx(21页珍藏版)》请在冰豆网上搜索。
vba编程练习题最近几年真题
VBA编程练习题
一、假定有以下循环结构
DoUntil条件
循环体
Loop
那么正确的表达是
A)若是“条件”值为0,那么一次循环体也不执行
B)若是“条件”值为0,那么至少执行一次循环体
C)若是“条件”值不为0,那么至少执行一次循环体
D)不论“条件”是不是为“真”,至少要执行一次循环体
2.设有以下窗体单击事件进程:
PrivateSubForm_Click()
a=1
Fori=1To3
SelectCasei
Case1,3
a=a+1
Case2,4
a=a+2
EndSelect
Nexti
MsgBoxa
EndSub
打开窗体运行后,单击窗体,那么消息框的输出内容是5。
3.在窗体中添加一个命令按钮(名为Command1)和一个文本框(名为text1),然后编写如下事件进程:
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger,zAsInteger
x=5:
y=7:
z=0
Me!
Text1=""
Callp1(x,y,z)
Me!
Text1=z
EndSub
Subp1(aAsInteger,bAsInteger,ByValcAsInteger)
c=a+b
EndSub
打开窗体运行后,单击命令按钮,文本框中显示的内容是。
4.以下程序段运行终止后,变量x的值为
x=2
y=4
Do
x=x*y
y=y+1
LoopWhiley<6
A)4B)40C)8D)20
5.在窗体上添加一个命令按钮(名为Command1),然后编写如下事件进程:
PrivateSubCommand1_Click()
Fori=1To4
x=4
Forj=1To3
x=3
Fork=1To2
x=2
x=x+6
Nextk
Nextj
Nexti
MsgBoxx
EndSub
打开窗体后,单击命令按钮,消息框的输出结果是
A)7B)15C)157D)8
6.设有如下代码:
x=1
do
x=x+3
loopuntil>=10或>7
运行程序,要求循环体执行3次后终止循环,在空白处填入适当语句。
7.在Access中,DAO的含义是:
A.开放数据库互连应用编程接口B.数据库访问对象
C.Active数据对象D.数据库动态链接库
8.在Access中,ADO的含义是:
A.开放数据库互连应用编程接口B.数据库访问对象
C.Active数据对象D.数据库动态链接库
9.在窗体中有一个标签Lb1和一个命令按钮Command1,事件代码如下:
OptionCompareDatabase
DimaAsString*10
PrivateSubCommand1_Click()
a="1234"
b=Len(a)
EndSub
打开窗体后单击命令按钮,窗体中显示的内容是
A.4B.5C.10D.40
10.在窗体中使有一个文本框(名为n)同意输入的值,有一个命令按钮run,事件代码如下:
PrivateSubrun_Click()
result=""
Fori=1ToMe!
n
Forj=1To(Me!
n)+1-i
result=result+"*"
Nextj
result=result+Chr(13)+Chr(10)
Nexti
MsgBoxresult
EndSub
打开窗体后,如果通过文本框输入的值为4,单击命令按钮后输出的图型是D
11.在VBA中双精度的类型标识是
A.IntegerB.SingleC.DoubleD.Variant
12.运行以下进程,当输入一组数据:
10,20,50,80,40,30,90,100,60,70,输出的结果应该是
Subp1()
Dimi,j,arr(11)AsInteger
k=1
whilek<=10
arr(k)=Val(InputBox(“请输入第”&k&“个数:
”,“输入窗口”))
k=k+1
Wend
Fori=1To9
j=i+1
Ifarr(i)>arr(j)Then
temp=arr(i)
arr(i)=arr(j)
arr(j)=temp
EndIf
arr(i)
Nexti
EndSub
A)无序数列B)升序数列C)降序数列D)原输入数列
13.以下程序的功能是计算N=2+(2+4)+(2+4+6)+……+(2+4+6+……+40)的值。
PrivateSubCommand34_Click()
t=0
m=0
sum=0
Do
t=t+m
sum=sum+t
m=
Loopwhilem<41
MsgBox“Sum=“&sum
EndSub
空白处应该填写的语句是
A)t+2B)t+1C)m+2D)m+1
14.已知:
DimrsAsnew,在程序中为了取得记录集的下一条记录,应该利用的方式是。
15.在VBA中,没有显式声明或利用符号来概念的变量,其数据类型默许是Variant。
16.以下程序的功能是:
输入10个整数,逆序后输出,请在程序空白处填入适当语句使程序完成指定的功能。
PrivateSubCommand2_Click()
Dimi,j,k,temp,arr(11)AsInteger
DimresultAsString
Fork=1To10
arr(k)=Val(InputBox(“请输入第”&k&“个数:
”,“数据输入窗口”))
Nextk
i=1
j=10
Do
temp=arr(i)
arr(i)=arr(j)
arr(j)=temp
i=i+1
j=j-1
LoopWhileiresult=“”
Fork=1To10
result=result&arr(k)&Chr(13)
Nextk
MsgBoxresult
EndSub
17.已经设计出一个表格式窗体,能够输出教师表的相关字段信息,请依照以下功能要求补充设计:
改变当前记录,消息框弹出提示“是不是删除该记录?
”,单击“是”,那么直接删除该当前记录;单击“否”,那么什么都不做,其成效图如下:
'单击“退出”按钮,关闭窗体
PrivateSubbtnCancel_Click()
EndSub
'表格式窗体当前记录转变时触发
PrivateSubForm_Current()
IfMsgBox("是不是删除该记录?
",vbQuestion+vbYesNo,"确认")=vbYesThen
EndIf
EndSub
18.若是X是一个正的实数,保留两位小数、将千分位四舍五入的表达式是
A)*Int(x+
B)*Int(100*(X+)
C)*Int(x+
D)*Int(100*(X+)
(27)以下给出的选项中,非法的变量名是
A)Sum1B)Integer_2C)RemD)Form1
(28)若是在被挪用的进程中改变了形参变量的值;但又不阻碍实参变量本身,这种参数传递方式称为
A)按值传递B)按地址传递
C)ByRef传递D)按形参传递
(29)表达式“B=INT(A+”的功能是
A)将变量A保留小数点后1位B)将变量A四舍五入取整
C)将变量A保留小数点后5位D)舍去变量A的小数部份
(30)VBA语句“DimNewArray(10)asInteger”的含义是
A)概念10个整型数组成的数组NewArray
B)概念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=5B)f=7
C)f=8D)f=13
(33)有如下事件程序,运行该程序后输出结果是
PrivateSubCommand33_Click()
DimxAsInteger,yAsInteger
x=1:
y=0
DoUntily<=25
y=y+x*x‘1,5,14,30
x=x+1
Loop
MsgBox"x="&x&",y="&y
EndSub
A)x=1,y=0B)x=4,y=25
C)x=5,y=30D)输出其他结果
(35)以下程序的功能是返回当前窗体的记录集
SubGetRecNum()
DimrsAsObject
Setrs=______
MsgBox
EndSub
为保证程序输出记录集(窗体记录源)的记录数,空白处应填入的
A)RecordsetB)
C)RecordSourceD)
(8)运行以下程序,窗体中的显示结果是:
x=______。
OptionCompareDatabase
DimxAsInteger
PrivateSubForm_Load()
x=3
EndSub
PrivateSubCommand11_Click()
StaticaAsInteger
DimbAsInteger
b=x^2
fun1x,b‘3+9,9
fun1x,b‘12+9,9
MsgBox"x="&x
EndSub
Subfun1(ByRefyAsInteger,ByValzAsInteger)
y=y+z
z=y-z
EndSub
(13)"秒表"窗体中有两个按钮("开始/停止"按钮bOK,"暂停/继续"按钮bPus);一个显示计时的标签lNum;窗体的"计时器距离"设为100,计时精度为秒。
要求:
打开窗体如图1所示:
第一次单击"开始/停止"按钮,从0开始转动显示计时(见图2);10秒时单击"暂停/继续"按钮,显示暂停(见图3),但计时还在继续;假设20秒后再次单击"暂停/继续"按钮,计时会从30秒开始继续转动显示;第二次单击"开始/停止"按钮,计时停止,显示最终时刻(见图4)。
假设再次单击"开始/停止"按钮可从头从0开始计时。
相关的事件程序如下。
请在空白处填入适当的语句,使程序能够完成指定的功能。
OptionCompareDatabase
Dimflag,pauseAsBoolean
PrivateSubbOK_Click()
flag=__notflag____
Me!
=True
Me!
=flag
EndSub
PrivateSubbpus_Click()
pause=Notpause
Me!
=NotMe!
EndSub
PrivateSubForm_Open(CancelAsInteger)
flag=False
pause=False
Me!
=True
Me!
=False
EndSub
PrivateSubForm_Timer()
StaticcountAsSingle
Ifflag=TrueThen
Ifpause=FalseThen
Me!
=Round(count,1)
EndIf
count=__count+____
Else
count=0
EndIf
EndSub
29)以下关于VBA事件的表达中,正确的选项是
A)触发相同的事件能够执行不同的事件进程
B)每一个对象的事件都是不相同的
C)事件都是由用户操作触发的
D)事件能够由程序员概念
(30)以下不属于类模块对象大体特点的是
A)事件B)属性C)方式D)函数
(31)用来测试当前读写位置是不是达到文件末尾的函数是
A)EOFB)FileLenC)LenD)LOF
(32)以下表达式中,能够保留变量x整数部份并进行四舍五入的是
A)Fix(x)B)Rnd(x)C)Round(x)D)Int(x)
(33)运行以下进程,当输入一组数据:
10,20,50,80,40,30,90,100,60,70,输出的结果应该是
Subp1()
Dimi,j,arr(11)AsInteger
k=1
whilek<=10
arr(k)=Val(InputBox(“请输入第”&k&“个数:
”,“输入窗口”))
k=k+1
Wend
Fori=1To9
j=i+1
Ifarr(i)>arr(j)Then
temp=arr(i)
arr(i)=arr(j)
arr(j)=temp
EndIf
arr(i)
Nexti
EndSub
A)无序数列B)升序数列C)降序数列D)原输入数列
(34)以下程序的功能是计算N=2+(2+4)+(2+4+6)+……+(2+4+6+……+40)的值。
PrivateSubCommand34_Click()
t=0
m=0
sum=0
Do
t=t+m
sum=sum+t
m=
Loopwhilem<41
MsgBox“Sum=“&sum
EndSub
空白处应该填写的语句是
A)t+2B)t+1C)m+2D)m+1
(35)利用ADO访问数据库的步骤是:
①概念和创建ADO实例变量
②设置连接参数并打开连接
③设置命令参数并执行命令
④设置查询参数并打开记录集
⑤操作记录集
⑥关闭、回收有关对象
这些步骤的执行顺序应该是
A)①④③②⑤⑥B)①③④②⑤⑥
C)①③④⑤②⑥D)①②③④⑤⑥
(12)以下程序的功能是:
输出10到100之间的所有回文素数。
所谓回文素数是指,若是一个数是素数,那么该数反序后形成的数也是素数。
例如,13是素数,13反序形成取得数为31,31也是素数,那么称13为回文素数。
PrivateSubCommand12_Click( )
DimkAsInteger,mAsInteger,nAsInteger
Fork=10T0100
Ifprim(k)Then
m=__________
n=0
DoWhilem>0
n=n*10+mMod10‘取个位个位*10+十位,(个位*10+十位)*10+百位,…
m=m\10‘去掉个位留下前面的,…
Loop
Ifprim(n)Then
MsgBoxk&“,”&n
EndIf
EndIf
Nextk
EndSub
PublicFunctionprim(nAsInteger)AsBoolean
DimjAsInteger
Forj=2Ton/2
IfnModJ=0Then
prim=__________
ExitFunction
EndIf
Nextj
prim=True
ExitFunction
EndFunction
横线处应填写的内容是( )。
A.kFalse
B.kTrue
C.mFalse
D.nTrue
VBA访问数据库编程
1、DAO模型中,要紧的操纵对象有:
DBEngine、Wordspace、Database、RecordSet、_ Field_、QueryDef和Error。
2、Access的VBA编程操作本地数据库时,提供一种DAO数据库打开的快捷方式是_CurrentDB()___、而相应也提供一种ADO的默许连接对象是 __Connection
3、ADO对象模型要紧有Connection(连接对象)、Command(命令对象)、Parameter(参数对象)、Recordset(记录集对象)和Error对象。
4、VBA中提供了3种数据库访问接口。
ODBCAPI:
开放数据库互连应用编程接口。
DAO:
数据访问对象。
ADO:
Active数据对象