Delphi程序中怎样创建一个Access数据库,以及数据表,然后往里面写数据??能否给个例子?

解决方案 »

  1.   

    Const
      SConnectionString       = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
                                    +'Jet OLEDB:Database Password=%s;';
    function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
    //建立Access文件,如果文件存在则失败
    var
      STempFileName:string;
      vCatalog:OleVariant;
    begin
      STempFileName:='c:\123.mdb';
      try
        vCatalog:=CreateOleObject('ADOX.Catalog');
        vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
        result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
        DeleteFile(STempFileName);
      except
        result:=false;
      end;
    end;以下SQL语句在ACCESS XP的查询中测试通过
    建表:
        Create Table Tab1 (
            ID Counter,
            Name string,
            Age integer,
            [Date] DateTime);
      

  2.   

    现在数据库是建起来了,但是不好意思,我还是不知道该怎么建表,或者说不懂该怎么执行上面说的sql语句。能不能给出详细点的代码?
      

  3.   

    //创建access数据库(d:\dd.mdb)
    uses
      comobj
    const
      CCreateMDB='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';
    procedure TForm1.Button1Click(Sender: TObject);
    var
      cat:Variant;
      fname:string;
    begin
      fname:='d:\dd.mdb';
      cat:=CreateOleObject('ADOX.Catalog');
      cat.Create(Format(CCreateMDB,[fname]));
      cat:=Unassigned;
    end;
    //建表
    //用adoquery动态创建access表举例
     sqlstring :=  'create table cc '+
                      '(tbid  integer,' +
                      ' tbindex  integer,'+
                      ' tbname  varchar(100),'+
                      ' tbpreid  integer,' +
                      ' rowser     integer ,'+
                      ' cols     integer ,'+
                      ' cellsta  image,'+
                      ' appinfo  memo,'+
                      ' tbre  varchar(250),'+
                      ' primary key (tbid))' ;
        adoquery1.SQL.Clear ;
        adoquery1.SQL.Add(sqlstring);
        try
           adoquery1.ExecSQL;
        except
            showmessage( 'create failer');
        end;
      

  4.   

    adoquery1如何与前面创建的dd.mdb数据库关联?
      

  5.   

    adoquery.connectionstring:='Provider=MSDataShape.1;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\dd.mdb;Persist Security Info=false'
      

  6.   

    adoquery应该如何声明,我是把它声明为TADOQuery,然后我一运行上面的代码就出错:Access Violation at address ....
      

  7.   

    用ADOX可以的啦,具体代码我不记的了,可以上网查查。