你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
在VB中用DAO实现数据库编程
 

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后,对学习最新的RPOADO也有很大的帮助。相信DAO一定会帮你节约宝贵时间,为工作提供方便。

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089