vba数据库编程复习资料.docx

上传人:b****2 文档编号:24313442 上传时间:2023-05-26 格式:DOCX 页数:19 大小:65.51KB
下载 相关 举报
vba数据库编程复习资料.docx_第1页
第1页 / 共19页
vba数据库编程复习资料.docx_第2页
第2页 / 共19页
vba数据库编程复习资料.docx_第3页
第3页 / 共19页
vba数据库编程复习资料.docx_第4页
第4页 / 共19页
vba数据库编程复习资料.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

vba数据库编程复习资料.docx

《vba数据库编程复习资料.docx》由会员分享,可在线阅读,更多相关《vba数据库编程复习资料.docx(19页珍藏版)》请在冰豆网上搜索。

vba数据库编程复习资料.docx

vba数据库编程复习资料

VBA数据库编程技术

实验目的

1、掌握connection对象

2、掌握Recordset对象

3、掌握Command对象

实验题目

9-1connection对象的具体连接方法:

方法1

DimconnAsADODB.Connection'定义对象类型

Setconn=NewADODB.Connection'将对象初始化

conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:

/access/vba数据库编程技术/学生成绩管理.mdb"'设置连接字符信息

conn.open'连接对象打开

…………….

conn.Close'关闭连接对象

Setconn=Nothing'将连接对象清空

方法2

DimconnAsADODB.Connection'定义对象类型

Setconn=NewADODB.Connection'将对象初始化

conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:

/access/vba数据库编程技术/学生成绩管理.mdb;UID=;PWD="

…………….

conn.Close

Setconn=Nothing

方法3

DimconnAsADODB.Connection'定义对象类型

Setconn=NewADODB.Connection'将对象初始化

conn.OpenCurrentProject.Connection'打开当前正在连接的数据

…………….

conn.Close

Setconn=Nothing

9-2在9-1的基础上,打开表单学生信息,利用Recordset对象获取来自“学生成绩管理.mdb”中“学生”数据表的记录,并显示第一条记录。

PrivateSubForm_Load()

DimconnAsADODB.Connection'定义连接对象类型

DimrsAsADODB.Recordset'定义记录集对象类型

Setrs=NewADODB.Recordset'将记录集对象初始化

Setconn=NewADODB.Connection'将连接对象初始化

conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:

/access/vba数据库编程技术/学生成绩管理.mdb;"

rs.Open"select*from学生",conn,adOpenKeyset,adLockReadOnly

rs.MoveFirst

Text0.Value=rs("姓名")

Text2.Value=rs("学号")

Text4.Value=rs("性别")

conn.Close

Setconn=Nothing

EndSub

9-3打开表单增加专业,单击增加按钮增加一条关于专业的的新记录:

专业编号:

p07,专业名称:

电子技术,专业负责人:

刘容强。

PrivateSubCommand0_Click()

DimconnAsADODB.Connection'定义连接对象类型

DimrsAsADODB.Recordset'定义记录集对象类型

Setrs=NewADODB.Recordset'将记录集对象初始化

Setconn=NewADODB.Connection'将连接对象初始化

conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:

/access/vba数据库编程技术/学生成绩管理.mdb;"

rs.Open"select*from专业",conn,adOpenKeyset,adLockOptimistic

rs.AddNew

rs("专业编号")="P07"

rs("专业名称")="电子技术"

rs("专业负责人")="刘容强"

rs.Update

MsgBox"已完成新记录的添加",0+32,"提示"

conn.Close

Setconn=Nothing

EndSub

9-5新建一个过程a,将“专业”数据表中专业名称为“公共基础教学”的专业负责人姓名改为“郑智强”。

PublicSuba()

DimconnAsADODB.Connection'定义对象类型

Setconn=NewADODB.Connection'将对象初始化

conn.OpenCurrentProject.Connection'打开当前正在连接的数据

DimcommAsADODB.Command

Setcomm=NewADODB.Command

comm.ActiveConnection=conn

comm.CommandText="update专业set专业负责人='郑智强'where专业名称='公共基础教学'"

comm.Execute

MsgBox"已完成修改",0+32,"提示"

conn.Close

Setconn=Nothing

Setcomm=Nothing

EndSub

9-6打开“学生成绩管理.mdb”,设计课程成绩统计窗体,运行界面如图9-5所示,要求实现:

