:)
这个问题我来帮你吧
一个exe文件,一个dll文件在dll 的窗体里不要放database,而是在public里声明一个database;
在exe文件里放好database,设置好以下是源代码dll文件导出函数为showform;unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, DBTables;type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
  private
    { Private declarations }
  public
    database1:tdatabase;
    { Public declarations }
  end;
  procedure showform(applicationname:tapplication;databasename:tdatabase);stdcall;
var
  Form1: TForm1;
  dllapplication:tapplication;
implementation{$R *.dfm}
   procedure showform(applicationname:tapplication;databasename:tdatabase);stdcall;
   begin
     application:=applicationname;
     application.CreateForm(tform1,form1);
     form1.Database1:=databasename;
     form1.Table1.DatabaseName:=form1.database1.DatabaseName;
     form1.table1.Open;
     form1.ShowModal;
     form1.Free;   end;
initialization
  dllapplication:=application;
finalization
  dllapplication:=application;
end.
exe文件
unit Unit2;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables;type
  TForm2 = class(TForm)
    Database1: TDatabase;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  procedure showform(applicationname:tapplication;database:tdatabase);stdcall;external 'dllfile.dll' name 'showform';
var
  Form2: TForm2;
  dllapplication:tapplication;
implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
begin
  showform(application,database1);
end;end.