|
本帖最后由 feng3724 于 2017-11-8 16:08 编辑
逛了一下论坛, 有多人也遇到同样的问题: 做为数据源的Excel表放在共享盘(多人有打开编辑权限), 然后用ADO连接时, 如果其他人打开了源表格, 则在连接open时会同时在本地打开源表格(只读).
看他们做了多种尝试, 都无法避免这种情况.
两种简单的障眼方法:
1. 连接时判断源表格是否打开, 打开则copy一份到本地, 然后连接本地的表格;
2. 如果被打开了, 则加个语句进行判断并关闭之;
但我觉得这两种方法都会导致增加额外的时间, 所以也再次询问一下老师们, 有没有什么设置上的变更来直接连接源表格, 而不是本地打开它?
Dim xlscnn as ADODB.Connection
Set xlscnn = New ADODB.Connection
With xlscnn
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & filename & ";Mode=Read;Extended Properties='Excel 12.0;HDR=No;IMEX=1'"
.CommandTimeout = 15 '超时时间,默认为30秒
.Open '源表格在共享盘中, 如果被他人打开, 则ADO连接时会同时本地打开...
End With
|
|