Access中有两个表a(a1,a2,name)和b(b1,b2,name),字在型都是整型,用ADOQuery查询如下:
var
  m:integer;
   
with ADOQuery1 do
    begin
      close;
      sql.Clear;
      sql.Add('select a.a1,a.a2,a.name,b.b1.b.b2‘);
      sql.Add('from b inner join a on b.name=b.name where a.a1=:a1');
      parameters.ParamByName('a1').Value:=strtoint(edit1.text);
      open;
    end;ADOQuery1.First;
m:=ADOQuery1.fieldByName('a1').asinteger;
上面程序运行时老是提示:
ADOQuery1:   Field   'access '   not   found.请各位高手指点一下,非常感谢!
毕业在即,设计做不完就毕业不了了,请高手帮帮忙,不胜感激!

解决方案 »

  1.   

    试一下ADOQuery1.Fields[0].FieldName
      

  2.   

    你的SQL语句执行有问题没,在Access里试下
      

  3.   

    楼主可以把你的SQL语句在ACCESS中运行一下,把那个参数直接写成你的实际参数,看看SQL语句是不是正确。
    ACCESS的连接与SQLSERVER还是有差别的。
      

  4.   


    “m:=ADOQuery1.fieldByName('a1').asinteger;”到这句时报错。取了别句也还是还是不对,还是运行到上面这句就报错。
      

  5.   

    错误提示的是:
    ADOQuery1: Field 'access ' not found.
    我看你的SQL语句里面就没有access这个字段啊,貌似你这个access字段后面还有个空格
      

  6.   


    我是在office Access中建立的表格,然后在Delphi中对表格进行查询的,表格当是没有access这个字段的。
      

  7.   


    问题解决了,发的这段代码应该是没错的,我自己的代码是出在别名的问题上。
    我在实施查询的时候取了别名,但在“m:=ADOQuery1.fieldByName('a1').asinteger;”中还是用的原字段名,所以就找不到字段了,应该是用别名的。谢谢各位了!
      

  8.   

    ADOQuery1字段列表(双击ado组件)如果跟SQL语句的字段不匹配也会报类似这样的错误