【问题标题】:ADODB.Recordset locking my local source fileADODB.Recordset 锁定我的本地源文件
【发布时间】:2020-12-20 00:04:13
【问题描述】:

我在我的 PC 上使用本地 Excel 文件作为数据库。我的加载项将此数据库文件中的数据提取到新生成的 excel 文件中。当我的加载项打开 ADODB 连接和 Recordset 时,它会自动为我锁定源数据库文件(我可以以只读模式打开它)。这没什么大不了的,但我很好奇为什么。即使我用乐观锁打开记录集,它仍然将文件锁定为只读。应该是这样吗? (而且,我的加载项没有修改任何数据,它不应该)

sConnectionStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sDBFile & _
                 ";Extended Properties=""Excel 12.0;HDR=YES;"";"

DBConnection.Open sConnectionStr
    
rs.Open sQuery, DBConnection, adOpenDynamic, adLockOptimistic

P。 S. 还有一个快速的问题:如何从特定表中选择 *,而不是整个表?目前我正在获取整张纸:

sQuery = "SELECT * FROM [Existing$]"

谢谢!

【问题讨论】:

    标签: adodb


    【解决方案1】:

    因为你需要关闭连接才能释放文件句柄。

    【讨论】:

    • how to SELECT * from specific table, not the whole Sheet? 你的意思是表?请问EXCEL填表的意思和Sheet一样
    • 这很有帮助,谢谢。此外,如果记录集保存“只读”数据,那么您需要Set rs.ActiveConnection = Nothing 以在关闭连接以释放锁定文件后保持记录集正常运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    相关资源
    最近更新 更多