Я хочу написать некоторый собственный код для программного выполнения операции «Диспетчер таблиц ссылок». У меня есть база данных MS-Access, которая в настоящее время ссылается на внешние данные из Excel, MS-Access и SQL сервера.
Перед выполнением макроса в моей базе данных MS-Access я хочу повторно связать внешние данные sources или укажите новое местоположение источника данных в случае изменения местоположения источника данных.
У меня есть таблица в базе данных MS-Access, которая связана с внешним SQL источником данных ( Тестовая база данных). Теперь я хочу, чтобы он был связан с производственной базой данных. Я пробовал следующий код, но он выдает исключение COM с описанием ошибки как «ODB C - не удалось подключиться к« EmployeeConnectionFor SQL ».
public void performLinkTableMangerOperationForSQL()
{
string CurrentDatabasePath = @"D:\UDTDatabase\InternalDatabase.accdb";
Microsoft.Office.Interop.Access.Dao.DBEngine DAO = new Microsoft.Office.Interop.Access.Dao.DBEngine();
Microsoft.Office.Interop.Access.Dao.Database db;
Microsoft.Office.Interop.Access.Dao.TableDefs dt;
db = DAO.OpenDatabase(CurrentDatabasePath);
dt = db.TableDefs;
// Refreshing link for Sql server external table with DSN.
string sqlSource = @"DATABASE=Employee;";
string DSNName = "EmployeeConnectionForSQL;";
string sqlNewConnectionString = @"ODBC;FileDSN=" + DSNName + sqlSource;
foreach (Microsoft.Office.Interop.Access.Dao.TableDef table in dt)
{
string name = table.Name;
if (table.Name == "dbo_Employees")
{
table.Connect = sqlNewConnectionString;
table.RefreshLink();
}
}
db.Close();
}