《VB数据库操作实例》由会员分享,可在线阅读,更多相关《VB数据库操作实例(16页珍藏版)》请在金锄头文库上搜索。
1、VB 数据库操作实例工具/原料 VB 数据库操作对很多初学者朋友感到比较吃力,目前教材中的实例对数据库操作都比较单一,很多朋友提议我做一个包括浏览、添加、修改、删除功能的数据库操作实例,下面这个实例就是一个这样的数据库操作实例。步骤/方法1. 1书库管理系统是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作,使用数据链接控件 Adodc 链接数据库、数据显示控件 MSHFlexGrid 显示数据库中的记录。在新建工程时工具箱中是没有 Adodc 控件和 MSHFlexGrid 控件的,我们必须点击菜单中的【工程】-【部件】,在对话框中勾选 “Microsoft ADO
2、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 的属性窗口进行编辑,你可以将上述属性值直接输入到相应的属性中,设置 Visible 的值为 False,目的是在运行中不显
4、示这个控件,其他属性默认值即可。MSHFlexGrid 控件的名称我们修改为 MS1,它的属性设置稍稍比较麻烦:首先将它的 DataSource 属性在属性窗口设置为Adodc1;然后在对象窗口右击控件,在下拉菜单中点击【属性】,在“通用”标签中修改行为 3,修改列为 11,修改固定行为 0,修改固定列为 0,如果数据链接没有问题,在属性的“带区”标签中可以看到列标题和列名称已经设置了,其他属性页的属性可以容许默认值,中点击【确定】即可。另外在属性窗口设置 MSHFlexGrid 控件的 BackColorBkg 属性为&H00FFE0E0&,这个属性是控件底色的设置,然后设置 BackCol
5、orFixed属性为&H00C0FFFF&,这个属性是控件数据显示标题的底色。其他默认值即可。最后放置三个按钮,一个标签,三个 Frame 控件,在Frame1、Frame2、Frame3 控件中分别放置 9 个标签(数组),8 个文本框,一个下拉选择框,一个按钮,在 Frame2、Frame3 控件中分别放置一个标签,设置这个标签的 Visible 值为 False,其他设置参考下图: 设置和调整控件如上图后,设置数据库,在程序目录新建一个 Access 数据库,修改数据库的名称为“家庭书架.mdb” ,新建二个数据表,分别是: “图书登记表”和“出借记录”: 在“图书登记表”中添加字段:
6、“ID”为自动编号、主键,“名称”为文本、大小 50,“书号”为文本、大小 30,“作者”为文本、大小 40,“出版社”为文本、大小 60,“出借状态”为文本、大小 20, “出借记录 ”为数字、长整型,“备注”为文本、大小 50; 在“出借记录”中添加字段:“ID”为自动编号、主键,“zhuID”为数字、长整型,“名称”为文本、大小 50,“借书人”为文本、大小 20,“电话”为文本、大小 20,“ 地址”为文本、大小 50。 数据库设置成功。2. 2点击【视图】-【代码窗口 】输入下面的代码:模块级变量Dim ZFC As StringDim ROSX As Integer3. Priva
7、te Sub Command1_Click()添加记录Dim FL As String, XID As LongFL = App.Path & 家庭书架.mdbSet conn = OpenDatabase(FL)strSQL = Select * From 图书登记表Set rs = conn.OpenRecordset(strSQL)rs.AddNewrs!名称 = Text1(0).Textrs!书号 = Text1(1).Textrs!作者 = Text1(2).Textrs!出版社 = Text1(3).Textrs!出借状态 = Combo1.Textrs!备注 = Text1(7
8、).TextIf Combo1.Text = 出借 Then rs!出借记录 = 1rs.Updaters.CloseSet rs = NothingstrSQL = Select * From 图书登记表 Order By ID DescSet rs = conn.OpenRecordset(strSQL)XID = rs!IDrs.CloseSet rs = NothingstrSQL = Select * From 出借记录Set rs = conn.OpenRecordset(strSQL)If Combo1.Text = 出借 Thenrs.AddNewrs!zhuID = XIDr
9、s!名称 = Text1(0).Textrs!借书人 = Text1(4).Textrs!电话 = Text1(5).Textrs!地址 = Text1(6).Textrs.UpdateElsers.AddNewrs!zhuID = XIDrs!名称 = rs!借书人 = 没有出借rs!电话 = 无rs!地址 = 无rs.UpdateEnd Ifrs.CloseSet rs = Nothingconn.CloseMsgBox 记录添加成功! Unload Me书库管理.ShowEnd Sub4. Private Sub Command2_Click()修改记录If Val(Label4.Cap
10、tion) = 0 ThenMsgBox 没有选择要修改的记录! Exit SubEnd IfDim FL As StringFL = App.Path & 家庭书架.mdbSet conn = OpenDatabase(FL)strSQL = Select * From 图书登记表 Where ID= & Val(Label4.Caption) & Set rs = conn.OpenRecordset(strSQL)rs.Editrs!名称 = Text2(0).Textrs!书号 = Text2(1).Textrs!作者 = Text2(2).Textrs!出版社 = Text2(3).
11、Textrs!出借状态 = Combo2.Textrs!备注 = Text2(7).TextIf Combo2.Text = 出借 Then rs!出借记录 = 1rs.Updaters.CloseSet rs = NothingstrSQL = Select * From 出借记录 Where zhuID= & Val(Label4.Caption) & Set rs = conn.OpenRecordset(strSQL)If Combo2.Text = 出借 ThenIf Not rs.EOF Thenrs.Editrs!名称 = Text2(0).Textrs!借书人 = Text2(
12、4).Textrs!电话 = Text2(5).Textrs!地址 = Text2(6).Textrs.UpdateElsers.AddNewrs!zhuID = Val(Label4.Caption)rs!名称 = Text2(0).Textrs!借书人 = Text2(4).Textrs!电话 = Text2(5).Textrs!地址 = Text2(6).Textrs.UpdateEnd IfElseIf Not rs.EOF Thenrs.Editrs!名称 = Text2(0).Textrs!借书人 = 没有出借rs!电话 = 无rs!地址 = 无rs.UpdateElsers.Ad
13、dNewrs!zhuID = Val(Label4.Caption)rs!名称 = Text2(0).Textrs!借书人 = 没有出借rs!电话 = 无rs!地址 = 无rs.UpdateEnd IfEnd Ifrs.CloseSet rs = Nothingconn.CloseMsgBox 记录修改成功! Label4.Caption = Unload Me书库管理.ShowEnd Sub5. 添加记录连接Private Sub Command3_Click()Frame1.Visible = TrueFrame2.Visible = FalseFrame3.Visible = False
14、ZFC = 添加For i = 0 To 7Text1(i).Text = Next iCombo1.Text = Command1.Visible = TrueLabel5.Caption = 现在正在添加图书资料End Sub6. 修改记录连接Private Sub Command4_Click()Frame1.Visible = FalseFrame2.Visible = TrueFrame3.Visible = FalseZFC = 修改For i = 0 To 7Text2(i).Text = Next iCombo2.Text = Label4.Caption = Command2
15、.Visible = TrueLabel5.Caption = 现在正在修改图书资料End Sub7. 删除记录连接Private Sub Command5_Click()Frame1.Visible = FalseFrame2.Visible = FalseFrame3.Visible = TrueZFC = 删除For i = 0 To 7Text3(i).Text = Next iCombo3.Text = Label1.Caption = Command6.Visible = TrueLabel5.Caption = 现在正在删除图书资料End Sub8. Private Sub Co
16、mmand6_Click()删除记录Dim SS As IntegerSS = MsgBox(确实要删除这个记录吗?, vbOKCancel, 删除确认!)If SS = 1 ThenIf Val(Label1.Caption) = 0 ThenMsgBox 没有选择要修改的记录! Exit SubEnd IfDim FL As String, XID As LongFL = App.Path & 家庭书架.mdbSet conn = OpenDatabase(FL)strSQL = Select * From 图书登记表 Where ID= & Val(Label1.Caption) & Set rs = conn.OpenRecordset(strSQ