Respuesta Alternativa - 639 Antes de probar esto con datos reales (de las empresas que manejas), hazlo la prueba con otro programa mas pequeños o con datos de prueba, para asi cuando estes seguro de que realmente funciona pues lo aplicas a tu "aplicación". Directorios Empresa_1\BaseDatosEmpresa1\ ---> AliasEmpresa1 Empresa_2\BaseDatosEmpresa2\ ---> AliasEmpresa2 Empresa_3\BaseDatosEmpresa3\ ---> AliasEmpresa3 .... Si el numero de empresas lo conoces, pues create un ALIAS (DataBaseDesktop), para cada una de ellas y luego podrias utilizar el procedimiento siguiente para poder crear tablas en tiempo de ejecucion. // Aviso : Nombretabla reemplazara cualquier tabla ya creada con el mismo nombre procedure Crear_Tabla(NombreDataBaseb, NombreTabla : string); begin if (Tabla_Cualquiera.Active) then Tabla_Cualquiera.Active := False; with Tabla_Cualquiera do begin DatabaseName := NombreDataBase; TableName := NombreTabla; TableType := ttParadox; // o cambiamos el tipo al tipo de tabla que deseamos FieldDefs.Clear; FieldDefs.Add('Campo1', ftString, 50, false); FieldDefs.Add('Campo2', ftString, 8, false); FieldDefs.Add('Campo3', ftInteger, 0, false); CreateTable; end; // with Tabla_Cualquiera do end; // Crear_Tabla // Para llamar solo // Crear_Tabla('AliasEmpresa2', 'Tabla1Empresa1.DB'); Los tipos de datos para crear y una explicacion de FieldDefs.Add, lo puedes encontrar en la ayuda de Delphi. O si solo deseas cambiar (o activar alguna otra Base de Datos Diferente), el ALIAS para poder utilizar la Base de Datos de Otra empresa, pues solo tienes que reasignar la propiedad DATABASENAME, en tu componente Table (claro esto tambien en tiempo de ejecucion). with Tabla_Cualquiera do begin DATABASENAME:= 'AliasEmpresa3'; // Nuevo Alias a Activar TABLENAME := 'Tabla3Empresa3';// Cambias esto, si el nombre de tu tabla es diferente y // utilizas un solo componente Table por Empresa // aunque no creo pues lo ideal, seria utilizar un // componente Table por cada Tabla a utilizar ACTIVE := True; // Esto es para ctivar tu tabla despues de reasignar // siempre y cuando no este activado end; y utilizas cualquiera de tus tablas en tu ALIAS. Ahora si deseas crear un ALIAS en tiempo de ejecucion, esto es porque seguramente no conoces el numero de empresas que manejaras, podrias utilizar lo siguiente : procedure Crear_Alias(NuevoAlias : String); begin with DataBase1 do // DataBase1 es un componente DataBase begin DatabaseName:= NuevoAlias; DriverName:= 'STANDARD'; Params.Clear; Params.Add('PATH=C:\Empresa_4\BaseDatosEmpresa4\'); end; // with DataBase1 do with Tabla_Cualquiera do begin DatabaseName := NuevoAlias; TableName := 'Tabla4Empresa4.DB'; Active := True; // Esto es para activar tu tabla despues de reasignar end; // with Tabla_Cualquiera do // Ya se puede utilizar los datos creados end; // Crear_Alias Remberto Gonzalez C. rembert@mara.scr.entelnet.bo