文档库 最新最全的文档下载
当前位置:文档库 › VBA实验一及参考答案

VBA实验一及参考答案

VBA实验一及参考答案
VBA实验一及参考答案

VBA实验一

[实验目的]

1.掌握属性、事件和方法的应用。

2.熟练掌握和应用Access内置的应用方法。

3.掌握常量、变量的声明和使用。

4.掌握和熟练应用各种内置函数。

5.掌握VBA执行语句的3种结构:顺序结构、选择结构和循环结构。

6.熟练掌握和应用If语句、Select Case等选择结构语句。

7.熟练掌握和应用For……Next语句、Do While……Loop和Do Until……Loop等循环结

构语句。

[实验内容]

打开“教学管理”数据库,创建以下窗体。

1.在“教学管理”数据库中,设计一个“欢迎学习VBA”的窗体,标题为“欢迎”。

要求:新建一个窗体,放置7个按钮和一个文本框Text1及标题为“欢迎”的标签,并将7个命令按钮分别设为如图1.1所示。

图1.1 “欢迎学习VBA”的窗体

提示:打开表的方法为:DoCmd.OpenTable "表名"

关闭表的方法为:DoCmd.Close acTable, "表名"

打开窗体的方法为:DoCmd.OpenForm "窗体名"

关闭窗体的方法为:DoCmd.Close acForm, "窗体名"

2.在“教学管理”数据库中,设计一个“计算三角形面积”的窗体,用InputBox函数输

入三角形三边a、b、c,判断是否能构成三角形,能构成三角形,求出三角形的面积。

否则用MsgBox显示“不能构成三角形”的信息。计算公式如下:

P =( a + b + c )/ 2

S = sqr(p*(p-a)*(p-b)*(p-c))

要求:三角形的面积(保留三位小数)。界面设计如图1.2所示。

图1.2“计算三角形面积”的窗体

3.在“教学管理”数据库中,设计一个“模拟袖珍计算器”窗体,运行界面如图1.3所示。要求:

(1)输入两个操作数和一个算术运算符,根据算术运算符决定所做的运算。

(2)为了保证程序的正常运行,对输入的运算数和运算符需进行检验,如在规定范围以外(输入操作数非法、运算符非法或除数为零),利用MsgBox函数或过程显示出错误信息。(3)若输入错误,清除错的输入内容。

图1.3 “模拟袖珍计算器”窗体

4.在“教学管理”数据库中,设计一个“成绩评定”窗体,其中文本框中的成绩为“选课

成绩”表中的“成绩”值。

要求:当单击“评定”按钮,可以对文本框中的百分制“成绩”评定为五级制,即弹出标题为“成绩等级”,提示信息为(“不及格”或“及格”或“中等”或“良”或“优秀”)的等级制的消息框。窗体如图1.4所示。消息框如图1.5所示。

成绩等级标准:0-59为不及格,60-69为及格,70-79为中等,80-89为良好,90-100为优秀。

图1.4 成绩评定窗体

图1.5 消息框

5.用For循环和Do循环在文本框中每行输出一个10~10000之间被3除余2、被5除余3、

被7除余2的数,在标签框中输出其和及个数。若要求文本框每行输出5个数,如何修改程序?

6.编程计算由下列公式确定的S值,其中n是用户输入的正整数,n可由InputBox函数

或文本框输入。注意选用合适的变量类型,界面用户自行设计。

S=1+(1×2)+(1×2×3)+ … +(1×2×3×…×n)

参考代码

1.Private Sub Form_Load() '设置窗体标题

Me.Caption = "欢迎"

End Sub

Private Sub Command2_Click() '显示20磅黑体按钮

Text1.Value = "您好!欢迎您学习VBA"

Text1.FontSize = 20

Text1.FontName = "黑体"

End Sub

Private Sub Command3_Click() '清除按钮

Text1.SetFocus

Text1.Value = ""

End Sub

Private Sub Command4_Click() '关闭窗体按钮

DoCmd.Close acForm, "欢迎学习VBA"

'或者使用 docmd.close 表示关闭当前窗体

End Sub

Private Sub Command5_Click() '打开“学生”表按钮

DoCmd.OpenTable "学生"

End Sub

Private Sub Command6_Click() '关闭“学生”表按钮

DoCmd.Close acTable, "学生"

End Sub

Private Sub Command7_Click() '打开“选课成绩”窗体按钮DoCmd.OpenForm "选课成绩"

End Sub

Private Sub Command8_Click() '关闭“选课成绩”窗体按钮DoCmd.Close acForm, "选课成绩"

