当然删不掉了,
Table1.Fields.Remove(Table1.Fields[2]);//这fields代表显示给用户看的字段,并非表的字段
  Table1.Refresh ;
  Table2.Close;
  Table2.DatabaseName := 'd:\test';
  Table2.TableType := ttParadox;
  Table2.TableName := 'copy';  Table2.FieldDefs :=Table1.FieldDefs ; //应该重新定义fielddefs
  Table2.CreateTable ;
  Table2.Open;
这样就ok了
  

解决方案 »

  1.   

    难道要逐个取出Table1中的字段的类型,长度等信息,在Table2中重新建立么.我就是想省事才用FieldDefs这个属性的.
      

  2.   

    你可以测试下这个字段是否真正被删除了
    试一下Table2.FieldDefs.assign(Table1.FieldDefs)
    我没试过
      

  3.   

    to focus
    使用Assign与Table2.FieldDefs:=Table1.FieldDefs效果一样
      

  4.   

    你把地一张表的字段拷到地二张,然后去掉最后一个字段
    然后可用SQL语句插入,如:insert into table2 field1,field2,... select field1,field2,... from table1
    呵呵