首页
关于我们
服务项目
作品展示
服务支持
联系我们
友情链接
网站地图
 您当前位置:网络学院 -> 编程开发系-> 编程开发-> VB教程
在VB中用DAO实现数据库编程
作者:admin 来源:网络
日期: 2007-2-27
站内搜索
文章页数:[1] 

    DAO(Data Access Object)全称为数据访问对象,它是数据库编程的重要方法之一。DAO的一种面向对象的界面接口,特色为它不是可视化的对象,使用它全部都要靠编码来完成,DAO是设计关系型数据库系统结构的对象类的集合。它提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。由于ADO(ActiveX Data Object ActiveX 数据对象)的出现,DAO的使用已大大减少,但它无须使用ODBC(开放数据库连接)便可连接各个数据源,因而我们仍经常用经典的DAO。下面我向大家详细介绍如何使用DAO编程。

  DAO使用之前必须先引用。方法为打开VB6.0 , 从VB的"工程"菜单中,选择"引用"项,当"引用"对话框出现后,从库的列表中,选择"Microsoft DAO 3.51 Object Library",单击"确定"。现在便可以使用DAO对象库提供的所有对象进行编程了。

     一、 创建数据库:

  在DAO中用CreatDataBase方法可以根据用户需求动态的创建数据库。这一点在程序中是非常有用的。用户可以根据要求实时建立数据库。建立过程如下:

Private Sub Com_creat_Click()
On Error GoTo Err100
CreatDataBase "数据库名称.mdb" ,dbLangGeneral
Msgbox "数据库建立完毕"
Exit Sub
Err100:
MsgBox "不能建立数据库! " & vbCrLf & vbCrLf & Err.Description, vbInformation
End Sub

  这样,数据库便在当前默认的路径下建立了。

  二、 创建表与字段:

  建立数据库后,则需要在该数据库中建立表,这要用到TableDef 对象。先定义一个TableDef类型的对象,然后用TableDef集合中Append方法将之追加到数据库当中去。并且同时定义一个Field对象,用CreatFiele的方法创建一个Field对象,向表中添加字段。例如:

Private Sub Com_table_Click()
On Error GoTo Err100
Dim Defdb As DataBase
Dim NewTable As TableDef
Dim NewField As Field
Set Defdb = Workspaces(0).OpenDatabase (App.path & "\数据库名称.mdb" ,0, False)
Set NewTable = DefDataBase.CreateTableDef("表名")
Set NewField = DefTable.CreateField( "字段名" , dbText ,6) ′创建一个字符型的字段,长度为6个字符
DefTableFields.Append NewField ′字段追加
DefDatabase.TableDefs.Append NewTable ′表追加
Msgbox " 表建立完毕 "
Exit Sub
Err100:
MsgBox "对不起,不能建立表。请先再建表前建立数据库?", vbCritical
End Sub

  一个数据库可能有十几个甚至几十个字段,一个表中有多少个字段,则要创建多少次并要追加到表中。每建立一个字段后都要用到字段追加命令,但是表追加只需在所有字段建立完成后用一条命令即可完成。
    三、 打开数据库:

  在VB中,对一个对象变量引用之前必须加以说明。DAO也是如此,必须先声明数据库变量,例如:Dim dbase As Database 。建立了数据库对象变量后,我们便可打开数据库了,在一般情况下都只是访问一个数据库,当打开数据库后再对数据库中的各个记录进行操作,这就要用到Recordset 对象建立记录集。例如:

Private Sub Command_OpenDatabase_Click()
Dim dbase as Database
Dim rs As Recordset
Set dbase = OpenDatabase ( App.path & "\数据库名称.mdb" )
Set rs = dbase.OpenRecordset ( " select * from 表名 " )
End Sub

   这样,数据库中的记录便放到Recordset中,可以进行后续操作了。

  四、 使用数据库:

  当打开数据库,建立Recordset 记录集后,便可浏览、删除、添加、查找数据库中的内容。

  1) 向前浏览