1、在组合框combo1中选择一课程编号,则对应的课程名称、学分、任课教师、学时分别显示在对应文本框中

2、单击“统计按钮”,则在对应文本框中显示指定课程的所有参考学生人数、课程平均分、60分以上人数和不及格人数。

3、若未指定具体课程编号就单击“统计”按钮,则显示提示信息。

OptionCompareDatabase

PrivateSubCombo0_Change()

DimrsAsADODB.Recordset

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select课程名称,学时,学分,姓名from课程,教师where课程.教师编号=教师.教师编号and课程编号='"&Combo0&"'"

rs.Opensqlstr,CurrentProject.Connection,2,2

IfNotrs.EOF()Then

Text4=rs("课程名称")

Text6=rs("学分")

Text8=rs("姓名")

Text10=rs("学时")

EndIf

rs.Close

Setrs=Nothing

EndSub

PrivateSubCommand12_Click()

DimrsAsADODB.Recordset

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select*from成绩where课程编号='"&Combo0&"'"

rs.Opensqlstr,CurrentProject.Connection,2,2

IfNotrs.BOF()OrNotrs.EOF()Then

sum=0

n=0

x=0

y=0

DoWhileNotrs.EOF()

sum=sum+rs("成绩")

n=n+1

Ifrs("成绩")>=60Then

x=x+1

Else

y=y+1

EndIf

rs.MoveNext

Loop

aver=sum/n

Text15.Value=n

Text17.Value=Int(aver*100+0.5)/100

Text19.Value=x

Text21.Value=y

Else

MsgBox"课程编号为空,请重新选择",0+16,"提示"

EndIf

rs.Close

Setrs=Nothing

EndSub

9-7打开“学生成绩管理.mdb”,设计按课程查阅学生成绩窗体,运行界面如图9-7所示,要求实现如下:

PublicrsAsADODB.Recordset

PrivateSubCombo0_Change()

DimrsAsADODB.Recordset

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select课程名称,学时,学分,姓名from课程,教师where课程.教师编号=教师.教师编号and课程编号='"&Combo0&"'"

rs.Opensqlstr,CurrentProject.Connection,2,2

IfNotrs.EOF()Then

Text4=rs("课程名称")

Text6=rs("学分")

Text8=rs("姓名")

Text10=rs("学时")

EndIf

rs.Close

Setrs=Nothing

EndSub

PrivateSubCommand12_Click()

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select学生.学号,姓名,专业名称,成绩from学生,专业,成绩where学生.专业编号=专业.专业编号"&_

"and成绩.学号=学生.学号and成绩.课程编号='"&Combo0.Value&"'"

rs.Opensqlstr,CurrentProject.Connection,2,2

IfNotrs.BOF()OrNotrs.EOF()Then

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

Command23.Enabled=True

Command24.Enabled=True

Command25.Enabled=True

Command26.Enabled=True

Else

MsgBox"课程号为空,请重新指定课程编号",0+16,"提示"

EndIf

EndSub

PrivateSubCommand23_Click()

rs.MoveFirst

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

EndSub

PrivateSubCommand24_Click()

rs.MovePrevious

IfNotrs.BOF()Then

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

Else

rs.MoveNext

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

MsgBox"已经是首记录",0+64,"提示"

EndIf

EndSub

PrivateSubCommand25_Click()

rs.MoveNext

IfNotrs.EOF()Then

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

Else

rs.MovePrevious

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

MsgBox"已经是未记录",0+64,"提示"

EndIf

EndSub

PrivateSubCommand26_Click()

rs.MoveLast

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

EndSub

PrivateSubForm_Activate()

Command23.Enabled=False

Command24.Enabled=False

Command25.Enabled=False

Command26.Enabled=False

EndSub

9-8在例9-7基础上,增加“更新”、“删除”、“新增”和“结束”4个命令按钮,运行界面如下图所示:

PublicrsAsADODB.Recordset

PrivateSubCombo0_Change()

DimrsAsADODB.Recordset

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select课程名称,学时,学分,姓名from课程,教师where课程.教师编号=教师.教师编号and课程编号='"&Combo0&"'"

rs.Opensqlstr,CurrentProject.Connection,2,2

IfNotrs.EOF()Then

Text4=rs("课程名称")

Text6=rs("学分")

