我的思路是:首先用ADOConnection1.GetTableNames(Combobox1.Items,False)取得数据表名称,然后在ComboBox里面选择数据表并显示内容在DBGrid里面,用DBEdit显示DBGrid当前记录指定字段的内容,源码如下:procedure TForm1.ComboBox1Change(Sender: TObject);
var
  Tablename:string;
  sl:TStringList;
begin
  sl:=TStringList.Create;
  Tablename:= ComboBox1.Text;  
  ADOTable1.Close;
  ADOTable1.TableName:=Tablename;
  ADOTable1.Open;
  ADOConnection1.GetFieldNames(Tablename,sl);
  DBEdit1.DataField:=sl.Strings[0];   //绑定第一个字段
  DBEdit2.DataField:=sl.Strings[1];   //绑定第二个字段
  sl.Free;
end;    ComboBox选择第一次和第二次都没有问题,第三次的话就显示错误了,意思为DataField的字段还是第二次选择的那个数据表的字段,当前数据表没有这个字段,可是我把DBEdit1.DataField改为DBEdit1.Text,显示却完全正确。不知道是哪里出错,请哪位帮忙看看!