如何使用DAO在VB6.0中建立数据库,表,以及添加修改记录

如何使用DAO在VB6.0中建立数据库,表,以及添加修改记录,第1张

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

窗体上加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

估计你那里 调用者拿到的 只是一个 接口. 看不到实现.

这个是 接口设计的目的, 也就是你 客户端, 只调用 接口定义的方法. 而不管具体的实现是怎么处理的.

这样, 如果 具体实现类发生变化了, 只要还是 符合接口定义的, 那么客户端不需要重新编译.

你可以把新加的方法的定义, 追加到 接口上面.

如果不允许修改接口.

那么恐怕你要用 比较 难看的代码来写代码了. 还不确定能不能执行通过.

例如

接口 ITest 定义方法 HelloWorld()

实现 TestImpl 实现方法 HelloWorld(), 还写了另外一个方法 SayHello()

客户端一般是只有一个类型为 ITest 的变量。

例如

ITest test = 某工厂方法获取实例()

// 这个是没有问题的。

test.HelloWorld()

// 下面这个是 编译不通过的.

test.SayHello()

// 尝试下面这种修改, 可以编译通过, 但是不能保证 100% 可执行, 这个要看前面的 工厂方法是如何创建 TestImpl 实现的。

((TestImpl) test).SayHello()


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

原文地址:https://54852.com/bake/7983977.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存