Access交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • ADO的Isolation..
  • 重新定位链接表二步走
  • 用DAO或ADO正确访问A..
  • 【新手进阶】之二十:浅谈A..
  • Access中MDB转AD..
  • 查询在不同Web服务器上的..

最新文章

  • 实验报告 --DAO与AD..
  • 用代码创建mdb格式的Ac..
  • 连接后台数据库提示 无法启..
  • 64位windows系统如..
  • Access的DAO准确获..
  • 利用代码自动创建ODBC源

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > DAO/链接表/ADO/ADP
DAO/链接表/ADO/ADP

DAO基础(4)

5)缺省的记录集类型

DAO 能够根据记录集的数据源类型,以及打开记录集的方式,自动地设置缺省的记录集类型。因此,一般不需要指定记录集类型。然而,可以在 OpenRecordset 方法中指定 type 参数,以取消缺省的类型。
按照打开记录集的方式,下表中列出了可用的类型和缺省的类型。
■    使用 Database 对象的 OpenRecordset 方法:
    Set rstNew = dbs.OpenRecordset("Data Source")
   
    如果 Data Source 为数据库中的本地表,那么可以用表类型、动态集、快照和动态类型的 Recordset 对象,缺省的记录集类型为表类型。如果 Data Source 为其它类型,那么只能使用动态集和快照类型的 Recordset 对象,动态集类型为缺省的类型。
■    使用 TableDef 对象的 OpenRecordset 方法。
    Set rstNew = tdfTableData.OpenRecordset
   
    如果 tdfTableData 指的是 Microsoft Jet 数据库 (.mdb) 中的表,或者直接打开的 ISAM 数据库,那么所有的五种类型都是可用的,表类型的记录集为缺省的类型。如果 tdfTableData 在 ODBC 数据库中,或者是外部数据库中的链接表,那么只能用动态集和快照类型的 Recordset 对象,动态集类型为缺省类型。
■    使用 QueryDef 对象的 OpenRecordset 方法:
    Set rstNew = qdfQueryData.OpenRecordset
   
    只能使用动态集和快照类型的 Recordset 对象,动态集类型为缺省的类型。
■    使用现有的 Recordset 对象的 OpenRecordset 方法:
    Set rstNew = rstExisting.OpenRecordset
   
    只能使用动态集和快照类型的 Recordset 对象。缺省的类型为现有的记录集的类型,在上例中,即 rstExisting 的类型。

6)具体创建Recordset对象的例子

在下面的例子中可能用到一些还未讲到的东西,但由于使用的比较简单,相信大家还是能够理解。
①以表为基础创建记录集
用基本表创建 Recordset 对象的方法,取决于该表对于当前数据库是本地表,还是位于另一个数据库中的链接表。
   
用本地 Microsoft Jet 数据库中的表创建记录集
下列程序代码使用 OpenRecordset 方法为一个表创建了表类型的 Recordset 对象:
Dim dbs As Database, rstCustomers As Recordset

Set dbs = OpenDatabase("Northwind.mdb")
Set rstCustomers = dbs.OpenRecordset("Customers")
   
请注意,创建表类型的记录集时无需使用 dbOpenTable 常数。如果省略了 type 常数,DAO 将根据数据源和用来创建记录集的对象的类型,选择最适当的 Recordset 对象类型。当从本地表打开记录集时,可以使用表类型的记录集,DAO 将使用它。
②用其它数据库格式的链接表创建记录集
下列程序段为链接的 Paradox 3.x 表创建了一个动态集类型的 Recordset 对象。当从非 Microsoft Jet 数据库中的链接表打开记录集时,表类型是不能使用的,因此,DAO 的使用效率仅次于它的动态集类型。
Dim dbs As Database
Dim tdfNonJetLinked As TableDef
Dim rstTableData As Recordset

' 打开数据库并创建 TableDef。
Set dbs = OpenDatabase("Northwind.mdb")
Set tdfNonJetLinked = dbs.CreateTableDef("PDXAuthor")

' 连接到名为 Author 的 Paradox 表,该表位于数据库
' C:\PDX\Publish。
tdfNonJetLinked.Connect = _
    "Paradox 3.X;DATABASE=C:\PDX\Publish"
tdfNonJetLinked.SourceTableName = "Author"

' 链接该表。
dbs.TableDefs.Append tdfNonJetLinked

' 为该表创建动态集类型的记录集。
Set rstTableData = tdfNonJetLinked.OpenRecordset()
   
如果先打开 Paradox 数据库,则可直接打开 Paradox 表。

③以查询为基础创建记录集
也可以基于存储的选择查询来创建 Recordset 对象。在下例中,“Current Product List”是保存在当前数据库中的一个选择查询。
Dim dbs As Database, rstProducts As Recordset

Set dbs = OpenDatabase("Northwind.mdb")
Set rstProducts = dbs.OpenRecordset _
    ("Current Product List")
   
如果当前并不存在存储的选择查询,OpenRecordset 方法允许使用 SQL 字符串代替查询名。上例可以改写为以下程序段:
Dim dbs As Database, rstProducts As Recordset
Dim strQuerySQL As String

Set dbs = OpenDatabase("Northwind.mdb")
strQuerySQL = "SELECT * FROM Products " _
    & "WHERE Discontinued = No " _
    & "ORDER BY ProductName;"
Set rstProducts = dbs.OpenRecordset(strQuerySQL)
   
这种方法的缺点在于,每次运行时都需要先编译查询字符串,而存储的查询只是在首次保存时编译一次,所以性能较佳。
注意 如果在 Microsoft Jet 中用 SQL 字符串或者存储的查询创建 Recordset 对象,那么,在查询返回了记录集的第一行以后,程序才会继续运行。在查询运行的时候,最好在状态栏中显示出适当的消息。如果使用 ODBCDirect,可以指定 dbRunAsync,它使查询在后台执行,应用程序能够继续执行其它语句。

发布人:leolong-Access中国  
分享到:
点击次数:  更新时间:2009-06-22 08:41:15  【打印此页】  【关闭】
上一条:在VB中使用API函数(什么是API? )  下一条:DAO基础(3)



相关文章

  • • 实验报告 --DAO与ADO效率之比较
  • • 用代码创建mdb格式的Access文件
  • • 连接后台数据库提示 无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开 的解决办法
  • • 64位windows系统如何使用64位的ADO连接Accesss accdb数据库(ACE.OLEDB)
  • • Access的DAO准确获取记录集Recordset的记录数Recordcount
  • • 利用代码自动创建ODBC源
  • • 在打开Ado记录集之前尽量先判断记录集有否打开,如打开则先关闭之
  • • 快速获取Excel文件所有工作表表名

热门文章

  • [2005-02-06] 各个版本 MDAC 所包括的文件及相关信息access数据库
  • [2005-02-06] 使用ADO修改数据库的密码access数据库
  • [2005-02-18] SQL语句集锦2access数据库
  • [2003-12-12] ADO连接数据库字符串大全(E文)access数据库
  • [2015-01-18] ADO直接读Excel的数据access数据库
  • [2016-11-27] Access数据库手动添加链接表及代码打开链接表管理器access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

Access交流网 版权所有 1999-2018 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2023  www.metinfo.cn