End Sub

2.Private Sub Command1_Click() '计算按钮

Dim a%, b%, c%, s!, c!

a = InputBox("输入a边的值")

b = InputBox("输入b边的值")

c = InputBox("输入c边的值")

Text0.Value = a '输出a边

Text2.Value = b '输出b边

Text4.Value = c '输出c边

If a + b > c And Abs(a - b) < c Then

p = (a + b + c) / 2

s = Sqr(p * (p - a) * (p - b) * (p - c))

Text6.Value = Format(s, "0.00") '输出面积保留三位小数 Else

MsgBox "不能构成三角形"

Text0.Text = ""

Text2.Text = ""

Text4.Text = ""

Text1.SetFocus

End If

End Sub

Private Sub Command5_Click() '清除按钮

Text0.Text = ""

Text2.Text = ""

Text4.Text = ""

Text6.Text = ""

End Sub

Private Sub Command6_Click() '退出按钮

DoCmd.Quit

End Sub

3.Private Sub Command8_Click() '计算按钮

Dim a%, b%, c$, d!

a = Val(Text0.Value)

b = Val(Text2.Value)

c = Text4.Value

Select Case c

Case "+"

d = a + b

Case "-"

d = a - b

Case "*"

d = a * b

Case "/"

If b = 0 Then

MsgBox "零为非法数,重新输入!", 16

Text2.Value = ""

Else

d = a / b

End If

Case Else

MsgBox "运算符有错,重新输入!", 16, "出错信息"

Text4 = ""

End Select

Text6.Value = d

End Sub

Private Sub Command9_Click() '清除按钮

Text0.Value = "": Text2.Value = ""

Text4.Value = "": Text6.Value = ""

End Sub

Private Sub Command10_Click() '关闭按钮

DoCmd.Close '表示关闭当前窗体

End Sub

4.'首先把“选课成绩”表中的“成绩”字段添加到“成绩评定”窗体上

Private Sub Command2_Click() '评定按钮

Dim score%

score = 成绩.Value '文本框的名称为“成绩”

Select Case score

Case 90 To 100

MsgBox "优秀", , "成绩等级"

Case 80 To 89

MsgBox "良好", , "成绩等级"

Case 70 To 79

MsgBox "中等", , "成绩等级"

Case 60 To 69

MsgBox "及格", , "成绩等级"

Case Else

MsgBox "不及格", , "成绩等级"

End Select

End Sub

5.Private Sub Command2_Click() 'For循环结构

Dim i%, sum&, count%

count = 0

sum = 0

For i = 10 To 10000

If i Mod 3 = 2 And i Mod 5 = 3 And i Mod 7 = 2 Then

Text0.Value = Text0.Value & i & vbCrLf '每行输出一个数,vbCrLf为换行符 count = count + 1 'count计数变量+1

sum = sum + i '符合条件的i累加到sum中

End If

Next i

Label1.Caption = "和为:" & sum & "个数为:" & count

End Sub

Private Sub Command3_Click() 'Do循环结构

Dim i%, sum&, count%

i = 10: count = 0: sum = 0

Do While i <= 10000

If i Mod 3 = 2 And i Mod 5 = 3 And i Mod 7 = 2 Then

Text0.Value = Text0.Value & i & vbCrLf '每行输出一个数,vbCrLf为换行符 count = count + 1 'count计数变量+1

sum = sum + i '符合条件的i累加到sum中

End If

i = i + 1

Loop

Label1.Caption = "和为:" & sum & "个数为:" & count

End Sub

Private Sub Command4_Click() 'For循环结构

Dim i%, sum&, count%

count = 0

sum = 0

For i = 10 To 10000

If i Mod 3 = 2 And i Mod 5 = 3 And i Mod 7 = 2 Then

Text0.Value = Text0.Value & i & Space(5) '每行输出5个数,Space(5) 表示数与数之间相距5个空格

count = count + 1 'count计数变量+1

sum = sum + i '符合条件的i累加到sum中

If count Mod 5 = 0 Then Text0.Value = Text0.Value & vbCrLf

End If

Next i

Label1.Caption = "和为:" & sum & "个数为:" & count

End Sub

6.Private Sub Command2_Click() '计算按钮

Dim s&, n%, i%, t%, L%

s = 0

n = InputBox("输入一个正整数作为多项式的项数")

t = 1

For i = 1 To n

t = t * i '求阶乘

s = s + t '求和

Next i

Text0.Value = "S=1+(1×2)+(1×2×3)+……+(1×2×3×……×N)=" & s

End Sub

相关文档