You may find that some other recordset or object is referenced more often, or that there are just too few references to the "With" object in its block to justify the "With ... End With" block. Great for eliminating the FeatureEnvy smell that "With" can paper over. Languages: * VbClassic * Applies to any language supporting the "with" shorthand. Such as... ** PascalLanguage Related Refactorings: * RefactorIntroduceWith - to reintroduce "with" block, possibly for a different record. ---- In VbClassic: from... With rsObject .Open ... If .R''''''ecordCount = 0 Then .A''''''ddNew !PK = value End If !Attr = value End With to... rsObject.Open ... If rsObject.R''''''ecordCount = 0 Then rsObject.A''''''ddNew rsObject!PK = value End If rsObject!Attr = value PascalLanguage: from... with emp do begin name := "Joe"; status := "X"; with bday do begin month := 6; day := 27; year := 1958; end end to... emp.name := "Joe"; emp.status := "X"; emp.bday.month := 6; emp.bday.day := 27; emp.bday.year := 1958; ---- '''However''' With rsObject .Open ... If .R''''''ecordCount = 0 Then .A''''''ddNew !PK = value End If !Attr = value End With is immaculately clear, and prevents a lot of needless typing. This particular example is one in which I '''would''' use a WITH construct if my language provided it. Absolutely. ---- ContributorsList: JeffGrigg, ''(name of Pascal example author missing)'' ---- [CategoryRefactoring/RefactoringLanguage]