我刚刚也碰到这个问题,我把两者分开来对待。
使用Access时先用AdoConnection来取得表名,然后判断是否要创建表。
使用Sql可以使用语句
IF NOT EXISTS (SELECT name 
   FROM   sysobjects 
   WHERE  name = N'RationItem' 
   AND    type = 'U')
    CREATE TABLE RationItem

解决方案 »

  1.   

     xxmmmx(踢踏) 说的对!即,在执行你的语句之前,先执行一次下面的SQL语句!
     IF NOT EXISTS (SELECT name 
      FROM  sysobjects 
      WHERE  name = N'RationItem' 
      AND    type = 'U')
        CREATE TABLE RationItem
    然后,这个表就一定存在了!过年了,即使得不到我所需的答案, 大家开心了也不错.
    呵呵.
    分算什么东西.快乐才是最重要的!还有一个270分的问题,其实不是技术问题,只是一个常识问题, 此问题每一个小时增加10分,每个U..P者均有分!
    http://www.csdn.net/Expert/topic/497/497690.shtm
      

  2.   

    谢谢大家的回答,不过在ACCESS中AdoConnection如何取得表名?
      

  3.   

    AdoConnection1.openschema(...)
    OpenSchema(const Schema: TSchemaInfo; const Restrictions: OleVariant; 
    const SchemaID: OleVariant; DataSet: TADODataSet);
      

  4.   

    在ACCESS中AdoConnection如何取得表名?且此表未在程序中打开,即没有DATASET。 
      

  5.   

    ADOConnection1.GetTableNames(ListBox1.Items,false);
      

  6.   

    首先创建一个aodconnection实例
    var
    adoconnection:Tadoconnection;
    strtable:Tstringlist;
    i:integer;
    Bfind:boolean;
    begin
    strbable:=Tstringlist.create;
    adoconnection:=Tadoconnection.create(self);
    adoconnection.gettablenames(strtable,false);
    bfind:=false;
    for i:=0 to strtable.items.count do
    beign
     if strtable.strings[i]=表名 then
       bfind:=true;
    end;
    if bfind then
     ....
      

  7.   

    此程序错在:《for i:=0 to strtable.items.count do》中,提示无ITEMS属性。
      

  8.   

    var
    adoconnection:Tadoconnection;
    strtable:Tstringlist;
    i:integer;
    Bfind:boolean;
    begin
    strbable:=Tstringlist.create;
    adoconnection:=Tadoconnection.create(self);
    adoconnection.gettablenames(strtable,false);
    bfind:=false;
    if strtable.find(表名,i) then
      shwomessage('找到')
    else
      showmessage('没找到');
    adoconnection.free;//或者
    for i:=0 to strtable.items.count do  改为for i:=0 to strtable.items.count-1 do
    beign
    if strtable.strings[i]=表名 then
      bfind:=true;
    end;
    if bfind then
    ....