我在adoquery 新增一个字段,字段的类型是lookup 到别外一个表,主要属性如下:[FieldKind:=fklookup;fieldname:='规格';keyfields='物料编号';lookupkeyfield:='物料编号';lookupResultField:='规格';name:=timehouseField3;]
我在做filter时老是提示“ item cannot be found in the collection corresponding to the requested name or ordinal. ”错误??adoquery1.filtered:=false;
adoquery1.filter:='规格='+dxedit1.text;
adoquery1.filtered:=true;主问是那里有错误???????
谢谢!·!

解决方案 »

  1.   

    告诉你一个不好的清息:计算字段、Lookup字段不能用在Filter中
      

  2.   

    fieldname 改为英文还是不行啊????????
      

  3.   

    blueshu(绝对是菜鸟) ,掌嘴!可以用中文!
      

  4.   

    adoquery1.filter:='规格='+dxedit1.text;
    如规格1=001
    adoquery1.filter:='ge='''+dxedit1.text+'''';
    这里应把汉字转为码,也就是不要用lookup
    汉字让用户选,实际上用代码替换
      

  5.   

    这个问题,我遇到过;解决办法如下(绝对支持中文):adoquery1.filter:='规格='''+dxedit1.text+'';只不过是在你的这一行多加入两个空格(还有我的这个情况是在TTable实现的,不知道对adoquery是否适用)。
      

  6.   

    fyz21cn(风、大风!)讲的每错!
    应该是可以的!
      

  7.   

    adoquery1.filter:='规格='+''''+dxedit1.text+'''';
    这我让过不行啊?
      

  8.   

    错误的原因是"item cannot be found "并不是类型不对????????
      

  9.   

    源码如下:
    adoquery1.filtered:=false;
    adoquery1.filter:='规格='+''''+dxedit1.text+'''';
    adoquery1.filtered:=true;“规格”在Adoquery1的主要属性如下:
    [FieldKind:=fklookup;fieldname:='规格';keyfields='物料编号';lookupkeyfield:='物料编号';lookupResultField:='规格';name:=timehouseField3;]
      

  10.   

    adoquery1.filter:='规格='+dxedit1.text;
    如规格1=001
    adoquery1.filter:='ge='''+dxedit1.text+'''';
    这里应把汉字转为码,也就是不要用lookup
      

  11.   

    lookup字段不行的话,可以用其他方法啊
    用视图吧
      

  12.   

    不好意思!我这里是直接把规格保存到数据库!没有规格的从表[1.4mm就是1.4mm关没有做001=1.4mm];要是不用lookup!那我就要用视图才能在用记输入编号同时看现编号从表的相关字段!但是视图的一个不好就是输入完后要Active=false;Active=True;才能看到相关的信息;要是数据2000-3000条还好!要是再多就很慢!故我想用lookup 来解决!但是只要有用到lookup 的字段来做filter时就出错!!还请高手多多帮忙!!!!
      

  13.   

    在deiphi里面''代表一个'来表示字符形
      

  14.   

    用lookup吧
    注意:写Filter时 要用主表的连接字段,不能用从表的显示字段
    例如原来: 规格 = '大'
      可这样写: 物料编号 = 3只是把"规格"和"物料编号"调换一下,应该不难实现吧
      

  15.   

    不行啊??
    例如:
    物料编号=3  规格='大'  颜色=‘黑’
    物料编号=4  规格='小'  颜色='白'
    物料编号=5  规格='大'  颜色=‘绿’
    请问我现在要filter 规格='大'什么做??
    *.filter:='物料编号='+''''+物料编号+'''' 
    OR
    *.filter:='规格='+''''+'大'+''''