VBA程序设计范例教学总结.docx

上传人:b****1 文档编号:12467374 上传时间:2023-04-19 格式:DOCX 页数:15 大小:80.52KB
下载 相关 举报
VBA程序设计范例教学总结.docx_第1页
第1页 / 共15页
VBA程序设计范例教学总结.docx_第2页
第2页 / 共15页
VBA程序设计范例教学总结.docx_第3页
第3页 / 共15页
VBA程序设计范例教学总结.docx_第4页
第4页 / 共15页
VBA程序设计范例教学总结.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

VBA程序设计范例教学总结.docx

《VBA程序设计范例教学总结.docx》由会员分享,可在线阅读,更多相关《VBA程序设计范例教学总结.docx(15页珍藏版)》请在冰豆网上搜索。

VBA程序设计范例教学总结.docx

VBA程序设计范例教学总结

 

VBA程序设计范例

高考VBA程序设计解析

一、累加和问题:

1、基本问题

问题:

编程计算1+2+3+…+100;

程序界面:

源代码:

PrivateSubCommand3_Click()

DimsAsInteger

DimiAsInteger

s=0

Fori=1To100Step1

s=s+i

Nexti

Text1.SetFocus

Text1.Value=s

EndSub

PrivateSubCommand4_Click()

DoCmd.CloseacForm,"VBA程序设计范例1"

EndSub

2、问题拓展

拓展1:

编程计算1+3+5+7+…+99;

源代码修改:

Fori=1To99Step2

s=s+i

Nexti

拓展2:

编程计算2+4+6+8+…+100;

源代码修改:

Fori=2To100Step2

s=s+i

Nexti

拓展3:

编程计算1+2+3+…+N;

程序界面:

源代码:

PrivateSubCommand10_Click()

DimiAsInteger

DimsAsInteger

Text3.SetFocus

IfTrim(Text3.Text)=Space(0)Then

MsgBox"请输入N的值!

",vbOKOnly

ExitSub

ElseIfVal(Text3.Text)<1Then

MsgBox"请输入大于1的正整数!

",vbOKOnly

ExitSub

EndIf

s=0

Fori=1ToVal(Text3.Value)Step1

s=s+i

Nexti

Text8.SetFocus

Text8.Value=s

EndSub

拓展4:

编程计算1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+4+…+100);

程序界面:

源代码:

PrivateSubCommand3_Click()

DimiAsInteger,jAsInteger

Dims1AsInteger,s2AsDouble

s1=0

s2=0

Fori=1To100Step1

s1=0

Forj=1Toi

s1=s1+j

Nextj

s2=s2+s1

Nexti

Text1.SetFocus

Text1.Text=s2

EndSub

拓展5:

编程计算1+(1+3)+(1+3+5)+(1+3+5+7)+…+(1+3+5+7+…+99);

源代码:

PrivateSubCommand3_Click()

DimiAsInteger,jAsInteger

Dims1AsInteger,s2AsDouble

s1=0

s2=0

Fori=1To50Step1

s1=0

Forj=1Toi*2-1step2

s1=s1+j

Nextj

s2=s2+s1

Nexti

Text1.SetFocus

Text1.Text=s2

EndSub

3、算法相关问题

编程计算1*2*3*…*100;

提示:

内存变量的数据类型的确定;

二、排序问题

1、基本问题

问题:

提示用户输入两个数,比较其大小;

源代码:

PrivateSubCommand4_Click()

Dima1AsString

Dima2AsString

Dimb1AsInteger

Dimb2AsInteger

Text0.SetFocus

a1=Trim(Text0.Text)

Text2.SetFocus

a2=Trim(Text2.Text)

Ifa1=Space(0)Ora2=Space(0)Then

MsgBox"请输入两个待比较的数!

",vbOKOnly

ExitSub

EndIf

b1=Val(a1)

b2=Val(a2)

Text8.SetFocus

Ifb1

Text8.Text="小于"

ElseIfb1=b2Then

Text8.Text="等于"

Else

Text8.Text="大于"

EndIf

EndSub

2、问题拓展

拓展1:

有一组数:

3,2,7,1,5,4,12,10,8,6,请找出这组数的最小(大)值;

程序界面:

 

源代码:

PrivateSubCommand4_Click()

DimmaxvalueAsInteger

DimminvalueAsInteger

Dimarr(1To10)AsInteger

arr

(1)=3

arr

(2)=2

arr(3)=7

arr(4)=1

arr(5)=5

arr(6)=4

arr(7)=12

arr(8)=10

arr(9)=8

arr(10)=6

