我正在创建一个仪表板,从网络上的各种来源提取数据。我已设置Excel 2010 Microsoft查询以提取数据表(使用功能区菜单进行设置)。
Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=S:\2017 process\2017 main tracker.xlsm;Mode=Read;Extended Properties="Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Bypass UserInfo Validation=False;HDR=YES;MODE=READ;READONLY=TRUE;";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False
但是,如果网络上有人将文件锁定打开以进行编辑。然后我尝试连接的工作簿将打开(以只读方式)。这是不可取的。我希望在没有源工作簿开放的情况下提取数据。
有谁知道如何阻止这种情况发生?我已将MODE=READ;READONLY=TRUE;
添加到连接字符串的扩展属性中,但仍然没有运气。
感谢任何帮助,
印花布
答案 0 :(得分:0)
一个简单的解决方法是将文件复制到临时目录并在提取数据后删除。