Gustav Brock
gustav at cactus.dk
Fri Sep 24 05:14:50 CDT 2004
Hi Vlad I use copy-and-paste ... In 2000 I brought up the idea of "terminating" any object before exiting a function. Shamil suggested this solution: <quote> I think you can write the following sub which slightly extends Gustav's idea: Sub TerminateExt(ParamArray aobj() As Variant) On Error GoTo TerminateExt_Err Dim lngIdx As Long If UBound(aobj) > -1 Then For lngIdx = 0 To UBound(aobj) aobj(lngIdx).Close Set aobj(lngIdx) = Nothing Next lngIdx End If TerminateExt_Exit: Exit Sub TerminateExt_Err: Select Case Err Case 91 ' Object obj doesn't exist. Case 438 ' Object obj doesn't support method close. Case 3420 ' Object obj has already been closed. Case Else ' Unknown error. MsgBox "Error " & Err & ". " & Err.Description, _ vbExclamation, _ "Error terminating object (ParamarrayIndex = " & lngIdx & ", " & _ "TypeName = " & TypeName(aobj(lngIdx)) & ")" End Select Resume Next End Sub and use it in your case this way: TerminateExt MyObject2, MyObject1, rst,db HTHAWOK, Shamil --- But I must admit I've never used it ... /gustav > Does anyone have any code or such that handles the following elegantly: > Dim dbs as DAO.Database > Dim rst as DAO.Recordset > Set dbs etc etc > Do whatever here > dbs.close > dbs = nothing etc etc > I am tired of having do the above to open database connections and > recordsets in the above manner in every Sub or Function. Surely there's > a more elegant method that someone has come up with here you just parse > the SQL Statement through or something... > Any suggestions or links will be greatly appreciated... > Regards > Vlad