本人用Dialog来实现动态打开数据库文件,代码如下,但是这里面有一个问题,只能用Dialog打开一次,第二次肯定会出错。肯定是我的代码有不完善的地方。欢迎各位达人来讨论、修改!
    偶在此拜谢了!procedure TForm1.BitBtn1Click(Sender: TObject);
var
  access:string;//TableName
  accessdir:string;//DatabaseName
begin
  Form1.OpenDialog1.FileName:='*.db';
  if OpenDialog1.Execute then
    begin
       access:=ExtractFileName(OpenDialog1.FileName);
       accessdir:=ExtractFilePath(OpenDialog1.FileName);
       Table1.DatabaseName:=accessdir;
       Table1.TableName:=access;
       Table1.Active:=True;
    end;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  Application.Terminate;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
  Table1.Active:=False;
end;

解决方案 »

  1.   

    access:=ExtractFileName(OpenDialog1.FileName);
           accessdir:=ExtractFilePath(OpenDialog1.FileName);
           Table1.Active:=False;
           Table1.DatabaseName:=accessdir;
           Table1.TableName:=access;
           Table1.Active:=True;
      

  2.   

    var
      access:string;//TableName
      accessdir:string;//DatabaseName
    begin
      Form1.OpenDialog1.FileName:='*.db';
      if OpenDialog1.Execute then
        begin
           access:=ExtractFileName(OpenDialog1.FileName);
           accessdir:=ExtractFilePath(OpenDialog1.FileName);
           Table1.Active:=False; //<<<<<<<<<<<<<<<<<--------打开前先关闭
           Table1.DatabaseName:=accessdir;
           Table1.TableName:=access;
           Table1.Active:=True;
        end;
      

  3.   

    Table1.DatabaseName:=accessdir;是将路径赋值给DatabaseName Table1.DatabaseName:=accessdir+access
      

  4.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      access:string;//TableName
      accessdir:string;//DatabaseName
    begin
      Table1.Active := false;  //添加试试
      Form1.OpenDialog1.FileName:='*.db';
      if OpenDialog1.Execute then
        begin
           access:=ExtractFileName(OpenDialog1.FileName);
           accessdir:=ExtractFilePath(OpenDialog1.FileName);
           Table1.DatabaseName:=accessdir;
           Table1.TableName:=access;
           Table1.Active:=True;
        end;
    end;