保存时判断直接在明细表上建唯一索引就可以了。 
输入时判断,先取当前输入的货品编码的值,然后用BOOKMARK记录当前记录的位置,然后LOCATE或循环找是否有其他编码相同的记录,最后用BOOKMARK回到当前记录。

解决方案 »

  1.   

    在DBGRID 的AFTERPOST加入下面代码:
       WITH ADOQUERY1 DO
       BEGIN
        SQL。CLOSE;
        SQL。CLEAR;
        SQL。ADD(‘SELECT 编号 FROM TABLE GROUP BY 编号 HAVING COUNT(编号)>1');
        open;
       while recordcount>1 then
       MessageBox(‘编号重复', '提示', MB_OK);    
        
       END;
      

  2.   

    在DBGRID 的AFTERPOST加入下面代码:
       WITH ADOQUERY1 DO
       BEGIN
        SQL。CLOSE;
        SQL。CLEAR;
        SQL。ADD(‘SELECT 编号 FROM TABLE GROUP BY 编号 HAVING COUNT(编号)>1');
        open;
       while recordcount>1 do
       MessageBox(‘编号重复', '提示', MB_OK);    
        
       END;
      

  3.   

    to songandlan(小松一夜听春雨) :
      新增与修改本无实大区别,事实上是在字段SetText时作处理,若修改则查找oldvalue,改为newvalue即可....