一个ACCESS数据库文件里有几个表,如A.mdb里有2个表a1和a2,如何获得A.mdb文件里的2个表名,并选择其中一个表名设置为ADOTABLE中的tablename.是动态设置的.

解决方案 »

  1.   

    //获得表名
     AdoConnection1.GetTableNames(Memo1.Lines);//动态
    ADOTABLE1.TableName :=memo1.Lines[1];  
      

  2.   

    获得ACCESS的表名
    用GetTableNames就可以了
    ------------------------
    procedure TForm1.Button1Click(Sender: TObject);var
      SL: TStrings;
      index: Integer;
    begin
      SL := TStringList.Create;
      try
        ADOConnection1.GetTableNames(SL, False);
        for index := 0 to (SL.Count - 1) do begin
          Table1.Insert;
          Table1.FieldByName('Name').AsString := SL[index];
          if ADOTable1.Active then ADOTable1.Close;
          ADOTable1.TableName := SL[index];
          ADOTable1.Open;
          Table1.FieldByName('Records').AsInteger := ADOTable1.RecordCount;      Table1.Post;
        end;
      finally
        SL.Free;
        ADOTable1.Close;
      end;
    end;
      

  3.   

    var
      s :TStrings;
    begin
      s := TStringList.Create;
      ADOConnection1.GetTableNames(s);  //获得表名
      ShowMessage(s.CommaText);
    end;
    得到表名后直接赋值,如:
    ADOTable1.TableName := s.Strings[0];
      

  4.   

    补充说明一下,以上只是ADO的,
    简单点可以这样
    var bl: TStringList;
    begin
       bl:=TStringList.Create;
       ADOConnection1.GetTableNames(bl);
       Memo1.Text:=bl.GetText;
    end;
    如果是BDE,可如下:
    begin
     session.GetTableNames(DatabaseName,'',true,false,memo1.lines););
    end选择其中一个表名设置为ADOTABLE中的tablename.是动态设置的.
    -------------------------------------------------------
    既然都选择了表的名字
    那你在添加到Memo或者list的时候可以通过简单的if语句来判断并设置table