Как закрыть подключение к данным Excel после обновления данных? - PullRequest
0 голосов
/ 13 сентября 2018

Моя проблема в том, что у меня есть файл xcopy, который периодически перезаписывает файлы, к которым мой файл Excel подключен через соединение для передачи данных. Если мой файл Excel имеет открытые соединения с другими моими источниками данных, то я считаю, что он не будет перезаписывать файл, а просто сохранит его под другим именем файла [(например, из-за имени: Данные Excel -> Данные Excel (1)]

Мне интересно, есть ли способ просто извлечь данные из этих файлов, а затем немедленно закрыть соединение.

Обычно для одного параметра по умолчанию используется Mode=Share Deny Write Я изменил его на Mode=Share Deny None, но, похоже, не работает.

Я также пытался ThisWorkbook.ConnectionsDisabled = False до запуска макроса обновления:

With ThisWorkbook.Connections("Query - JO")
     .OLEDBConnection.BackgroundQuery = False
     .Refresh
End With

Затем я включаю соединение через: ThisWorkbook.ConnectionsDisabled = True

Но я получаю сообщение об ошибке ThisWorkbook.ConnectionsDisabled = False: Compile error: Can't assign to read-only property. (Примечание: та же ошибка появляется для ActiveWorkbook.ConnectionsDisabled = False)

My Connection String показано ниже:

Provider=Microsoft.ACE.OLEDB.12.0;
Password="";
User ID=Admin;
Data Source=C:\Users\Test.MDB;
Mode=Share Deny None;
Extended Properties="";
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password=****;
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=0;
Jet OLEDB:Global Partial Bulk Ops=2l
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System 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;
...