How to track down and fix "missing or broken reference"?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sueb
    Contributor
    • Apr 2010
    • 379

    #1

    How to track down and fix "missing or broken reference"?

    I'm running Access 2002, and some of my users are running 2007. (The following errors, once accepted do not seem to impede any functioning in the database.)

    They are experiencing a new behavior when they open the front end I send them, and that is the popup of several error messages on the order of:

    ...missing or broken reference to the file 'gwdpk.ocx'

    and a complaint about the On Timer property I have in a "dummy" form that loads and manages activity. The code called from that property (Timer Interval is set to 1000) is:

    Code:
    Sub Form_Timer()
        ' IDLEMINUTES determines how much idle time to wait for before
        ' running the IdleTimeDetected subroutine.
        Const IDLEMINUTES = 5
    
        Static PrevControlName As String
        Static PrevFormName As String
        Static ExpiredTime
    
        Dim ActiveFormName As String
        Dim ActiveControlName As String
        Dim ExpiredMinutes
    
        On Error Resume Next
        
        ' Check for activity only after the work day is over
        If Time > #5:00:00 PM# Then
    
            ' Get the active form and control name.
            ActiveFormName = Screen.ActiveForm.Name
            If Err Then
                ActiveFormName = "No Active Form"
                Err = 0
            End If
    
            ActiveControlName = Screen.ActiveControl.Name
            If Err Then
                ActiveControlName = "No Active Control"
                Err = 0
            End If
    
            ' Record the current active names and reset ExpiredTime if:
            '    1. They have not been recorded yet (code is running
            '       for the first time).
            '    2. The previous names are different than the current ones
            '       (the user has done something different during the timer
            '        interval).
            If (PrevControlName = "") Or (PrevFormName = "") _
                Or (ActiveFormName <> PrevFormName) _
                Or (ActiveControlName <> PrevControlName) Then
                PrevControlName = ActiveControlName
                PrevFormName = ActiveFormName
                ExpiredTime = 0
            Else
                ' ...otherwise the user was idle during the time interval, so
                ' increment the total expired time.
                ExpiredTime = ExpiredTime + Me.TimerInterval
            End If
    
            ' Does the total expired time exceed the IDLEMINUTES?
            ExpiredMinutes = (ExpiredTime / 1000) / 60
            If ExpiredMinutes >= IDLEMINUTES Then
                ' ...if so, then reset the expired time to zero...
                ExpiredTime = 0
                ' ...and call the IdleTimeDetected subroutine.
                IdleTimeDetected ExpiredMinutes
            End If
        
        End If
    
    End Sub
    Any idea what's going on and how I can fix it? I don't have access to 2007 for my development/testing (no 2002 users get these errors), so I'm sort of in the dark with this.
  • Oralloy
    Recognized Expert Contributor
    • Jun 2010
    • 988

    #2
    sueb,

    Sounds like a class module that comes with 2002 isn't shipped with, or isn't installed by default in 2007.

    On your 2002 system, in the VBA window, look under the Tools|Reference s and see if anything is tagged for 'gwdpk.ocx'. If so, take a moment and go to a 2007 system to see if it is even there.

    If it's there, turn it on and load the application. Are you getting the same error?

    This link might help....ActiveX-Error-please-explain

    Cheers!
    Oralloy

    Comment

    • sueb
      Contributor
      • Apr 2010
      • 379

      #3
      In my References list, that name doesn't appear.

      Comment

      • Oralloy
        Recognized Expert Contributor
        • Jun 2010
        • 988

        #4
        sueb,

        Drat!

        I had a similar problem a number of years ago, and I seem to recall that there's a way to have Access automatically reference required libraries and components (so long as they're on the computer running the Access). My problem is that I do not remember the details of the solution.

        Perhaps one of our real Gurus can help you further.

        Luck!

        Comment

        • sueb
          Contributor
          • Apr 2010
          • 379

          #5
          I ended up making copies of all the .ocx and .dll files on my machine, and having my users put them into the correct directory on each of their machines (C:\Novell and C:\Novell\Group wise). I still don't understand why this was not a problem in the past.

          This seems like an extremely lame fix to a mysterious problem.
          Last edited by sueb; Feb 11 '11, 12:42 AM. Reason: completion of thought

          Comment

          • sueb
            Contributor
            • Apr 2010
            • 379

            #6
            I ended up making copies of all the .ocx and .dll files on my machine, and having my users put them into the correct directory on each of their machines (C:\Novell and C:\Novell\Group wise). I still don't understand why this was not a problem in the past.

            This seems like an extremely lame fix to a mysterious problem.

            Comment

            • Oralloy
              Recognized Expert Contributor
              • Jun 2010
              • 988

              #7
              sue,

              Ouch! That's the hard way to fix the problem.

              At this point, I'm hoping that one of our reall Access gurus can kick in and help, as I don't know why, but I've met the problem before.

              Cheers!

              Comment

              • sueb
                Contributor
                • Apr 2010
                • 379

                #8
                You're right--it certainly is the "hard way to fix the problem"! I know for certain it's not the correct one. I can only hope someone can give me the right answer.

                Comment

                Working...