请问:
怎么判断一个access数据库中的表是否存在?
有没有一个专门的属性呢?

解决方案 »

  1.   

    var
      SL: TStrings;
      index: Integer;
      sqltxt : string;
    begin
        SL := TStringList.Create;
        ADOCONN.GetTableNames(SL,FALSE);
        SL.Free;
    end;//adoconn连接到access数据库,sl中保存数据库中数据表的名称
      

  2.   

    没有专门的属性,楼上的方法已法很好了,可以把数据库中所有的表列出来,如果你要检查是否存在,你可以这样:(用异常处理)
    with adoquery do
    begin
      sql.clear();
      sql.add('SELECT * FROM tablename');  //tablename是你要检查的表名
      try
        open;
      except
        Exception.Raise(tableName+'不存在');
        //在这里你可以把这个表再重新建立一次
        Abort;
      end;
    end;
      

  3.   

    同一楼:
    procedure TfrmSec.btnAddClick(Sender: TObject);
    var
      tName: TStrings;
    begin
      tName := TStringList.Create;
      acSec.GetTableNames(tName, false);
      if tName.IndexOf('staff') >= 0 then 
        ShowMessage('表staff已存在');
      tName.Free;
      ...
    end;