Private Sub cmd_previous_Click()
rs.MovePrevious
if rs.BOF =True then
rs.Movelast
End if
for i = 0 to 11
label(i).caption = rs.Fields(i) & ""
next
End Sub

  在字段赋值的末尾加上""可以避免许多不必要的错误,在数据库中,当一个字段为空的时候,它的值为Null ,Null表示什么也没有。因此无法赋值,赋给变量时会出错。但我们加上""空格符时,便有效的避免了赋值错误,这个技巧非常的有用。

  2) 向后浏览

Private Sub cmd_next_Click()
rs.MoveNext
If rs.EOF =True then
rs.MoveFirst
End if
for i = 0 to 11
label(i).caption = rs.Fields(i) & ""
next
End Sub
     3) 删除记录
Private Sub cmd_del_Click()
On Error GoTo handle
Dim msg as string
msg = "是否要删除记录"& Chr$(10)
msg = msg & label(0) ′把删除记录的代号加入msg中
If Msgbox(msg , 17 , "删除记录") <>1 Then Exit sub
rs.delete
rs.Movenext
If rs.EOF = True Then
rs.MovePrevious
End if
for i = 0 to 11
label(i).caption = rs.Fields(i) & ""
next
handle:
MsgBox "该记录无法删除!!!"
Exit Sub
End Sub

  4) 添加记录

  向数据库中添加记录比较麻烦一点,大致分为三步:首先,用AddNew方法向数据库添加一个新的空白记录;其次,将要输入的数据分别赋到数据库的各个字段中;最后,用Updata的方法,把记录写到数据库中去。例如:

Private Sub cmd_new_Click()
rs.AddNew
For i = 0 to 11
rs.Fields(i) = TextBox(i).Text
Next
rs.Updata
End Sub

  5)查找记录

  查找记录可以用Find方法,例如:

Private Sub Cmd_search_Click()
Set rs = dbase.openRecordset("表名",dbopenDynaset)
rs.findfirst "字段名= ' " & Text.Text & " ' " ′ Text.Text是输入的关键字
if rs.Nomatch = True then
Msgbox "对不起,没有该记录"
else
For i = 0 to 11
label(i).caption = rs.Fields(i) & ""
Next
End if
rs.close
End Sub

  以上只是大致介绍了DAO的一些最常用、最典型的用法,真正要熟练掌握它需要不懈的努力。当你很好的理解了DAO后,对学习新的RDO和ADO也有很大的帮助。并且DAO和ADO可以同时使用,DAO的缺陷在于查找功能不强,没有ADO方便,但动态创建数据库却远超ADO,因此有时二者结合更强大。我们相信DAO一定会帮你节约宝贵时间,为工作提供方便。

文章页数:[1] 
放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·VB网络编程的基础知识
·VB6.0数据库访问技术与例程解析
·Visual Basic数据库操作方法小结
·VB实现SQL Server 2000存储过程调用
·VB实现图像在数据库的存储与显示
·在VB中存取数据库中的图片
·Visual Basic 的数据库编程
·使用Data控件访问数据库
·在Access数据库中实现密码管理
·掌握VB中的ADO数据对象编程
最新文章
·使用Data控件访问数据库
·VB表格控件总览与例程分析
·在Access数据库中实现密码管理
·Visual Basic 的数据库编程
·VB6.0数据库访问技术与例程解析
·基于Visual Basic 6的网络程序设计
·VB实现SQL Server 2000存储过程调用
·VB实现图像在数据库的存储与显示
·在VB中用DAO实现数据库编程
·在VB中存取数据库中的图片
相关主题
版权申明:除部分特别声明不要转载,或者授权本站独家播发的文章外,大家可以自由转载本站的原创文章,但原作者和来自本站的链接必须保留(非本站原创的,按照原来自一节,自行链接)。文章版权归本站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去本站水印。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论  打印  刷新  推荐给朋友  返回顶部  关闭

网上大名: