代码之家  ›  专栏  ›  技术社区  ›  Mako212

在某些情况下防止访问阻塞ODBC查询

  •  1
  • Mako212  · 技术社区  · 6 年前

    我正在使用accessvba调用一个R脚本来构建一些图表。这个R脚本通过ODBC查询从Access数据库中提取一些数据。我在用 library(RODBC) 从R。

    警告消息: 1:在odbcDriverConnect(sprintf(“Driver={Microsoft Access Driver(*.mdb,*.accdb)}中;DBQ=%s“,: [RODBC]错误:状态HY000,代码-3810,消息[Microsoft][ODBC Microsoft Access Driver]未知用户已将数据库置于阻止其打开或锁定的状态

    脚本无法运行,因为无法建立连接。

    管理/设置数据库状态以使查询始终运行的最佳方法是什么?这个问题与表是否打开没有直接关系—我可以打开一个表,关闭一个表,但没有问题,有时甚至可以在表打开的情况下运行。

    该错误是由于在VBA模块中进行任何类型的更改而导致的(这与脚本的实际VBA调用无关,我可以运行相同的命令) rscript 调用命令行并复制错误)。现在我明白了原因,我不认为这是个大问题。保存VBA模块有时似乎可以纠正错误,尽管不是100%的时间。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Erik A    6 年前

    这是故意的。

    对VBA模块、窗体或报表进行任何设计更改都会对accdb文件设置独占锁定,该锁定将一直保留到进行更改的Access应用程序关闭为止。

    这是人们建议您拆分数据库的原因之一,因为这样您就可以更改设计,而无需将人员锁定在数据之外。