VBA数据库访问技术
1.要求:显示“学生”表第一条记录的“姓名”字段值
操作步骤:
在 “教学管理.accdb”数据库中,新建一个标准模块,打开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 "select * from学生"
Set fld = rst("姓名")
Debug.print fld.value
End Sub
保存模块,模块名为“M4”,运行过程DemoField,打开立即窗口,观察运行结果。
2.增加记录
要求:通过如图6-6所示的窗体向“学生”表中添加学生记录,对应“学号”、“姓名”、“性别”和“年龄”的四个文本框的名称分别为tNo、tName、tSex和tAge。当单击窗体中的“添加”命令按钮(名称为Command1)时,首先判断学号是否重复,如果不重复,则向“学生”表中添加学生记录;如果学号重复,则给出提示信息。
操作步骤:
(1)新建窗体,在窗体设计视图中的主体节中添加四个标签,四个文本框,两个命令按钮。如图6-6所示。
(2)打开属性窗口,将四个文本框中“标题”属性分别设置为tNo、tName、tSex和tAge;第一个命令按钮“名称”属性设置为“CmdAdd”,“标题”属性设置为“添加”,第二命令按钮“名称”属性设置为“CmdExit”,“标题”属性设置为“退出”;将窗体对象的“标题”属性设置为“添加记录”,将“导航按钮”属性设置为“否”,“记录选择器”属性设置为“否”。
(3)打开代码窗口,输入并补充完整以下代码:
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 "Select学生编号From学生Where学生编号='" + tNo + "'"
Age = Val(tAge)
If NotADOrs._______ Then
'如果该学号的学生记录已经存在,则显示提示信息
MsgBox "你输入的学号已存在,不能增加!"
Else
'增加新学生的记录
strSQL = "Insert Into学生(学生编号,姓名,性别,年龄) "
strSQL = strSQL + "Values('" + tNo + "', '" + tName + "', '" + tSex +"'," + tAge + ") "
ADOcn.Execute ________
MsgBox "添加成功,请继续!"
End If
ADOrs.Close
Set ADOrs =Nothing
End Sub
Private Sub CmdExit_Click()
DoCmd.Close
End Sub
(4)保存窗体,窗体名称为“Form7_5”,切换至窗体视图,在相应的文本框中输入新的学生信息,包括学号、姓名、性别、年龄(学号在学生表中不存在,其它不能空),单击“添加”按钮,打开学生表,观察程序的运行结果,再输入一个已有的学生信息(学号在学生表中已存在),单击“添加”按钮,观察程序的运行结果。
3.修改记录
要求:对工资表不同职称的职工增加工资,规定教授职称增加15%,副教授职称增加10%,其他人员增加5%。编写程序调整每位职工的工资,并显示所涨工资的总和。
操作步骤:
(1)将“工资管理.accdb”数据库中的“工资表 ”导入到 “教学管理.accdb”数据库中,在 “教学管理.accdb” 数据库窗口中选“表”对象,选择“文件”→“获取外部数据”→“导入”菜单命令,导入“工资”表。
(2)引用DAO对象
新建模块,打开VBE窗口,选“工具”→“引用”菜单命令,滚动列表,直到找到“Microsoft DAO 3.6 Object Library”,勾选,单击“确定”按钮,返回Access。
(3)新建窗体,在窗体的主体节区中添加一个命令按钮,将命令按钮的“名称”属性设置为“CmdAlter”,“标题”属性设为“修改”,单击“代码”按钮,切换至VBE窗口中,输入并补充完整以下代码:
Private Sub CmdAlter_Click()
Dim ws asDAO.Workspace
Dim db asDAO.Database
Dim rs asDAO.Recordset
Dim gz asDAO.Field
Dim zc asDAO.Field
Dim sum asCurrency
Dim rate asSingle
Set db = CurrentDb()
Set rs =db.OpenRecordset("工资表")
Set gz =rs.Fields("工资")
Set zc =rs.Fields("职称")
sum = 0
Do While Not______
rs.Edit
Select Case zc
Case Is = "教授"
rate = 0.15
Case Is = "副教授"
rate = 0.1
Case else
rate = 0.05
End Select
sum = sum + gz * rate
gz = gz + gz * rate
_______________
rs.MoveNext
Loop
rs.Close
db.Close
set rs = Nothing
set db =Nothing
MsgBox "涨工资总计:" & sum
End Sub
保存窗体,窗体名称为“Form7_6”,切换至窗体视图,单击“修改”按钮,观察程序的运行结果。
领取专属 10元无门槛券
私享最新 技术干货