LOCAL oObj, lnSessions, ix FOR EACH m.oObj IN application.Objects IF pemstatus(m.oObj,'baseclass',5) AND LOWER(m.oObj.Baseclass) = 'form' IF PEMSTATUS(m.oObj,"Dataenvironment",5) m.oObj.Dataenvironment.CloseTables endif ENDIF m.oObj = .null. ENDFOR lnSessions = ASESSIONS(arrSession) FOR m.ix=1 TO m.lnSessions SET DATASESSION TO arrSession[m.ix] CLOSE DATABASES all endfor SET DATASESSION TO thisform.DataSessionId CLOSE DATABASES allAccording to documentation 'Close data all' should do it in one step but probably I interpret what writes there wrong.