[AccessD] Removing a missing reference

MartyConnelly martyconnelly at shaw.ca
Tue Aug 8 14:25:28 CDT 2006


Grr, I am always mixing up Reference and References  collection
Could try disambiguating the code like this

  Dim refCurr As Access.Reference
    Dim intCount As Integer


    For intCount = Access.References.Count To 1 Step -1
      Set refCurr = Access.References(intCount)
      If Not refCurr.BuiltIn Then
        If refCurr.IsBroken Then
           'might want to check if it has a valid name otherwise skip
           'or use on error next
           ' debug.print refCurr.name

            Access.References.Remove refCurr
        End If
      End If
    Next



Rocky Smolin - Beach Access Software wrote:

>P.S.  This reference, when it's there, references a .exe.  Don't know if 
>that makes any difference.
>
>Rocky
>
>
>Gustav Brock wrote:
>  
>
>>Hi Rocky
>>
>>Further to Charlotte's comments, I faintly recall you have to move backwards in the References collection:
>>
>>Public Function ReferencesClean() As Boolean
>>
>>' Remove all missing references.
>>' Return True if no reference was removed.
>>'
>>' 2001-08-20. Cactus Data ApS, CPH.
>>
>>  Dim ref         As Reference
>>  Dim lngItem     As Long
>>  Dim booMissing  As Boolean
>>  
>>  With References
>>    For lngItem = .Count To 1 Step -1
>>      Set ref = .Item(lngItem)
>>      If ref.BuiltIn = True Then
>>        ' No need to check built in reference.
>>      ElseIf IsBroken97(ref) Then
>>        .Remove ref
>>        booMissing = True
>>      End If
>>    Next
>>  End With
>>  
>>  Set ref = Nothing
>>  
>>  ReferencesClean = Not booMissing
>>  
>>End Function
>>
>>Still, your code will be left non-compiled after this. A method to compile the code is described by Charlotte and me if you search the archives of July 2003 for:
>>"Broken References in Runtime AXP and A97"
>>
>>/gustav
>>
>>  
>>    
>>
>>>>>bchacc at san.rr.com 08-08-2006 19:46:07 >>>
>>>>>        
>>>>>          
>>>>>
>>Dear List:
>>
>>Still struggling with this references thing.  It seem the easiest thing 
>>to do would be to remove the missing reference in the Open event of the 
>>opening form in the event the app is loaded onto a machine which doesn't 
>>have the library.  However, all the code that I've seen to remove 
>>missing references fail.  Code like:
>>
>>Dim refCurr As Reference
>>    For Each refCurr In References
>>        If refCurr.IsBroken Then
>>            References.Remove refCurr
>>        End If
>>    Next
>>
>>Seems straightforward but when it comes to the missing reference it 
>>errors out on the .Remove line because it doesn't have a name.  So.  How 
>>do you remove a missing reference when the application the reference is 
>>referring to doesn't exist?
>>
>>MTIA
>>
>>Rocky
>>
>>  
>>    
>>
>
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada




More information about the AccessD mailing list