版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、vb数据库操作实例2008年 02 月 22 日 05:49 vb 数据库操作对很多初学者朋友感到比较吃力,目前教材中的实例对数据库操作都比较单一, 很多朋友提议我做一个包括浏览、添加、修改、删除功能的数据库操作实例,下面这个实例就是一个这样的数据库操作实例。书库管理系统是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作, 使用数据链接控件adodc链接数据库、 数据显示控件 mshflexgrid 显示数据库中的记录。在新建工程时工具箱中是没有adodc控件和 mshflexgrid控件的,我们必须点击菜单中的【工程】-【部件】,在对话框中勾选“ microsoft
2、ado data control 6.0 (sp6) ”和“microsoft hierarchical flexgrid control 6.0 (sp4)”,最后点击【确定】, 这样 adodc控件和 mshflexgrid控件就已经放置在工具箱中了。其中 adodc控件的 connectionstring属性值是:provider=microsoft.jet.oledb.4.0;data source=家庭书架 .mdb;persist security info=false,它设置链接了“家庭书架.mdb”这个 access 数据库,recordsourc 属性值是: select 图
3、书登记表 .id, 图书登记表 . 名称, 图书登记表. 书号, 图书登记表 . 作者, 图书登记表 . 出版社 , 图书登记表 . 出借状态 , 出借记录. 借书人 , 出借记录 . 电话, 出借记录 . 地址, 图书登记表 . 备注, 图书登记表 . 出借记录 from 图书登记表 , 出借记录 where 图书登记表 .id= 出借记录 .zhuid order by 图书登记表 .id ,因为在“家庭书架 .mdb”数据库中包含 图书登记表 和 出借记录 二个数据表,这是多表链接的典型的sql语句。 adodc的这二个属性值在 vb的属性窗口进行编辑,你可以将上述属性值直接输入到相应的
4、属性中,设置 visible的值为 false ,目的是在运行中不显示这个控件,其他属性默认值即可。 mshflexgrid控件的名称我们修改为ms1 ,它的属性设置稍稍比较麻烦:首先将它的 datasource 属性在属性窗口设置为 adodc1;然后在对象窗口右击控件,在下拉菜单中点击【属性】,在“通用”标签中修改行为 3,修改列为 11,修改固定行为 0,修改固定列为 0,如果数据链接没有问题,在属性的“带区”标签中可以看到列标题和列名称已经设置了,其他属性页的属性可以容许默认值,中点击【确定】即可。另外在属性窗口设置 mshflexgrid控件的 backcolorbkg 属性为 &a
5、mp;h00ffe0e0&,这个属性是控件底色的设置, 然后设置 backcolorfixed 属性为 &h00c0ffff&,这个属性是控件数据显示标题的底色。其他默认值即可。最后放置三个按钮, 一个标签,三个 frame控件,在 frame1、frame2 、frame3控件中分别放置 9 个标签(数组), 8 个文本框,一个下拉选择框,一个按钮,在 frame2 、frame3控件中分别放置一个标签,设置这个标签的visible值为false ,其他设置参考下图:设置和调整控件如上图后, 设置数据库,在程序目录新建一个access 数据库,修改数据库的名称为“家庭
6、书架.mdb”,新建二个数据表, 分别是:“图书登记表”和“出借记录”:在“图书登记表”中添加字段:“id”为自动编号、 主键,“名称”为文本、大小 50,“书号”为文本、大小30,“作者”为文本、大小40,“出版社”为文本、大小 60,“出借状态”为文本、大小20,“出借记录”为数字、长整型,“备注”为文本、大小50;在“出借记录”中添加字段:“id”为自动编号、主键 , “zhuid”为数字、长整型,“名称”为文本、大小50,“借书人”为文本、大小20,“电话”为文本、大小 20,“地址”为文本、大小50。数据库设置成功。最后点击【视图】 -【代码窗口】输入下面的代码: 模块级变量dim
7、zfc as string dim rosx as integer - 添加记录事件private sub command1_click() 添加记录dim fl as string, xid as long 家庭书架 .mdb set conn = opendatabase(fl) strsql = select * from 图书登记表 set rs = conn.openrecordset(strsql) rs.addnew rs! 名称 = text1(0).text rs! 书号 = text1(1).text rs! 作者 = text1(2).text rs! 出版社 = tex
8、t1(3).text rs! 出借状态 = combo1.text rs! 备注 = text1(7).text if combo1.text = 出借 then rs!出借记录 = 1 rs.update rs.close set rs = nothing strsql = select * from 图书登记表 order by id desc set rs = conn.openrecordset(strsql) xid = rs!id rs.close set rs = nothing strsql = select * from 出借记录 set rs = conn.openreco
9、rdset(strsql) if combo1.text = 出借 then rs.addnew rs!zhuid = xid rs! 名称 = text1(0).text rs! 借书人 = text1(4).text rs! 电话 = text1(5).text rs! 地址 = text1(6).text rs.update else rs.addnew rs!zhuid = xid rs! 名称 = rs! 借书人 = 没有出借 rs! 电话 = 无 rs! 地址 = 无 rs.update end if rs.close set rs = nothing conn.close msg
10、box 记录添加成功! unload me 书库管理 .show end sub - 修改记录事件private sub command2_click() 修改记录if val(label4.caption) = 0 then msgbox 没有选择要修改的记录! exit sub end if dim fl as string 家庭书架 .mdb set conn = opendatabase(fl) strsql = select * from 图书登记表 where id= & val(label4.caption) & set rs = conn.openrecords
11、et(strsql) rs.edit rs! 名称 = text2(0).text rs! 书号 = text2(1).text rs! 作者 = text2(2).text rs! 出版社 = text2(3).text rs! 出借状态 = combo2.text rs! 备注 = text2(7).text if combo2.text = 出借 then rs!出借记录 = 1 rs.update rs.close set rs = nothing strsql = select * from 出借记录 where zhuid= & val(label4.caption) &a
12、mp; set rs = conn.openrecordset(strsql) if combo2.text = 出借 then if not rs.eof then rs.edit rs! 名称 = text2(0).text rs! 借书人 = text2(4).text rs! 电话 = text2(5).text rs! 地址 = text2(6).text rs.update else rs.addnew rs!zhuid = val(label4.caption) rs! 名称 = text2(0).text rs! 借书人 = text2(4).text rs! 电话 = tex
13、t2(5).text rs! 地址 = text2(6).text rs.update end if else if not rs.eof then rs.edit rs! 名称 = text2(0).text rs! 借书人 = 没有出借 rs! 电话 = 无 rs! 地址 = 无 rs.update else rs.addnew rs!zhuid = val(label4.caption) rs! 名称 = text2(0).text rs! 借书人 = 没有出借 rs! 电话 = 无 rs! 地址 = 无 rs.update end if end if rs.close set rs =
14、 nothing conn.close msgbox 记录修改成功! label4.caption = unload me 书库管理 .show end sub - 添加记录连接private sub command3_click() frame1.visible = true frame2.visible = false frame3.visible = false zfc = 添加 for i = 0 to 7 text1(i).text = next i combo1.text = command1.visible = true label5.caption = 现在正在添加图书资料 e
15、nd sub - 修改记录连接private sub command4_click() frame1.visible = false frame2.visible = true frame3.visible = false zfc = 修改 for i = 0 to 7 text2(i).text = next i combo2.text = label4.caption = command2.visible = true label5.caption = 现在正在修改图书资料 end sub - 删除记录连接private sub command5_click() frame1.visibl
16、e = false frame2.visible = false frame3.visible = true zfc = 删除 for i = 0 to 7 text3(i).text = next i combo3.text = label1.caption = command6.visible = true label5.caption = 现在正在删除图书资料 end sub - 删除记录事件private sub command6_click() 删除记录dim ss as integer ss = msgbox( 确实要删除这个记录吗? , vbokcancel, 删除确认! ) i
17、f ss = 1 then if val(label1.caption) = 0 then msgbox 没有选择要修改的记录! exit sub end if dim fl as string, xid as long 家庭书架 .mdb set conn = opendatabase(fl) strsql = select * from 图书登记表 where id= & val(label1.caption) & set rs = conn.openrecordset(strsql) rs.delete rs.close set rs = nothing strsql =
18、 select * from 出借记录 where zhuid= & val(label1.caption) & set rs = conn.openrecordset(strsql) rs.delete rs.close set rs = nothing conn.close msgbox 记录删除成功! unload me 书库管理 .show else msgbox 取消了删除记录! end if end sub - 页面启动事件private sub form_load() dim strsql as string frame1.visible = false fram
19、e2.visible = false frame3.visible = false label5.caption = 现在正在浏览图书资料 ms1.backcolorbkg = &hffe0e0 end sub - 点击 mshflexgrid控件中记录的事件private sub ms1_click() dim i as integer, colx as integer colx = ms1.col rosx = ms1.row if zfc = 添加 then for i = 0 to 7 text1(i).text = next i combo1.text = elseif zf
20、c = 修改 then text2(0).text = ms1.textmatrix(rosx, 1) text2(1).text = ms1.textmatrix(rosx, 2) text2(2).text = ms1.textmatrix(rosx, 3) text2(3).text = ms1.textmatrix(rosx, 4) combo2.text = ms1.textmatrix(rosx, 5) text2(4).text = ms1.textmatrix(rosx, 6) text2(5).text = ms1.textmatrix(rosx, 7) text2(6).text = ms1.textmatrix(rosx, 8) text2(7).text = ms1.textmatrix(rosx, 9) label4.caption = ms1.textmatrix(rosx, 0) label5.caption = 已经选择记录准备修改 elseif zfc = 删除 then text3(0).text = ms1.textmatrix(rosx, 1) text3(1).text = ms1.textmatrix(rosx, 2) text3(2).text = ms1.textmatrix(rosx, 3) text3(3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江丽水景宁畲族自治县人民医院招聘医疗卫生专业技术人才4人笔试参考试题及答案详解
- 2026四川绵阳市盐亭国有投资管理有限公司延期招聘成捷交投安全岗人员1人笔试参考试题及答案详解
- 2026上海申爱社会工作发展中心招聘新媒体运营实习生2人笔试备考试题及答案详解
- 2026年井冈山大学附属医院进人计划9人笔试参考试题及答案详解
- 2026年广安门医院保定医院见习岗位招聘20人笔试备考题库及答案详解
- 2026湖南安全技术职业学院公开招聘12人笔试备考试题及答案详解
- 2026江西吉安市银屏文化传媒有限公司招聘工作人员延期笔试备考试题及答案详解
- 陕西省西安大学区六校联考2026届中考联考历史试题含解析
- 2026江苏无锡职业技术大学长期招聘高层次人才34人笔试参考题库及答案详解
- 2026江苏省淮安市市属国有企业春季校园招聘8人笔试备考题库及答案详解
- 甜点草莓少司课件
- 高校大创项目申报书撰写指南
- 2024-2025学年辽宁省丹东市第十九中学七年级下学期期中考试数学试题
- 幼儿园中班数学课《认识数字1-10》课件
- 2024广东海洋大学教师招聘考试真题及答案
- 劳技课编手链课件
- 猫宁供应商入驻考试答案50题苏宁考试题库
- 2025年人教版七年级数学下册期中复习题(基础版)(范围:相交线与平行线、实数、平面直角坐标系)解析版
- 武侯祠历史讲解
- 推进信息化建设“十五五”规划-(2025-2025年)-根据学校十五五
- 2025年高考数学全国一卷试题真题及答案详解(精校打印)
评论
0/150
提交评论