Text8=rs("姓名")

Text10=rs("学时")

EndIf

rs.Close

Setrs=Nothing

EndSub

PrivateSubCommand12_Click()

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select学生.学号,姓名,专业名称,成绩from学生,专业,成绩where学生.专业编号=专业.专业编号"&_

"and成绩.学号=学生.学号and成绩.课程编号='"&Combo0.Value&"'"

rs.Opensqlstr,CurrentProject.Connection,2,2

IfNotrs.BOF()OrNotrs.EOF()Then

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

Command23.Enabled=True

Command24.Enabled=True

Command25.Enabled=True

Command26.Enabled=True

Command27.Enabled=True

Command28.Enabled=True

Command29.Enabled=True

Else

MsgBox"课程号为空,请重新指定课程编号",0+16,"提示"

EndIf

EndSub

PrivateSubCommand23_Click()

rs.MoveFirst

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

EndSub

PrivateSubCommand24_Click()

rs.MovePrevious

IfNotrs.BOF()Then

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

Else

rs.MoveNext

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

MsgBox"已经是首记录",0+64,"提示"

EndIf

EndSub

PrivateSubCommand25_Click()

rs.MoveNext

IfNotrs.EOF()Then

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

Else

rs.MovePrevious

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

MsgBox"已经是未记录",0+64,"提示"

EndIf

EndSub

PrivateSubCommand26_Click()

rs.MoveLast

Text15.Value=rs("学号")

Text17.Value=rs("姓名")

Text19.Value=rs("专业名称")

Text21.Value=rs("成绩")

EndSub

EndSub

PrivateSubCommand27_Click()

flag=0

yn=MsgBox("确定更新成绩吗?

",1+32,"提问")

Ifyn=1Then

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select*from成绩"

rs.Opensqlstr,CurrentProject.Connection,2,2

DoWhileNotrs.EOF()Andflag=0

Ifrs("学号")=Trim(Text15.Value)Andrs("课程编号")=Trim(Combo0.Value)Then

rs("成绩")=Text21.Value

rs.Update

MsgBox"完成成绩更新!

",0+64,"提示"

flag=1

Else

rs.MoveNext

EndIf

Loop

Ifflag=0Then

MsgBox"学号或课程编号有变化,无法进行成绩更新!

",0+16,"提示"

EndIf

rs.Close

Setrs=Nothing

EndIf

EndSub

PrivateSubCommand28_Click()

flag=0

yn=MsgBox("确定删除本记录吗?

",1+32,"提问")

Ifyn=1Then

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select*from成绩"

rs.Opensqlstr,CurrentProject.Connection,2,2

DoWhileNotrs.EOF()Andflag=0

Ifrs("学号")=Trim(Text15.Value)Andrs("课程编号")=Trim(Combo0.Value)Then

rs.Delete

rs.Update

MsgBox"已完成删除!

",0+64,"提示"

Text15.Value=""

Text17.Value=""

Text19.Value=""

Text21.Value=""

Command23.Enabled=False

Command24.Enabled=False

Command25.Enabled=False

Command26.Enabled=False

flag=1

Else

rs.MoveNext

EndIf

Loop

Ifflag=0Then

MsgBox"学号或课程编号有变化,无法进行成绩更新!

",0+16,"提示"

EndIf

rs.Close

Setrs=Nothing

EndIf

EndSub

PrivateSubCommand29_Click()

cmark=0

smark=0

yn=MsgBox("确定新增成绩信息吗?

",1+32,"提问")

Ifyn=1Then

Setrs=NewADODB.Recordset

DimsqlstrAsString

sqlstr="select*from成绩where学号='"&Trim(Text15.Value)&"'and课程编号='"&Combo0.Value&"'"

rs.Opensqlstr,CurrentProject.Connection,2,2

IfNotrs.BOF()AndNotrs.EOF()Then

MsgBox"成绩表已有记录,无法再新增",0+64,"提示"

cmark=1

EndIf

rs.Close

Setrs=Nothing

Ifcmark=0Then

Setrs=NewADODB.Recordset

sqlstr="select*from学生where学号='"&Trim(Text15.Value)&"'"

rs.Opensqlstr,CurrentProject.Connection,2,2

IfNotrs.BOF()AndNotrs.EOF()Then

smark=1

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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