Hola, te dejo este codigo (ya antiguo). Con el puedes borrar y crear alias, etc...
Código Delphi
[-]
unit odbcacces;
interface
function AddDSN(const DSN, Database, Description: String): Boolean;
function RemoveDSN(const DSN: String): Boolean;
function RepairDB(const Database: String): Boolean;
function CompactDB(const Database1, Database2: String): Boolean;
implementation
uses
Windows, sysutils;
const ODBC_ADD_DSN = 1; ODBC_CONFIG_DSN = 2; ODBC_REMOVE_DSN = 3; ODBC_ADD_SYS_DSN = 4; ODBC_CONFIG_SYS_DSN = 5; ODBC_REMOVE_SYS_DSN = 6;
function SQLConfigDataSource( hwndParent: HWND; fRequest: WORD; lpszDriver: LPCSTR;
lpszAttributes: LPCSTR): BOOL; stdcall; external 'ODBCCP32.DLL';
function AddDSN(const DSN, Database, Description: String): Boolean; begin Result :=
SQLConfigDataSource(0, ODBC_ADD_DSN, 'Microsoft Access Driver (*.mdb)', PChar( 'DSN='
+ DSN + #0 + 'Driver=ODBCJT32.DLL'#0 + 'DBQ=' + Database + ''#0 + 'DefaultDir=' +
ExtractFilePath(Database) + #0 + 'Description=' + Description + #0 + 'FIL=MSAccess'#0 + 'UID=Admin'#0)); end;
function RemoveDSN(const DSN: String): Boolean; begin Result :=
SQLConfigDataSource(0, ODBC_REMOVE_DSN, 'Microsoft Access Driver (*.mdb)', PChar(
'DSN=' + DSN + #0)); end;
function RepairDB(const Database: String): Boolean; begin Result :=
SQLConfigDataSource(0, ODBC_ADD_DSN, 'Microsoft Access Driver (*.mdb)', PChar(
'REPAIR_DB=' + Database + #0 + 'UID=Admin'#0 + 'PWD=PWSWAN'#0)); end;
function CompactDB(const Database1, Database2: String): Boolean; begin Result :=
SQLConfigDataSource(0, ODBC_ADD_DSN, 'Microsoft Access Driver (*.mdb)', PChar(
'COMPACT_DB=' + Database1 + ' ' + Database2 + ' General'#0 + 'UID=Admin'#0 +
'PWD='#0)); end;
end.
Asi, si quieres 'cargar' una base de datos, tansolo tendras que borrar y recrear el alias. Te recomiendo, de todas maneras, que pases a ADO o a SQL, pues estas cosas se simplifican mucho. Saludos.