maxvalue=arr

(1)

minvalue=arr

(1)

Fori=2To10

Ifarr(i)>maxvalueThen

maxvalue=arr(i)

EndIf

Ifarr(i)

minvalue=arr(i)

EndIf

Nexti

Text2.SetFocus

Text2.Text=maxvalue

Text3.SetFocus

Text3.Text=minvalue

EndSub

拓展2:

有一组数:

3,2,7,1,5,4,12,10,8,6,请按升序排序输出这组数;

程序界面:

源代码:

PrivateSubCommand4_Click()

Dimarr(1To10)AsInteger

arr

(1)=3

arr

(2)=2

arr(3)=7

arr(4)=1

arr(5)=5

arr(6)=4

arr(7)=12

arr(8)=10

arr(9)=8

arr(10)=6

Fori=1To9

Forj=i+1To10

Ifarr(i)>arr(j)Then

temp=arr(i)

arr(i)=arr(j)

arr(j)=temp

EndIf

Nextj

Nexti

Text2.SetFocus

Fori=1To10

Text2.Text=Text2.Text&arr(i)&","

Nexti

EndSub

拓展3:

输入一组数,请按升序排序输出这组数;

程序界面:

源代码:

PrivateSubCommand6_Click()

Dimarr(1To10)AsInteger

DimiAsInteger

DimjAsInteger

DimtempAsInteger

Dims1AsString

Fori=1To10

arr(i)=InputBox("请输入第"&i&"个数:

")

s1=s1&arr(i)&","

Nexti

Text1.SetFocus

Text1.Value=s1

Fori=1To9

Forj=i+1To10

Ifarr(i)>arr(j)Then

temp=arr(i)

arr(i)=arr(j)

arr(j)=temp

EndIf

Nextj

Nexti

Text3.SetFocus

Fori=1To10

Text3.Text=Text3.Text&arr(i)&","

Nexti

EndSub

三、窗体设计

1、基本问题

源代码:

PrivateSubCommand11_Click()

OnErrorGoToErr_Command11_Click

DoCmd.GoToRecord,,acFirst

Exit_Command11_Click:

ExitSub

Err_Command11_Click:

MsgBoxErr.Description

ResumeExit_Command11_Click

EndSub

PrivateSubCommand12_Click()

OnErrorGoToErr_Command12_Click

DoCmd.GoToRecord,,acPrevious

Exit_Command12_Click:

ExitSub

Err_Command12_Click:

MsgBoxErr.Description

ResumeExit_Command12_Click

EndSub

PrivateSubCommand13_Click()

OnErrorGoToErr_Command13_Click

DoCmd.GoToRecord,,acNext

Exit_Command13_Click:

ExitSub

Err_Command13_Click:

MsgBoxErr.Description

ResumeExit_Command13_Click

EndSub

PrivateSubCommand14_Click()

OnErrorGoToErr_Command14_Click

DoCmd.GoToRecord,,acLast

Exit_Command14_Click:

ExitSub

Err_Command14_Click:

MsgBoxErr.Description

ResumeExit_Command14_Click

EndSub

2、问题拓展

拓展1:

窗体查询1

源代码:

SQL查询部分:

SELECT*FROM学生学籍

WHERE姓名likeforms!

窗体查询_主子窗体1.text2.text;

子窗体的源对象设置为查询对象;

查询按钮单击事件代码:

PrivateSubCommand6_Click()

DimstudnameAsString

Text2.SetFocus

studname=Trim(Text2.Text)

Ifstudname=Space(0)Then

MsgBox"请输入学生姓名!

",vbOKOnly

Else

Me.Child8.Requery

EndIf

EndSub

拓展2:

窗体查询2

 

源代码:

SQL查询部分:

SELECT学生学籍.班级编号,学生学籍.学号,学生学籍.姓名,学生成绩.学期,学生成绩.语文,学生成绩.数学,学生成绩.英语,学生成绩.专业一,学生成绩.专业二,学生成绩.总分

FROM学生学籍INNERJOIN学生成绩ON(学生学籍.学号=学生成绩.学号)AND(学生学籍.班级编号=学生成绩.班级编号)

WHERE姓名likeforms!

窗体查询_主子窗体2.text2.text;

子窗体的源对象设置为查询对象;

查询按钮单击事件代码:

PrivateSubCommand6_Click()

DimstudnameAsString

Text2.SetFocus

studname=Trim(Text2.Text)

Ifstudname=Space(0)Then

MsgBox"请输入学生姓名!

",vbOKOnly

Else

Me.Child8.Requery

EndIf

EndSub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1