[AccessD] access.exe process not terminating

Andy Lacey andy at minstersystems.co.uk
Mon May 1 15:29:21 CDT 2006


Daniel
As Doris says you need to set your objects to Nothing to resolve this, a
long outstanding Access "feature". It's probably recLang that's your
problem. Try:

    recLang.Close: Set recLang=Nothing
    db.Close: Set db = Nothing

And if you ever do anything with the other 2 objects set them to nothing
too.

-- Andy Lacey
http://www.minstersystems.co.uk 

> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com 
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of 
> Daniel Hurtubise
> Sent: 01 May 2006 21:03
> To: accessd at databaseadvisors.com
> Subject: [AccessD] access.exe process not terminating
> 
> 
> Hello everyone:
> 
> This is my first post.  Sorry It might be a bit rough......
> 
> Objective:  To have a screen change it labels depending on language 
> selected.
> 
> Situation:  Labels are all successfully changed and application works 
> perfectly. HOWEVER:
>                 when leaving the application MSACCESS.EXE 
> does not close 
> out in
>                 the task manager.  This only happens if the 
> translation 
> module is called.
> 
> The code is inoffensive but I've been at it now for two days 
> !!!!  The 
> ghost being produced
> leaves me believing that something is not closed properly. Any ideas?
> 
> Form A: Calls a function which sits within a  Module
> ' #########################################################
> ' Form Open Event
> ' #########################################################
> Private Sub Form_Open(Cancel As Integer)
>    '
>    ' Set Language to current form
>    '
>    Call changeFormLanguage(glang, Me)
> End Sub
> 
> 
> Module Code:
> 
> ' #########################################################
> ' This section will cycle every form for a language change
> ' #########################################################
> Public Function changeFormLanguage(strLang As String, 
> strFormName As Form)
> 
>     Dim db As Database
>     Dim recLang As Recordset
>     Dim objAo As AccessObject
>     Dim objCP As Object
>     Dim FrmF            As Form             ' current form
>     Dim ctlc            As Control          ' current control
>     Dim strControlName  As String           ' name of control
>     Dim intControlType  As Integer          ' control type
>     Dim strLangField    As String
> 
>     'open the database and language recordset
>     Set db = CurrentDb()
>     Set recLang = db.OpenRecordset(wcs_LANGUAGE_TABLE)
>     recLang.Index = "PrimaryKey"
> 
>     Set FrmF = strFormName
> 
>     strLangField = IIf(strLang = "English", "Lbl_DescEn", 
> "Lbl_DescFr")
>     With recLang
>        .Seek "=", strFormName, strFormName
>       
>        'add or update the form in the language table
>        If .NoMatch Or IsNull(.Fields(strLangField)) Then
>          FrmF.Caption = " "
>        Else
>          FrmF.Caption = .Fields(strLangField)
>        End If
>                 
>        'now loop through the controls
>        For Each ctlc In FrmF.Controls
>        'we are interested in the controls with captions
>           intControlType = ctlc.ControlType
>           If ControlHasCaption(intControlType) = True Then
>           'find the control in the language table
>              strControlName = ctlc.Name
>              .Seek "=", strFormName.Name, strControlName
>                          
>              'add or update the control in the language table
>              If .NoMatch Or IsNull(.Fields(strLangField)) Then
>                 ctlc.Caption = ""
>              Else
>                 ctlc.Caption = .Fields(strLangField)
>              End If
>           End If
>        Next
>     End With
> 
>     'close up
>     recLang.Close
>     db.Close
> End Function
> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com 
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 




More information about the AccessD mailing list