Моя проблема в том, что у меня есть файл 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;