* cmdAdd modified - warning rough code !!! not tested llDuplicate = .f. if this.parent.editmode * Assets entered in txtAsset and the other txtSub select recno() from (yourtable) ; where assets+sub == ; padr(thisform.txtAsset.value,fsize("assets",yourtable)," ")+; padr(thisform.txtSub.value,fsize("sub_asset",yourtable)," ") ; into array aCheck * if required use lower, upper etc if type("aCheck") = "N" for ix = 1 to alen(aCheck,1) if aCheck[ix,1] # recno(yourtable) && is it not the one we're editing ? llDuplicate = .t. && Duplicate catch exit endif endfor endif endif if llDuplicate this.parent.cmdEdit.click && Revert by clicking revert else dodefault() endifBasic idea is SQL doesn't select from buffers and wizard uses buffered tables (good:).