单看代码没什么错误,请把[]填上试试,loCaseInsensitive 或loPartialKey

解决方案 »

  1.   

    with ADOTable1 do  Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);
      

  2.   

    我把locate的含义说一下
    function Locate(const KeyFields:string;const Keyvalues:Variant;Options:TlocateOptions):
    Boolean;virtual;
    从Locate的申明中可以看出:这种数据收索方式继承于:TlocateOPtions,而
    TlocateOPtions有loCaseInsentive与loPartialKey两种选择,前者代表搜索
    时字母不分大小写,后者代表搜索时只要部分数据符合,此条数据就算符合,所以
    一定要加上参数!
      

  3.   

    [loCaseInsensitive ,loPartialKey]
      

  4.   

    能把你用到的组件说一下吗?比如:T_jlzhh1   我试过了,没问题的。
      

  5.   

    我用到的:
    dataset1.Locate('bdsmc;sbzl_mc;yxbh',VarArrayOf(          [combobox1.text,combobox2.text,combobox3.text]),[loCaseInsensitive]);
    说明:bdsmc、sbzl_mc、yxbh为数据集中的字段名;combobox1.text等为各字段对应值,也可以使变量。若为具体的数值,如:bdsmc字段对应“某某站”,该处要引号'',变量或我的语句中的那样就不用引号!
    你的程序中'ComNum1;ComNum2;ConRate;ProNumb'是字段吗?若是正确。'cnum1','cnum2','crate','pnumb'是变量还是数据,是变量应取掉引号!(我想应该是这里的错!!!)数组不用定义;loPartialKey也不要;若编译时出错请加入相应单元文件。