我用的ADO连接,放了一个ADOConnection,怎么和Access使用相对路径连接?然后我用了个ADOquery来对表进行操作。
我用了下面的方法:
在Fromcreate的时候:
frmMain.adocon.connect;
frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';frmMain.ADOQu.Close;
  frmMain.ADOQu.SQL.Clear;
  str := 'select * from work ';
  frmMain.ADOQu.SQL.Add(str);
  frmMain.ADOQu.Open;结果总是说我From子句错误。我不知道怎么回事。请高人帮帮忙

解决方案 »

  1.   

    单击Adoconnection的connectionString属性旁边的按钮,在哪个对话框里配好连接。然后你就可以看人家的连接串是怎样配的了。
      

  2.   


    frmMain.adocon.connect;放到
    frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';的后面,先设置连接字符串,再连接.
      

  3.   

    Const
      str='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False';
    //以下这段代码不要在窗体的create事件中。
    VAR
      strFilePath:String;
    begin
        strFilePath:=GetCurrentDir()+'Angel.mdb';
        frmMain.ADOCon.Close;
        frmMain.ADOCon.ConnectionString:=Format(str,[strFilePath]);
        frmMain.ADOCon.Open;
    end;
      

  4.   

    好像只要设置了连接字符串后,ACTIVE := True 就行了吧
      

  5.   

    就应该这样
    frmMain.adocon.connected=false;
    frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';
    frmMain.adocon.connected=true;
    再把ADOQu与adocon关联就可以了
    应该没有问题了
      

  6.   

    怎么还是不行。用了其他人的还是From子句错误,用了linzhengqun(风)的说ODBC驱动程序管理器未发现数据名称并且未指定默认驱动程序
      

  7.   

    连接了的,现在用你写的还是说From子句错误。我好郁闷啊,请大哥帮忙解决
      

  8.   

    如果ADOConnection测试连接没问题的话检查你的字符串吧比如说是不是*用了全角之类的
      

  9.   

    测试连接没有问题的。
    字符串也检查了,没有用全角。我也用ADOTABLE连接表来对表进行操作也不行,都说FROM子句错误
      

  10.   

    Adoconnection的connectionString属性,在对话框里配好连接。然后你看人家的连接串是怎样配的
      

  11.   

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Angel\Angel.mdb;Mode=ReadWrite;Persist Security Info=False他是这样配置的。。
      

  12.   

    在ADOQuery的Active设置为True时也说From子句错误
      

  13.   

    frmMain.adocon.connect:=false;
    frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';
    try 
     frmMain.adocon.connect:=true;
    except
      on E: Exception do
         showMessage(E.Message);
    end;
    frmMain.ADOQu.Close;
    frmMain.ADOQu.SQL.Clear;
    str := 'select * from work';
    frmMain.ADOQu.SQL.Add(str);
    frmMain.ADOQu.Open;在程序设计过程中将ADOQu的Connection属性指向adocon!
      

  14.   

    with frmMain.ADOQu do 
    begin
      connect;   //这行去掉,没用的。是从你的frmMain.ADOQu.connect这句抄过来的
      ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;'
                             +'Data Source='+ExtractFileName(Paramstr(0)+'\Angel.mdb')  ;
      Connected:=True;
      Close;        //这行好像也可以省略掉
      Sql.text:='select * from work';
      Open;
    end;//不会有错,你拷贝过去试试吧
      

  15.   

    function ADOConnectAccess(const Adocon: TADOConnection; const DbName, Password: string): Boolean;
    {* 用Ado连接Access数据库函数}
    begin
      with Adocon do
      begin
        Close;
        LoginPrompt := False; //若数据库不存在时,进行判断
        ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
          'Data Source=' + DbName + ';' +
          'Mode=ReadWrite;' +
          'Persist Security Info=False;' +
          'Jet OLEDB:Database Password=' + Password + ';' +
          'Jet OLEDB:Compact Without Replica Repair=True';
        try
          KeepConnection := True;
          Screen.Cursor := crHourGlass;
          Connected := True;
          Open;
          Screen.Cursor := crDefault;
          ADOConnectAccess := True;
        except
          ADOConnectAccess := False;
        end;
      end;
    end;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
    工程中正在使用的FUNCTION.保证COPY可用
      

  16.   

    不是已经提示你了吗?是“From子句错误”,不是连接字符错。
      

  17.   

    我没有用frmMain.adocon.connect;
    其他完全一样是可以的。