VB两种操作Access数据库方法的比较


  在VB编程中通常要与数据库打交道,关于数据量较小的 利用,一般选用Access作为数据库,由于Access数据库 比较 容易, 性能也 比较齐全,数据的备份、拷贝都很容易,且程序公布时不需求额外 径自安装其它的数据库治理软件 。 因此,在 性能 可以满足要求的条件下,Access数据库一般成为一些小型数据库软件的首选 。

  关于用VB操作Access库表的 步骤有多种,一般初学者一般会 使用数据控件,许多 材料上也大都以此作为操作Access数据库的起点来介绍,由于这个 步骤 使用起来十分 容易,但 使用数据控件的 步骤在程序编码上一般不够灵便 。现在介绍一下其它两种操作Access数据库的 步骤 。

  第一种: 使用数据库对象

  首先,要进行有关数据对象的申明,代码如下 。

Dim MyWs As Workspace
Dim MyDB As Database
Dim WordTab As Recordset

  生成工作区, 打开数据库, 而后再依据需求 打开相应的库表 。

Set MyWs = DBEngine.CreateWorkspace″″ ″Admin″ ″″ dbUseJet 
Set MyDB = MyWs.OpenDatabase数据库名称 False False 
Set WordTab = MyDB.OpenRecordset″表名″ dbOpenDynaset 

  这种 步骤的 长处是代码 比较 容易,要求的环境为DAO 2.5/3.51,其中表名 可以换成SELECT语句,即依据条件 打开所需求的记录集,这种 步骤可脱离数据控件, 可以 比较容易灵便地操作数据库表,添加了程序的灵便性 。

   揭示: 通过测试发现,这种 步骤不得不 打开Access97库表,关于Access2000库表却无能为力,会弹出库表 格局不对的出错 揭示 。另外,对数据环境的要求仍 比较多 。

  第二种: 使用ADODB

  首先,申明一个链接变量,并依据需求申明记录集变量 。

Dim LocCnn1 As ADODB.Connection
Dim LocRst1 As ADODB.Recordset


   构建与数据库的链接,假如数据库没有口令,最终一行 可以不写(写上也不会错) 。



Set LocCnn1 = New ADODB.Connection
LocCnn1.Open ″Provider=Microsoft.Jet.OLEDB.4.0User ID=Admin″ & _
″Data Source=″ & App.Path & ″数据库名称.mdb″& _
″Mode=Share Deny NoneExtended Properties=''Persist Security Info=False″ & _
″Jet OLEDBDatabase Password='asp561rbc'″

  这种 步骤 固然代码长一些,但对数据环境要求低,且 构造清楚,所编写的公布程序也大为减小 。由于与链接SQL Server等数据库的 步骤一样, 因此大量的操作数据库的代码 雷同,当数据库需求由Access扩充到一些大型数据库,或由一些大型数据库裁剪出一个 容易数据库时,程序的移植会 比较容易 。

  另外,这种 步骤关于Access97及Access2000均能很好地 支撑,兼容性好 。关于大量插入、删除、 批改等操作,只在Connection层进行即可,既可 普及速度又可削减代码 。

  假如还要猎取具体的记录集内容,则须再依据条件 打开具体的库表,代码如下:

Set LocRst1 = New ADODB.Recordset 
LocRst1.CursorType = adOpenKeyset
LocRst1.LockType = adLockOptimistic
LocRst1.Open ″SELECT  FROM 表名″ LocCnn1adCmdText


   揭示:一般状况下, 提议 使用第二种 步骤 。