IF USED('UACQuery') *!* SELECT UACQuery *!* USE USE IN UACQuery && does not change current work area ENDIF *-- Close the FILEUAC table before CREATEing it: IF USED(THISFORM.FILEUAC) *!* SELECT (THISFORM.FILEUAC) *!* USE USE IN (THISFORM.FILEUAC) ENDIF *-- Create a variable to hold the temp file name so you're less vulnerable *-- to changes in SYS(2023). More readable too: LOCAL lcTempFileName lcTempFileName = AddBS(Sys(2023))+THISFORM.FILEUAC SELECT 0 *-- Don't use DESC as a column name, it's a reserved word: *!* CREATE TABLE (AddBS(Sys(2023))+THISFORM.FILEUAC) FREE ( UAC C(03), LOB C(03), CO C(03), ACTION C(10), DESC C(80) ) CREATE TABLE (lcTempFileName) FREE ( UAC C(03), LOB C(03), CO C(03), ACTION C(10), CDESC C(80) ) USE (lcTempFileName) IN 0 ALIAS UACQuery EXCLUSIVE SELECT UACQuery && <==== Fails here *-- Any reason you don't use a structural index? e.g. *!* INDEX ON UAC TAG UAC *!* SET ORDER TO UAC IN UACQuery INDEX ON UAC TO (lcTempFileName) SET INDEX TO (lcTempFileName)