VB数据库操作实例

VB数据库操作实例
步骤/方法
《书库管理系统》是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作,使用数据链接控件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。 数据库设置成功。

点击【视图】-【代码窗口】输入下面的代码: '模块级变量 Dim ZFC As String Dim ROSX As Integer
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
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
'添加记录连接 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
'修改记录连接 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.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
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
'页面启动事件 Private Sub Form_Load() Dim strSQL As String Frame1.Visible = False Frame2.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 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
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
下面是出现运行的情况:

  • VB鏁版嵁搴撴搷浣滃疄渚
    绛旓細8涓枃鏈,涓涓笅鎷夐夋嫨妗,涓涓寜閽,鍦‵rame2銆丗rame3鎺т欢涓垎鍒斁缃竴涓爣绛,璁剧疆杩欎釜鏍囩鐨刅isible鍊间负False,鍏朵粬璁剧疆鍙傝冧笅鍥: 璁剧疆鍜岃皟鏁存帶浠跺涓婂浘鍚,璁剧疆鏁版嵁搴,鍦ㄧ▼搴忕洰褰曟柊寤轰竴涓狝ccess鏁版嵁搴,淇敼鏁版嵁搴撶殑鍚嶇О涓衡滃搴功鏋.mdb鈥,鏂板缓浜屼釜鏁版嵁琛,鍒嗗埆鏄:鈥滃浘涔︾櫥璁拌〃鈥濆拰鈥滃嚭鍊熻褰曗:鍦ㄢ滃浘涔...
  • vb鏁版嵁搴(鍩虹鐭ヨ瘑)
    绛旓細涓銆佸垱寤烘暟鎹簱 鍒涘缓VB鏁版嵁搴鐨勭涓姝ユ槸鍒涘缓鏁版嵁搴撴枃浠躲俈B鏁版嵁搴撴敮鎸佸绉嶆暟鎹簱绫诲瀷锛屽寘鎷珹ccess銆丼QLServer銆丱racle绛夈傚湪鏈枃涓紝鎴戜滑灏嗕互Access鏁版嵁搴撲负渚嬭繘琛岃瑙c1.鎵撳紑Access杞欢锛岄夋嫨鈥滄柊寤虹┖鐧芥暟鎹簱鈥濄2.杈撳叆鏁版嵁搴撶殑鍚嶇О鍜屼繚瀛樿矾寰勶紝鐒跺悗鐐瑰嚮鈥滃垱寤衡濄3.鍦ㄢ滃垱寤衡濋〉闈腑锛屽彲浠ラ夋嫨鍒涘缓琛ㄦ牸...
  • 濡備綍鐢VB寤虹珛鏁版嵁搴
    绛旓細1銆侀鍏堢偣鍑绘墦寮涓昏彍鍗曟爮涓殑鈥滃鎺ョ▼搴忊濋夐」銆2銆佺劧鍚庡湪寮瑰嚭鏉ョ殑绐楀彛涓偣鍑绘墦寮鈥滃彲瑙嗗寲鏁版嵁绠$悊鍣ㄢ濓紝鍑虹幇涓嬪浘涓殑鐣岄潰銆3銆佺劧鍚庡崟鍑绘枃浠朵腑鐨勬柊寤猴紝閫夋嫨鈥渕icrosot access鈥濓紝鈥渧ersion 7.0鈥濓紝寮瑰嚭淇濆瓨鐣岄潰锛岀偣鍑讳繚瀛樺悗鍑虹幇濡備笅鐣岄潰銆4銆佺劧鍚庡彸閿崟鍑籶roperties锛岄夋嫨鈥滄柊寤鸿〃鈥濓紝杈撳叆琛ㄥ悕绉帮紝娣诲姞瀛楁銆
  • VB涓ょ鎿嶄綔Access鏁版嵁搴鏂规硶鐨勬瘮杈
    绛旓細绗竴绉嶏細浣跨敤鏁版嵁搴瀵硅薄棣栧厛锛岃杩涜鏈夊叧鏁版嵁瀵硅薄鐨勫0鏄庯紝浠g爜濡備笅銆侱im MyWs As WorkspaceDim MyDB As DatabaseDim WordTab As Recordset鐢熸垚宸ヤ綔鍖猴紝鎵撳紑鏁版嵁搴擄紝鐒跺悗鍐嶆牴鎹渶瑕佹墦寮鐩稿簲鐨勫簱琛ㄣ係et MyWs = DBEngine.CreateWorkspace_鈥斥砡 鈥矨dmin鈥砡 鈥斥砡 dbUseJet_Set MyDB = MyWs.OpenData...
  • 鎬庢牱鐢VB瀵筧ccess鏁版嵁搴杩涜鏁版嵁娣诲姞?
    绛旓細杩炶繘鏁版嵁搴 RSfitjc.Open strSqlfitjc, cn, adOpenKeyset, adLockOptimistic 鈥欐墦寮杩炴帴 RSfitjc.addnew '娣诲姞涓涓邯褰 RSfitjc.Fields("閰嶄欢缂栧彿") = 鈥渟tyle鈥 鈥樼粰姣忎釜瀛楁璧嬪 .Update 鈥欏偍瀛樿祴鍊肩殑鏂扮邯褰 .Close 鍏抽棴杩炴帴 End With ...
  • VB鎿嶄綔涓や釜鏁版嵁搴,浠嶢鏁版嵁搴撹〃涓煡璇,鐒跺悗鍐欏叆B鏁版嵁搴撹〃涓!
    绛旓細鎴戝氨缁欎釜ADO杩炴帴ACCESS杩炴帴SQL澶鏁版嵁搴杩炴帴琛ㄨ仈鍚堟煡璇袱涓暟鎹簱鏁版嵁琛ㄧ殑渚嬪瓙锛歅rivate Sub 鎺т欢鍚嶇О_浜嬩欢杩囩▼(鍙橀噺)Dim A, B as String '---瀹氫箟鍙橀噺鏉ュ瓨瀛楃涓 Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.path & "\ACCESS鏁版嵁搴.鍚庣紑"'---杩炴帴ACCESS鏁版嵁...
  • VB閲岄潰璇彞,鎬庝箞瀹炵幇瀵筍QL鏁版嵁搴閲岄潰鏁版嵁鐨勫鍒犳敼鏌
    绛旓細'濡傛灉浣犵殑鏁版嵁搴鏄疭QL鐨勭敤涓嬮潰鐨勬柟寮忔墦寮鏁版嵁搴 'mycon.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=true;Initial Catalog=鏁版嵁搴撳悕;Data Source=.\sqlexpress"'mycon.Open '鎵撳紑鏁版嵁搴 Dim rst As New ADODB.Recordset '瀹氫箟涓涓褰曢泦 锛岀敤鏉ユ墦寮琛...
  • vb.net鏁版嵁搴撴搷浣
    绛旓細VB.net 鎿嶄綔Access鏁版嵁搴鐨勪竴浜涘父鐢ㄦ柟娉,浠g爜濡備笅Imports SystemImports System.Data.SqlClientImports System.ConfigurationImports System.Collections.GenericImports System.TextImports System.DataImports System.Configuration.ConfigurationSettingsImports System.Data.OleDbPublic Class DBPrivate Shared com As OleDb.OleDbComma...
  • VB瀹炵幇ACCESS鏁版嵁搴璁板綍鐨勬煡璇,鏂板,鍒犻櫎,淇敼
    绛旓細鈥滀慨鏀光濇寜閽殑绋嬪簭 Private Sub cmdEdit_Click()sql = "select * from 鍋滄椂缁熻 where date = cdate('" & Text8.Text & "') and ycqk = '" & Combo1.Text & "'and id = '" & DataGrid1.Columns(2).CellText(DataGrid1.Bookmark) & "'"rs.Open sql, dm, adOpenDynamic, ...
  • VB瀹炵幇ACCESS鏁版嵁搴璁板綍鐨勬煡璇,鏂板,鍒犻櫎,淇敼鐨勪唬鐮佹槸浠涔?
    绛旓細鈥滀慨鏀光濇寜閽殑绋嬪簭 \x0d\x0aPrivate Sub cmdEdit_Click() \x0d\x0asql = "select * from 鍋滄椂缁熻 where date = cdate('" & Text8.Text & "') and ycqk = '" & Combo1.Text & "'and id = '" & DataGrid1.Columns(2).CellText(DataGrid1.Bookmark) & "'" \x0d\x0...
  • 扩展阅读:vb下载安装 ... vb实例大全 ... vb官网下载 ... vb数据库编程100实例 ... vb连接mysql数据库实例 ... vb菜单编辑器的实例 ... 用vb编写简单小程序实例 ... vb数据库编程外观样板 ... vb数据库经典实例 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网