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欢迎分享,转载请注明来源:内存溢出
评论列表(0条)