【发布时间】:2015-12-09 17:10:24
【问题描述】:
数据库专家的快速问题。请参阅以下从 Excel 调用的代码 (VBA/ADO):
Dim DBPath As String, ConnStr As String
DBPath = ThisWorkbook.Path & Application.PathSeparator & "Database.mdb"
ConnStr = "Data Source=" & DBPath & ";" & "Jet OLEDB:Database Password=" & DBPass()
Dim cnn as ADODB.Connection
Set cnn = New ADODB.Connection
With cnn
.Provider = CheckProvider(strPath:=DBPath) ' Separate function call. Ignore
.Mode = adModeRead
.Open ConnStr
End With
Stop ' To inspect the directory...
根据“adModeRead”规范,它应该以只读方式打开数据库。但是我注意到,当连接处于活动状态时,仍在目录中创建/删除锁定文件(Database.ldb)。当然这与只读命令相反,这应该意味着不能写入任何数据,因此不需要文件锁。
谁能解释这里发生了什么?谢谢。
编辑:还有后续 - 如果我想以纯只读方式打开连接而不创建任何锁定文件,还有其他方法吗?
【问题讨论】:
标签: excel vba ms-access locking ado