视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
VB数据库操作实例
2025-09-28 00:39:20 责编:小OO
文档
VB数据库操作实例

工具/原料

∙VB数据库操作对很多初学者朋友感到比较吃力,目前教材中的实例对数据库操作都比较单一,很多朋友提议我做一个包括浏览、添加、修改、删除功能的数据库操作实例,下面这个实例就是一个这样的数据库操作实例。

步骤/方法

1.1

《书库管理系统》是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作,使用数据链接控件Adodc链接数据库、数据显示控件MSHFlexGrid显示数据库中的记录。

在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,我们必须点击菜单中的【工程】-【部件】,在对话框中勾选“Microsoft 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 图书登记表.ID,图书登记表.名称,图书登记表.书号,图书登记表.作者,图书登记表.出版社,图书登记表.出借状态,出借记录.借书人,出借记录.电话,出借记录.地址,图书登记表.备注,图书登记表.出借记录 from 图书登记表,出借记录 where 图书登记表.ID=出借记录.zhuID ORDER BY 图书登记表.ID",因为在“家庭书架.mdb”数据库中包含"图书登记表"和"出借记录"二个数据表,这是多表链接的典型的SQL语句。Adodc的这二个属性值在VB的属性窗口进行编辑,你可以将上述属性值直接输入到相应的属性中,设置Visible的值为False,目的是在运行中不显示这个控件,其他属性默认值即可。

MSHFlexGrid控件的名称我们修改为MS1,它的属性设置稍稍比较麻烦:

首先将它的DataSource属性在属性窗口设置为"Adodc1";

然后在对象窗口右击控件,在下拉菜单中点击【属性】,在“通用”标签中修改行为3,修改列为11,修改固定行为0,修改固定列为0,如果数据链接没有问题,在属性的“带区”标签中可以看到列标题和列名称已经设置了,其他属性页的属性可以容许默认值,中点击【确定】即可。

另外在属性窗口设置MSHFlexGrid控件的BackColorBkg属性为&H00FFE0E0&,这个属性是控件底色的设置,然后设置BackColorFixed属性为&H00C0FFFF&,这个属性是控件数据显示标题的底色。其他默认值即可。

最后放置三个按钮,一个标签,三个Frame控件,在Frame1、Frame2、Frame3控件中分别放置9个标签(数组),8个文本框,一个下拉选择框,一个按钮,在Frame2、Frame3控件中分别放置一个标签,设置这个标签的Visible值为False,其他设置参考下图: 设置和调整控件如上图后,设置数据库,在程序目录新建一个Access数据库,修改数据库的名称为“家庭书架.mdb”,新建二个数据表,分别是:“图书登记表”和“出借记录”: 在“图书登记表”中添加字段:“ID”为自动编号、主键,“名称”为文本、大小50,“书号”为文本、大小30,“作者”为文本、大小40,“出版社”为文本、大小60,“出借状态”为文本、大小20,“出借记录”为数字、长整型,“备注”为文本、大小50; 在“出借记录”中添加字段:“ID”为自动编号、主键,“zhuID”为数字、长整型,“名称”为文本、大小50,“借书人”为文本、大小20,“电话”为文本、大小20,“地址”为文本、大小50。 数据库设置成功。

2.2

点击【视图】-【代码窗口】输入下面的代码:

'模块级变量

Dim ZFC As String

Dim ROSX As Integer

3.Private Sub Command1_Click()

'添加记录

Dim FL As String, XID As Long

FL = App.Path& "\\家庭书架.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!出版社 = Text1(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.OpenRecordset(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

MsgBox "记录添加成功!"

Unload Me

书库管理.Show

End Sub

4.Private Sub Command2_Click()

'修改记录

If Val(Label4.Caption) = 0 Then

MsgBox "没有选择要修改的记录!"

Exit Sub

End If

Dim FL As String

FL = App.Path& "\\家庭书架.mdb"

Set conn = OpenDatabase(FL)

strSQL = "Select * From 图书登记表 Where ID=" & Val(Label4.Caption) & ""

Set rs = conn.OpenRecordset(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) & ""

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!电话 = Text2(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 = Nothing

conn.Close

MsgBox "记录修改成功!"

Label4.Caption = ""

Unload Me

书库管理.Show

End Sub

5.'添加记录连接

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 = "现在正在添加图书资料"

End Sub

6.'修改记录连接

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

7.'删除记录连接

Private Sub Command5_Click()

Frame1.Visible = 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

8.Private Sub Command6_Click()

'删除记录

Dim SS As Integer

SS = MsgBox("确实要删除这个记录吗?", vbOKCancel, "删除确认!")

If SS = 1 Then

If Val(Label1.Caption) = 0 Then

MsgBox "没有选择要修改的记录!"

Exit Sub

End If

Dim FL As String, XID As Long

FL = App.Path& "\\家庭书架.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 = "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

9.'页面启动事件

Private Sub Form_Load()

Dim strSQL As String

Frame1.Visible = False

Frame2.Visible = False

Frame3.Visible = False

Label5.Caption = "现在正在浏览图书资料"

MS1.BackColorBkg = &HFFE0E0

End Sub

10.'点击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 ZFC = "修改" 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).Text = MS1.TextMatrix(ROSX, 4)

Combo3.Text = MS1.TextMatrix(ROSX, 5)

Text3(4).Text = MS1.TextMatrix(ROSX, 6)

Text3(5).Text = MS1.TextMatrix(ROSX, 7)

Text3(6).Text = MS1.TextMatrix(ROSX, 8)

Text3(7).Text = MS1.TextMatrix(ROSX, 9)

Label1.Caption = MS1.TextMatrix(ROSX, 0)

Label5.Caption = "已经选择记录准备删除"

ElseIf ZFC = "" Then

CL = MS1.Col

For i = 1 To MS1.Cols

MS1.Col = i - 1

MS1.CellBackColor = vbWhite

Next i

MS1.Col = CL

End If

MS1.Col = C0LX

MS1.CellBackColor = &H119911

End Sub

11.Private Sub MS1_LeaveCell()

Dim i As Integer

Dim CL As Integer

'离开该行时将该行的颜色恢复为白色

CL = MS1.Col

For i = 1 To MS1.Cols

MS1.Col = i - 1

MS1.CellBackColor = vbWhite

Next i

MS1.Col = CL

End Sub

12.下面是出现运行的情况:

END

经验内容仅供参考,如下载本文

显示全文
专题