链接的是SQL Server数据库中的表,原来的一些函数将会出现如下图所示的错误,必须更改这些有关的代码。
只要将
Set rst = db.OpenRecordset(记录集)
改成如下语句即可
Set rst = dbs.OpenRecordset(记录集,2,512)
或Set rst = dbs.OpenRecordset(记录集, dbOpenDynaset, dbSeeChanges)
原因是OpenRecordset的格式设置有问题,下面我们给出OpenRecordset的完整语法:
表达式.OpenRecordset(Name,Type, Options),其中其参数如表1所示。
表1 OpenRecordset所带参数说明
名称
|
必选/可选
|
数据类型
|
描述
|
Name
|
必选
|
String
|
新的 Recordset 的记录源。该源可能是表名、查询名或返回记录的。对于 Microsoft Access 数据库引擎数据库中的表类型 Recordset 对象,该源只能是表名。
|
Type
|
可选
|
Variant
|
一个 RecordsetTypeEnum 常量,表示要打开的 Recordset 的类型。
|
Options
|
可选
|
Variant
|
RecordsetOptionEnum 常量的组合,用于指定新的 Recordset 的特征。
|
LockEdit
|
可选
|
Variant
|
一个 LockTypeEnum 常量,用于确定 Recordset 的锁定。
|
其中:Type可选择值如表2所示。
表2 Type可选择值
名称
|
值
|
描述
|
dbOpenDynamic
|
16
|
打开动态集类型的记录集
|
dbOpenDynaset
|
2
|
打开动态集类型的记录集
|
dbOpenForwardOnly
|
8
|
打开仅向前类型的记录集
|
dbOpenSnapshot
|
4
|
打开快照类型的记录集
|
dbOpenTable
|
1
|
打开表类型的记录集
|
Options可选择值如表3所示。
表3 Options可选择值
名称
|
值
|
描述
|
dbAppendOnly
|
8
|
允许用户向动态集内添加新记录,但是禁止用户读取现有记录。
|
dbConsistent
|
32
|
仅向那些将不影响动态集内其他记录的字段应用更新(仅适用于动态集类型和快照类型)。
|
dbDenyRead
|
2
|
禁止其他用户读取记录集记录(仅适用于表类型)。
|
dbDenyWrite
|
1
|
禁止其他用户更改记录集记录。
|
dbExecDirect
|
2048
|
在不首先调用 SQLPrepare ODBC 函数的情况下执行查询。
|
dbFailOnError
|
128
|
在出错时回滚更新。
|
dbForwardOnly
|
256
|
创建仅向前型滚动快照类型的记录集(仅适用于快照类型)。
|
dbInconsistent
|
16
|
向所有的动态集字段应用更新,即使其他记录受到影响也是如此(仅适用于动态集类型和快照类型)。
|
dbReadOnly
|
4
|
以只读方式打开记录集。
|
dbRunAsync
|
1024
|
异步执行查询。
|
dbSeeChanges
|
512
|
如果其他用户更改您正编辑的数据,则生成运行时错误(仅适用于动态集类型)。
|
dbSQLPassThrough
|
64
|
向 ODBC 数据库发送 SQL 语句(仅适用于快照类型)。
|
Access软件网QQ交流学习群 群号:41208985