模块与VBA程序设计
更新时间:2023-10-04 21:18:01 阅读量: 综合文库 文档下载
实验11 模块与VBA程序设计
一、实验目的
1、掌握建立标准模块及窗体模块的方法 2、熟悉VBA开发环境及数据类型
3、掌握常量、变量、函数及其表达式的用法
4、掌握程序设计的顺序结构、分支结构、循环结构 5、了解VBA的过程及参数传递
6、掌握变量的定义方法和不同的作用域和生存期 7、了解数据库的访问技术 二、实验内容
实验11-1创建标准模块和窗体模块 1、 实验要求
在 “罗斯文.accdb” 数据库中创建一个标准模块“M1”,并添加过程“P1”和“P2”。 2、 实验步骤
(1) 打开“罗斯文.accdb”数据库,选择“创建”选项卡→“宏与代码”组→单击“模
块”按钮,打开VBE窗口。选择“插入”→过程,弹出过程对话框,如图11-1所示。
图 11-1 VBE菜单栏及插入菜单的下拉菜单
(2) 在过程对话框中“名称”文本框输入“P1”,“类型”栏选择“子程序”,“范围”栏
选择“公共的”,单击“确定”,如图11-2所示。
图 11-2 添加过程
(3) 在代码窗口中输入 “P1”的子过程代码,如图11-3所示。
图 11-3 P1子过程代码
(4) 单击“视图”→“立即窗口”菜单命令,打开立即窗口,并在立即窗口中输入“Call
P1( )”,并按回车键,或单击工具栏中的“运行子过程/用户窗体”按钮,查看运行结果,如图11-4所示。
图 11-4 P1子过程的调用
(5) 单击工具栏中的“保存”按钮,输入模块名称为“M1”,保存模块。单击工具栏中
的“视图Microsoft office Access”按钮,返回Access。
(6) 在数据库窗口中,选择“模块”对象,再双击“M1”,打开VBE窗口。 (7) 输入以下代码:
Sub P2()
Dim name As String
name = InputBox(\请输入姓名\输入\MsgBox \欢迎您\End Sub
(8) 单击工具栏中的“运行子过程/用户窗体”按钮,运行P2,输入自己的姓名,查看
运行结果。
(9) 击工具栏中的“保存”按钮,保存模块。
(10) 在数据库窗口中,选择“创建”选项卡→“窗体”组→单击“窗体设计”按钮,打
开打开窗体的设计视图,再选择“设计”选项卡→“工具”组中的“查看代码”按
,打开VBE窗口,输入以下代码: Private Sub Form_Click()
Dim Str As String, k As Integer Str = \
For k = Len(Str) To 1 Step -1
Str = Str & Chr(Asc(Mid(Str, k, 1)) + k) Next k
MsgBox Str End Sub
(11) 单击保存按钮,将窗体保存为“Form11_1”,单击工具栏中的“视图Microsoft office
Access”按钮,返回到窗体的设计视图中。
(12) 选择“视图”→“窗体视图”菜单命令,单击窗体,查看消息框里显示的结果。 实验11-2 Access常量、变量、函数及表达式
要求:通过立即窗口完成以下各题。 1.填写命令的结果
?7\\2 结果为 ?7 mod 2 结果为 ?5/2<=10 结果为 ?#2012-03-05# 结果为 ?\程序设计基础\结果为 ?\数据库\结果为 ?\结果为
钮
a1=#2009-08-01# a2=a1+35
?a2 结果为 ?a1-4 结果为 2.数值处理函数
在立即窗口中输入命令 ?int(-3.25) ?sqr(9) ?sgn(-5) ?fix(15.235) ?round(15.3451,2) ?abs(-5) 结果 功能 3.常用字符函数
在立即窗口中输入命令 ?InStr(\c=\ 结果 功能
?Mid(c,4,3) ?Left(c,7) ?Right(c,10) ?Len(c) d=\?\程序\?\程序\?\程序\?\ 4.日期与时间函数
在立即窗口中输入命令 ?Date() ?Time() ?Year(Date()) 结果 功能 5.类型转换函数
在立即窗口中输入命令 ?Asc(\?Chr(67) ?Str(100101) ?Val(\ 结果 功能
实验11-3 VBA流程控制(顺序控制与输入输出) 1、 实验要求
输入圆的半径,显示圆的面积。
图 11-5 圆的半径输入窗口
图 11-6 圆面积输出窗口
2、 实验步骤
(1) 在数据库窗口中,选择“模块”对象,单击“新建”按钮,打开VBE窗口。 (2) 在代码窗口中输入“Area”子过程,过程Area代码如下:
Sub Area()
Dim r As Single Dim s As Single
r = InputBox(\请输入圆的半径:\输入\s = 3.14 * r * r
MsgBox \半径为:\时的圆面积是:\End Sub
(3) 运行过程Area,在输入框中,如果输入半径为1,记录输出结果。 (4) 单击工具栏中的“保存”按钮,输入模块名称为“M2”,保存模块。 实验11-4 VBA流程控制(选择控制1) 1、 实验要求
编写一个过程,从键盘上输入一个数X,如X≥0,输出它的算术平方根;如果X<0,输出它的平方值。
图 11-7 数据输出窗口
图 11-8 结果输出窗口
2、 实验步骤
(1) 在数据库窗口中,双击模块“M2”,打开VBE窗口。
(2) 在代码窗口中添加“Prm1”子过程,过程Prm1代码如下:
Sub Prm1()
Dim x As Single
x = InputBox(\请输入X的值\输入\If x >= 0 Then y = Sqr(x) Else
y = x * x End If
MsgBox \时y=\End Sub
(3) 运行Prm1过程,如果在“请输入X的值:”中输入:4(回车),记录结果。 (4) 单击工具栏中的“保存”按钮,保存模块M2。 实验11-5 VBA流程控制(选择控制2)
图11-21查询立即窗口
2、 实验步骤
(1) 打开“罗斯文.accdb”数据库,新建一个标准模块,打开VBE窗口。
(2) 在VBE中引用ADO部件,具体做法:单击“工具”→“引用”→“Microsoft ActiveX
Data Objects 2.8 Library”
(3) 在VBE窗口输入以下子过程代码:
Private Sub DemoField()
‘声明并实例化Recordset对象和Field对象 Dim rst As ADODB.Recordset Dim fld As ADODB.Field
Set rst = New ADODB.Recordset
rst.ActiveConnection = CurrentProject.Connection rst.Open \员工\Set fld = rst(\名字\Debug.print fld.value End Sub
(4) 保存模块,模块名为“M4”,运行过程DemoField,打开立即窗口,观察运行结果。
实验11-17 VBA数据库访问技术(添加)
1、 实验要求
通过如图11-22所示的窗体向“员工”表中添加员工记录,对应“姓氏”、“名字”、“职务”、“城市”和“公司”的四个文本框的名称分别为tLName、tFName、tPox、tCity和tCompany。当单击窗体中的“添加”命令按钮(名称为Command1)时,首先判断姓氏和名字是否重复,如果不重复,则向“员工”表中添加员工记录;如果姓氏和名字重复,则给出提示信息。 2、 实验步骤
(1) 新建窗体,在窗体设计视图中的主体节中添加五个标签,五个文本框,两个命令按
钮。如图11-9所示
图11-22“添加记录”窗体的设计结果
(2) 打开属性窗口,将五个文本框中“标题”属性分别设置为tLName、tFName、tPox、
tCity和tCompany;第一个命令按钮“名称”属性设置为“CmdAdd”,“标题”属性设置为“添加”,第二命令按钮“名称”属性设置为“CmdExit”,“标题”属性设置为“退出”;将窗体对象的“标题”属性设置为“添加记录”,将“导航按钮”属性设置为“否”,“记录选择器”属性设置为“否”。
(3) 在VBE中引用ADO部件,具体做法:单击“工具”→“引用”→“Microsoft ActiveX
Data Objects 2.8 Library”
(4) 打开代码窗口,输入并补充完整以下代码::
Option Compare Database
Dim ADOcn As New ADODB.Connection Private Sub Form_Load()
' 打开窗口时,连接Access数据库 Set ADOcn = CurrentProject.Connection End Sub
Private Sub CmdAdd_Click() ' 增加员工记录
Dim strSQL As String
Dim ADOrs As New ADODB.Recordset Set ADOrs.ActiveConnection = ADOcn
ADOrs.Open \ID From 员工 Where 姓氏= '\+ tLName + \And 名字='\tFName + \
If Not ADOrs._______ Then
' 如果该学号的学生记录已经存在,则显示提示信息 MsgBox \你输入的员工记录已存在,不能增加!\Else
' 增加新员工的记录
strSQL = \员工(姓氏,名字,公司,职务,城市) \strSQL = strSQL + \alues('\tLName + \tFName + \tCompany+ \ + tPox +
\ + tCity +\
ADOcn.Execute ________
MsgBox \添加成功,请继续!\End If
ADOrs.Close
Set ADOrs = Nothing End Sub
Private Sub CmdExit_Click() DoCmd.Close End Sub
(5) 保存窗体,窗体名称为“Form11_5”,切换至窗体视图,在相应的文本框中输入新的
员工信息,包括姓氏、名字、职务、城市、公司(姓氏和名字在员工表中不存在,其它不能空),单击“添加”按钮,打开员工表,观察程序的运行结果,再输入一个已有的员工信息(姓氏和名字在员工表中已存在),单击“添加”按钮,观察程序的运行结果。
实验11-18 VBA数据库访问技术(修改)
1、 实验要求
对产品表不同供应商的产品增加标准成本,规定供应商ID为金美的标准成本增加15%,供应商ID为佳佳乐的标准成本增加10%,其他供应商的标准成本增加5%。编写程序调整个供应商产品的标准成本,并显示所标准成本增加的总和。 2、 实验步骤
(1) 打开“罗斯文.accdb”数据库,新建一个标准模块,打开VBE窗口。
(2) 在VBE中引用ADO部件,具体做法:单击“工具”→“引用”→“Microsoft ActiveX
Data Objects 2.8 Library”。
(3) 新建窗体,在窗体的主体节区中添加一个命令按钮,将命令按钮的“名称”属性设置
为“CmdAlter”,“标题”属性设为“修改”,单击“代码”按钮,切换至VBE窗口中,输入并补充完整以下代码: Private Sub CmdAlter_Click() Dim ws as DAO.Workspace Dim db as DAO.Database Dim rs as DAO.Recordset Dim gz as DAO.Field Dim zc as DAO.Field Dim sum as Currency Dim rate as Single Set db = CurrentDb()
Set rs = db.OpenRecordset(\产品\Set cb = rs.Fields(\标准成本\Set id = rs.Fields(\供应商ID\sum = 0
Do While Not ______ rs.Edit
Select Case id
Case Is = \金美\ rate = 0.15 Case Is = \佳佳乐\ rate = 0.1 Case else rate = 0.05 End Select
sum = sum + cb * rate cb = cb + cb * rate _______________ rs.MoveNext Loop rs.Close db.Close
set rs = Nothing set db = Nothing
MsgBox \标准成本增加总计:\End Sub
(4) 保存窗体,窗体名称为“Form11_6”,切换至窗体视图,单击“修改”按钮,观察程
序的运行结果。
正在阅读:
模块与VBA程序设计10-04
RO反渗透化学清洗操作步骤06-29
化学切割 - 图文10-14
从疫情角度下看乡村振兴如何长久施力04-08
加强内部控制-提升会计工作质量04-19
电磁场选择题10-24
无损探伤人员职责10-17
新建变电站土建第三本资料09-14
19春北交《操作系统(专)》在线作业一12-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 模块
- VBA
- 2012年初级粮油保管员理论试题
- 《河南省病历书写基本规范实施细则》试行
- 如何实现发展适宜性教学
- 国务院国资委、中国证监会 第19号令
- 2013年水利工程建设监理工程师要点内容 - 图文
- XXXX城XX中北1MW分布式并网光伏发电系统能源管理三方协议
- 公司财务印章规章制度
- 广东省广东全部定额收费标准(2010版)
- 2019年整理--检察院转正工作总结
- 泵车协议书
- 住院护士站操作手册 - 图文
- 局域网组网实训
- 数据库作业
- 常见钢管牌号中外对照,,钢管重量计算 
- 春季福建省公务员录用考试《行政职业能力测验》试卷
- 2014电能表修校高级技师复习题库(国网版)
- 2013网络环境下的知识产权保护第五章自测题及答案
- 2015年教师资格《幼儿综合素质》预测押密试卷及答案(十)
- 劳动经济学
- 《与文明同行》晚会主持词1