TableDef.OpenRecordset 方法 (DAO)

适用于:Access 2013、Office 2013

创建一个新的 Recordset 对象,并将其追加到 Recordsets 集合。

语法

表达式 。OpenRecordset (类型选项)

表达式 一个表示 TableDef 对象的变量。

参数

名称

必需/可选

数据类型

说明

Name

必需

String

新的 Recordset 的记录源。 该源可能是表名、查询名或返回记录的 SQL 语句。 对于 Microsoft Access 数据库引擎数据库中的表类型 Recordset 对象,该源只能是表名。

Type

可选

Variant

RecordsetTypeEnum 常量,可指示要打开的 Recordset 的类型。

注意:如果在 Microsoft Access 工作区中打开 Recordset,并且不指定类型,OpenRecordset 会创建一个表类型 Recordset(如果可以)。 If you specify a linked table or query, OpenRecordset creates a dynaset-type Recordset.

选项

可选

Variant

RecordsetOptionEnum 常量的组合,可指定新 Recordset 的特性。

注意:常量 dbConsistentdbInconsistent 相互排斥,同时使用两者会产生错误。 当 Options 使用 dbReadOnly 常量时提供 LockEdit 参数也会导致错误。

LockEdit

可选

Variant

LockTypeEnum 常量,可确定 Recordset 是否锁定。

注意:可以在 Options 参数或 LockedEdit 参数中使用 dbReadOnly,但不能同时在两个参数中使用。 如果将其同时用于这两个参数,将出现运行时错误。

返回值

Recordset

说明

通常,如果用户在更新记录时接收到此错误,代码应刷新字段的内容,然后检索最近修改的值。 如果在删除记录时出错,代码应向用户显示新记录数据,同时显示一则消息,指示最近更改了数据。 此时,代码可能会请求确认用户是否仍要删除记录。

如果在 Microsoft Access 数据库引擎连接的 ODBC 工作区中,对包含 IDENTITY 列的 Microsoft SQL Server 6.0(或更新版本)表打开了 Recordset,则还应该使用 dbSeeChanges 常量,否则会导致出错。

对一个 ODBC 数据源打开多个 Recordset 可能会失败,因为连接正被 OpenRecordset 调用占用。 解决此问题的一种方法是在打开 Recordset 后立即使用 MoveLast 方法,以完全填充 Recordset

使用 Close 方法关闭 Recordset 会自动从 Recordsets 集合中将其删除。

注意

如果 source 引用由与非整数值串联的字符串组成的 SQL 语句,并且系统参数指定非美国。十进制字符(如逗号 (例如,strSQL = “PRICE > ” & lngPrice,lngPrice = 125,50) ,尝试打开 Recordset 时会发生错误。 这是因为在连接过程中,需要使用系统的默认小数字符将数字转换为字符串,并且 SQL 只接受美国格式的小数字符。