FUNCTION NewID(tcAlias) LOCAL lcAlias, ; lnID, ; lcOldReprocess, ; lnOldArea, ; llUsed lnOldArea = SELECT() IF PCOUNT() < 1 lcAlias = UPPER(ALIAS()) ELSE lcAlias = UPPER(tcAlias) ENDIF lnID = 0 lcOldReprocess = SET('REPROCESS') *-- Lock until user presses Esc SET REPROCESS TO AUTOMATIC IF !USED("SETUP") llUsed = .F. USE reliez!setup IN 0 ELSE llUsed = .T. ENDIF SELECT setup SET ORDER TO TableName SEEK lcAlias IF FOUND() IF RLOCK() lnID = setup.value + 1 REPLACE setup.value WITH lnID UNLOCK ENDIF ENDIF IF !llUsed USE ENDIF SELECT (lnOldArea) SET REPROCESS TO lcOldReprocess RETURN lnID ENDFUNCKind Regards,