Para quem também está a procura de um código assim consegui criar com o código abaixo, só que as minhas tabelas ficam todas em um datamodule, tem como ao se criar a tabela em tempo de execução, fazer com que ela e um datasource sejam inseridos no data module. var codigo : integer; nome : string; begin codigo := 0; codigo := module.tbfuncionarioCodigofuncionario.Value; tabela := ttable.create(application); try Tabela.DatabaseName := 'escola'; Tabela.TableName := 'ponto'+ inttostr(codigo) + '.DB'; nome := tabela.TableName; label27.Caption := nome; if FileExists('c:\dados\'+ nome)=false then begin Tabela.TableType := ttParadox; Tabela.FieldDefs.add('data', ftdate, 0, true); Tabela.FieldDefs.add('ent1', fttime, 0, false); Tabela.FieldDefs.add('sai1', fttime, 0, false); Tabela.FieldDefs.add('ent2', fttime, 0, false); Tabela.FieldDefs.add('sai2', fttime, 0, false); Tabela.CreateTable; Tabela.AddIndex('idata','data', [ixPrimary, ixUnique]); Tabela.addindex('pordata', 'data', [ixCaseInsensitive, ixdescending]); ShowMessage('A tabela foi criada com êxito!'); end else ShowMessage('Este funcionário já possui a tabela de ponto!'); finally //Tabela.Free; end; end;