ITPub博客

首页 > 数据库 > Oracle > VB数据库操作实例

VB数据库操作实例

Oracle 作者:cai007007 时间:2012-02-17 11:16:00 0 删除 编辑


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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12

    下面是出现运行的情况:


    END

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21625406/viewspace-1110288/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-05-11