delphi连接access数据库
使用MSDASQL.1【...ODBC driver】方式连接是程序运行一切正常。
当改为Microsoft.Jet.OLEDB.4.0【...Jet 4.0 OLE DB】方式时出现‘from语句语法错误’,不知何原因。
请高手们指点,谢谢!

解决方案 »

  1.   

    代码如下:
    常用到函数封装:
    procedure open1AdoQuery(ADOqry1: TADOquery; fd1, tbl: string);
    var s: string;
    begin
      s := 'select ' + fd1 + ' from ' + tbl + ' group by ' + fd1 + ' order by ' + fd1;
      with ADOqry1 do
      begin
        close;
        SQL.clear;
        SQL.add(s);
        open;
      end;
    end;//**********************************************************************
    //通用ADO查询,根据用户输入SQL检索数据
    //参数说明:adoqry1—TADOQuery组件,sqltxt-SQL语句
    //**********************************************************************procedure openAdoQuery(ADOqry1: TADOquery; sqltxt: string);
    begin
      with ADOqry1 do
      begin
        close;
        SQL.clear;
        SQL.add(sqltxt);
        open;
      end;
    end;//**********************************************************************
    //通用ADO执行查询,根据用户输入SQL检索数据
    //参数说明:adoqry1—TADOQuery组件,sqltxt-EXECSQL语句
    //**********************************************************************procedure ExecAdoQuery(ADOqry1: TADOquery; sqltxt: string);
    begin
      with ADOqry1 do
      begin
        close;
        SQL.clear;
        SQL.add(sqltxt);
        EXECSQL;
      end;
    end;
    //**********************************************************************
    //下面是向combobox添加数据库内容列表的通用过程
    //参数说明:ADOqry1—TADOQUERY组件,
    //fd1,tbl—要添加的字段名称,数据表名称;Combox:要添加的combobox组件
    //**********************************************************************procedure addcombox(ADOqry1: TADOQUERY; fd1, tbl: string; Combox: Tcombobox);
    var
      i, j: integer;
    begin
      combox.Clear;
      open1AdoQuery(ADOqry1, fd1, tbl);
      j := ADOqry1.RecordCount;
      if j > 0 then
      begin
        for i := 1 to j do
        begin
          Combox.items.add(ADOqry1.FieldValues[fd1]);
          ADOqry1.Next;
        end;
      end;end;
    登录界面:
    procedure TLoginForm.FormShow(Sender: TObject);begin
     addcombox(DM.ADOQuery1, 'username', 'user',combobox1);
     comboBox1.SetFocus;
     comboBox1.ItemIndex:=0;end;