begin
  with ttable.create(self) do beign
   databasename:='c:\temp';
   tablename:='test.mdb';
   tabletype:=ttdefault;
   with fields do begin
    add('name',ftstring,25,true);
    add('age',ftinteger,0,true);
     end;
  createtable;
end;
end;

解决方案 »

  1.   

    这样建的不是MDB格式
    一、通过OLE方式创建
        相信各位都用通过OLE方式访问Word、Excel文件的经历,具体我不说太多,直接把具体代码写出来就完了
        在引用部分加入:
        uses ComObj;
        实现部分:
        procedure TFormOffice.BitBtn1Click(Sender: TObject);
        var
          CreateAccess:OleVariant;
        begin
          CreateAccess:=CreateOleObject('ADOX.Catalog');
          CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Aceco.mdb');
        end;
      

  2.   

    说明:
          1、在C:\下创建Aceco.mdb;
          2、是Access2000格式,用Access97打不开;
          3、系统需安装MDAC,这是好消息,客户不需安装Access也可以二、通过DBEngine创建
        这才是关键中的关键,是我一定要写出来的原因!
        各位是否还记得安装Delphi的时候,如果你选择自定义安装(我一般用Delphi写控件,所以当然是越小越好),会有很多安装选项,让你选择Access97或Access2000,还有MDAC等,问题就在这里!Delphi5.0中早就封装了现成的类,只是大家都没有注意而已它位于:
        $Delphi5\Imports
        目录下!
        其中有DAO97.DCU文件,它是通过DAO350.DLL来完成的,其中的定义部分和DAO350.DLL如出一辙!OK,到现在,所有的一切都明白了(可惜我花了一天时间!)。那么具体实现起来就太方便了,具体过程如下:
        在引用部分加入:
        uses DAO97;
        实现部分:
        procedure TFormOffice.BitBtn4Click(Sender: TObject);
        var
          Engine:DBEngine;
        begin
          Engine:=CoDBEngine.Create;
          Engine.CreateDatabase('c:\NewAccess.mdb',';LANGID=0x0804;CP=936;COUNTRY=0;',dbEncrypt);
        end;    说明:
            1、在C:\下创建NewAccess.mdb;
            2、语言国家是简体中文;
            3、压缩整理数据库用Engine.CompactDatabase('c:\invoice.mdb','c:\God.mdb','',0,'');就是将c:\invoice.mdb压缩整理成c:\God.mdb,剩下的只是将c:\invoice.mdb删除(DeleteFile('c:\invoice.mdb');),然后将c:\God.mdb重新命名(RenameFile('c:\God.mdb','c:\invoice.mdb');)即可。
      

  3.   

    参考procedure TMainForm.N8Click(Sender: TObject);
    var DataBaseName,
        ConnectStr:ansiString;
        tdeform:TTdeForm;
        passwordform:tpasswordform;
        i:integer;
        flag,flag1,flag2,flag4,flag6,flag7,flag8,flag9,flag10:boolean;
        RationDataBaseName : AnsiString;
    begin
      flag:=false;
      listbox1.Items.Clear;
      OpenDialog1.Title:='打开工程项目';
      OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName) + '新建项目';
      if OpenDialog1.Execute then
      begin
        //设置连接字符串
        DataBaseName:=OpenDialog1.FileName;
        ConnectStr:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataBaseName+';';
        ProjectDatamodule.ProjectConnection.Connected:=false;
        ProjectDatamodule.ProjectConnection.ConnectionString:='';
        ProjectDatamodule.ProjectConnection.ConnectionString:=ConnectStr+'Persist Security Info=true';
        ProjectDatamodule.ProjectConnection.Connected:=true;
        projectdatamodule.Projectconnection.GetTableNames(listbox1.Items,false);

    procedure TProjectDataModule.CreatesavedataTable;   //创建全局变量存储表
    begin
       with CreateTablequery do
        begin
          close;
          sql.Clear ;
          sql.Add('Create Table datasave(bchangede bit,bchangeyss bit,bchangegcdj bit,bchangecldj bit,bchangeclcj bit,bchangeqf bit,clcjhj numeric(8,3))');
          execsql;
        end;
    end;procedure TProjectDataModule.CreateGcdj_lsTable;   //创建临时)
    begin
       with CreateTablequery do
        begin
          close;
          sql.Clear ;
          sql.Add('Create Table gcdj_ls(id int,xh char(4) null,demc char(50) null,debh char(50) null,dedw char(10) null,glmc char(20) null,dw char(4) null,sl char(4) null,dj char(10) null,fj char(10) null)');
          execsql;
        end;
    end;
    procedure TProjectDataModule.CreatezcmTable;   //创建
    begin
       with CreateTablequery do
        begin
        CreateTableQuery.Sql.Clear;
        CreateTableQuery.Sql.Text:='CREATE TABLE T_gcgl (zcm char(30))';
        CreateTableQuery.execsql;
        end;
    end;
      

  4.   

    snjun(@军军@) 是对的
    用的是jro也就是原来的DAO