VB如何用ADO向ACCESS数据库插入和修改记录?

VB如何用ADO向ACCESS数据库插入和修改记录?,第1张

1、Microsoft Access窗口中,选择文件菜单中的打开选项,打开一个已有的数据库

2、数据库中有两张表格,如下图所示。

3、数据库中,表格学生信息是课程成绩的子表。

4、如果直接在子表中插入记录,会提示不能添加或修改。

5、其实,只需在主表中,插入相关的主键和记录。

6、接着,就可以在子表中插入相关记录了。

7、如果要在子表中插入字段,只需选择单击以添加选项。

8、新增字段后,输入字段名即可。

给你一个创建数据库的例子;

窗体上加3个按钮分别执行,创建数据库与表,添加记录,修改记录。

'首先通过菜单【工程】--【引用】,勾选 Microsoft DAO 3.6 Object Library

'其中版本号3.6,看你计算机具体情况而选择,当然版本越高越新。

Option Explicit

Private Sub Command1_Click()

Dim MyWs As Workspace '工作区

Dim MyDB As Database'数据库对象

Dim myTBL As TableDef '数据表对象

Dim MyFid(9) As Field '字段对象

Dim i As Integer

If Dir(App.Path &"\实验数据库.mdb") <>"" Then Kill App.Path &"\实验数据库.mdb"

'创建工作区

Set MyWs = DBEngine.Workspaces(0)

'创建数据库文件

'Set MyDB = MyWs.Workspaces(0).CreateDatabase(App.Path &"\F实验数据库.mdb")

Set MyDB = MyWs.CreateDatabase(App.Path &"\实验数据库.mdb", dbLangGeneral, dbEncrypt)

'创建表

Set myTBL = MyDB.CreateTableDef("学生数据表")

'创建字段

Set MyFid(1) = myTBL.CreateField("学号", dbText, 4)

Set MyFid(2) = myTBL.CreateField("姓名", dbText, 10)

Set MyFid(3) = myTBL.CreateField("性别", dbText, 2)

Set MyFid(4) = myTBL.CreateField("备注", dbText, 4)

Set MyFid(5) = myTBL.CreateField("籍贯", dbText, 10)

Set MyFid(6) = myTBL.CreateField("出生年月", dbDate, 8)

Set MyFid(7) = myTBL.CreateField("家庭住址", dbText, 40)

Set MyFid(8) = myTBL.CreateField("联系电话", dbText, 50)

Set MyFid(9) = myTBL.CreateField("户籍地址", dbText, 40)

'将字段加入到Field集合

For i = 1 To 9

myTBL.Fields.Append MyFid(i)

Next i

'将表加入到数据库中

MyDB.TableDefs.Append myTBL

End Sub

Private Sub Command2_Click()

Dim MyWs As Workspace '工作区

Dim MyDB As Database'数据库对象

Dim Rs As Recordset '记录集对象

'创建工作区

Set MyWs = DBEngine.Workspaces(0)

'创建数据库文件

'Set MyDB = MyWs.Workspaces(0).CreateDatabase(App.Path &"\F实验数据库.mdb")

Set MyDB = MyWs.OpenDatabase(App.Path &"\实验数据库.mdb")

'返回记录集

Set Rs = MyDB.OpenRecordset("Select * From 学生数据表")

Rs.AddNew

Rs.Fields("学号") = "101"

Rs.Fields("姓名") = "张老三"

Rs.Fields("性别") = "男"

Rs.Fields("备注") = "在籍"

Rs.Fields("籍贯") = "江苏"

Rs.Fields("出生年月") = #11/16/1992#

Rs.Fields("家庭住址") = "长江路1000号2001室"

Rs.Fields("联系电话") = "12345678"

Rs.Fields("户籍地址") = "长江路1000号2001室"

Rs.Update

End Sub

Private Sub Command3_Click()

Dim MyWs As Workspace '工作区

Dim MyDB As Database'数据库对象

Dim Rs As Recordset '记录集对象

'创建工作区

Set MyWs = DBEngine.Workspaces(0)

'创建数据库文件

'Set MyDB = MyWs.Workspaces(0).CreateDatabase(App.Path &"\F实验数据库.mdb")

Set MyDB = MyWs.OpenDatabase(App.Path &"\实验数据库.mdb")

'返回记录集

Set Rs = MyDB.OpenRecordset("Select * From 学生数据表")

'定位到要修改的记录

Rs.FindFirst "学号='101'"

If Rs.NoMatch Then

'没有找到要找的记录

MsgBox ("不存在要找的记录:")

Else

'找到要找的记录,进行修改某一个或几个字段

Rs.Edit

Rs.Fields("籍贯") = "浙江"

Rs.Fields("出生年月") = #1/28/1991#

Rs.Update

MsgBox ("修改成功!")

End If

End Sub

“修改”按钮的程序 \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\x0ars.Open sql, dm, adOpenDynamic, adLockOptimistic \x0d\x0ars.Fields("id") = Text7.Text \x0d\x0ars.Fields("ycqk") = Combo1.Text \x0d\x0ars.Fields("date1") = Text1.Text \x0d\x0ars.Fields("time1") = Text2.Text \x0d\x0ars.Fields("date2") = Text3.Text \x0d\x0ars.Fields("time2") = Text4.Text \x0d\x0ars.Update \x0d\x0ars.Close \x0d\x0aEnd Sub \x0d\x0a\x0d\x0a'“删除”按钮的程序 \x0d\x0aPrivate Sub cmdDelete_Click() \x0d\x0astrFCode = DataGrid1.Columns(0).CellText(DataGrid1.Bookmark) \x0d\x0astrSCode = DataGrid1.Columns(2).CellText(DataGrid1.Bookmark) \x0d\x0astrCCode = DataGrid1.Columns(1).CellText(DataGrid1.Bookmark) \x0d\x0asql = "select * from 停时统计 where date='" &strFCode &"' and id='" &strSCode &"' and ycqk='" &strCCode &"'" \x0d\x0ars.Open sql, dm, adOpenDynamic, adLockOptimistic \x0d\x0ars.Delete \x0d\x0ars.Update \x0d\x0ars.Close \x0d\x0aEnd Sub \x0d\x0a\x0d\x0a'“增加”按钮的程序 \x0d\x0aPrivate Sub Command1_Click() \x0d\x0asql = "select * from 停时统计 order by id" \x0d\x0ars.Open sql, dm, adOpenDynamic, adLockOptimistic \x0d\x0ars.AddNew \x0d\x0ars.Fields("date") = Date \x0d\x0ars.Fields("id") = Text7.Text - 1 \x0d\x0ars.Fields("ycqk") = Combo1.Text \x0d\x0ars.Fields("date1") = Text1.Text \x0d\x0ars.Fields("time1") = Text2.Text \x0d\x0ars.Fields("date2") = Text3.Text \x0d\x0ars.Fields("time2") = Text4.Text \x0d\x0ars.Update \x0d\x0ars.Close \x0d\x0a\x0d\x0aWith Adodc1 \x0d\x0aAdodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\db1.mdbPersist Security Info=False" \x0d\x0aAdodc1.RecordSource = "select * from 停时统计 where date = cdate('" &Text8.Text &"') and ycqk = '" &Combo1.Text &"' order by id" \x0d\x0aAdodc1.Refresh \x0d\x0aDataGrid1.Refresh \x0d\x0aEnd With \x0d\x0aEnd Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11936489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存