在 Access VBA 中打开 RecordSet 时,如果类型是 dbOpenSnapshot,是否会使选项 dbReadOnly 变得多余?

When opening a RecordSet in Access VBA, if the type is dbOpenSnapshot, does it make the option dbReadOnly redundant?

在 Access VBA 中,当以快照形式打开记录集时,是否会使只读选项变得多余?起初这似乎是真的,因为快照本质上已经是只读的,但似乎总是有一些警告。

示例:

Dim acc      as Access.Application
Dim db       as DAO.Database
Dim rs       as DAO.Recordset
Dim sqltext  as String

sqltext = "SELECT * FROM SOMESOURCE"

Set rs = db.OpenRecordset(sqltext, dbOpenSnapshot, dbReadOnly)

'Because the type is dbOpenSnapshot, does dbReadOnly become redundant?

检查记录集的 Updatable 属性。这一个打印 False.

sqltext = "SELECT * FROM TABLE_01"
Set db = CurrentDb
Set rs = db.OpenRecordset(sqltext, dbOpenSnapshot)
Debug.Print rs.Updatable

所以,是的,dbOpenSnapshot 作为记录集 Type 选项为您提供一个只读记录集。