[AccessD] Cannot set References in Access 97

MartyConnelly martyconnelly at shaw.ca
Sun Feb 6 15:18:19 CST 2005


The Access 97 basic default references are:

Visual Basic for Applications
Microsoft Access 8.0 Object Library
Microsoft DAO 3.5x Object Library

You might have switched to Microsoft DAO 3.6 Object Library instead of 
old default DAO 3.5
both will work, but DAO 3.5 may not be available on some newer machines

Notes on references
http://members.rogers.com/douglas.j.steele/AccessReferenceErrors.html

Try some of these routines and see if you get any meaningful error messages
The first forces a reference to be added from code
The rest list things like full path name of all references

Function ReferenceFromFile(strFileName As String, Optional Warning As 
Boolean) As Boolean
 ' To Call routine
 'ReferenceFromFile "c:\Windows\System\vbscript.dll\3", True
 'ReferenceFromFile "c:\windows\system\vbscript.dll\4",true
' This method is used to get at regular expression entry points  from 
 vbscript
'The  code works with Access '97 all service packs, on NT4 and all 
service packs
'You know that adding a ref will cause a decompile? and hence won't work 
in mde.
'I gather you only use this when setting up a new install.
'BTW if possible supply the modules or library names when describing a 
AV, GPF, IIE
'i:e: Msaccess.exe, vba332.dll, myaxdll.dll etc
'visit www.trigeminal.com and check out the /decompile switch
'- try it as per instructions and then try to add refs.
    Dim ref As Reference
 
    On Error GoTo Error_ReferenceFromFile
    Set ref = References.AddFromFile(strFileName)
    ReferenceFromFile = True
 
Exit_ReferenceFromFile:
    Exit Function
 
Error_ReferenceFromFile:
    If Warning = True Then MsgBox Err & ": " & Err.Description
    ReferenceFromFile = False
    Resume Exit_ReferenceFromFile
End Function

Function ReferencePropertiesList() As String
'list all references in a MDB and place in a string
   Dim ref As Reference
   Dim strList As String
    strList = "Reference Properties:" & vbCrLf & vbCrLf
   For Each ref In References
      ' Check for ActiveX type files
      'Check for Broken Properties
      If ref.IsBroken = False Then
        strList = strList & "  Name: " & ref.Name & vbCrLf
        strList = strList & " FullPath: " & ref.FullPath & vbCrLf
        strList = strList & " Version: " & ref.Major & "." & ref.Minor & _
                   vbCrLf

          'skip these two calls if detail not needed
         ' strList = strList & " Description: " & _
                  GetFileDescription(ref.FullPath) & vbCrLf
         ' strList = strList & " Version No: " & _
                  FileVersionNo(ref.FullPath) & _
                 vbCrLf & vbCrLf
         Else
        strList = strList & " GUIDs of broken references:" & vbCrLf
        strList = strList & " " & ref.Guid & vbCrLf & vbCrLf
       End If
   'MsgBox GetFileDescription(ref.FullPath)
   'MsgBox FileVersionNo(ref.FullPath)
   Next ref
   Debug.Print strList
   ReferencePropertiesList = strList
End Function


 Sub testref()
On Error GoTo err_fcbr
Dim bln_broken As Boolean
Dim LibObject   As Access.Reference
'VBA used to disambiguate call on startup to avoid vba reference call
' see kaplan's site
    For Each LibObject In Application.References
        If LibObject.IsBroken Or _
        (LibObject.FullPath & "" = "") Or _
        (LibObject.Name & "" = "") Then
            bln_broken = True
            If LibObject.Kind = 0 Then
                VBA.MsgBox "TypeLib reference failure. Cannot Continue."
            Else
                VBA.MsgBox "Library Module not Found"
            End If
            Application.Quit
            'this may not work anyway - it's an object reference.....
        End If
    Next

Exit Sub


err_fcbr:
    VBA.MsgBox "CTM Error Information..." & VBA.vbCrLf & VBA.vbCrLf _
                & "Function: CheckBrokenRef" & VBA.vbCrLf _
                & "Description: " & Err.Description & VBA.vbCrLf _
                , VBA.vbInformation, "CTM Startup"

    Application.Quit
    Exit Sub
End Sub

'from 
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q194374&ID=KB;EN-US;q194374
Function CheckRefs()
   Dim db As Database, rs As Recordset
   Dim x
   Set db = CurrentDb

   On Error Resume Next

   ' Run the query qryTestRefs you created and trap for an error.
   Set rs = db.OpenRecordset("qryTestRefs", dbOpenDynaset)

   ' The if statement below checks for error 3075. If it encounters the
   ' error, it informs the user that it needs to fix the application.
   ' Error 3075 is the following:
   ' "Function isn't available in expressions in query expression..."

   ' Note: This function only checks for the error 3075. If you want it to
   ' check for other errors, you can modify the If statement. To have
   ' it check for any error, you can change it to the following:
   ' If Err.Number <> 0

    If Err.Number = 3075 Then
      MsgBox "This application has detected newer versions " _
             & "of required files on your computer. " _
             & "It may take several minutes to recompile " _
             & "this application."
      Err.Clear
      FixUpRefs
   End If

Mark Breen wrote:

>Hello All,
>
>As you may have noticed from previous emails related to ADO etc, I am
>have a fine ol' time with an old friend Access 97.
>
>Having offered the suggestion of moving to ADO and rolling it our
>across 300 pc's!, and having taken your good advice (thanks again),
>they assigned me the task.
>
>Anyway, I have done a little research and cannot wait to start calling
>sprocs in Oracle 8i and passing parameters in and out using ADO and
>Access 97.
>
>Only one problem, on my PC, (the one that I am using in the clients
>office anyway), Access 97 with the latest sp and jet etc, will not let
>me set references.  It crashes everytime I click Ok after choosing a
>dll to reference.  It is not just ADO, in fact it happens with almost
>all dlls in the list.
>
>I have tried it with new and existing db, btw.
>
>Now of course I can do some obvious things like use another PC or
>format my pc or a lot of other heavy handed things, but I am consious
>of the fact that any difficulties I experience may be experienced by
>the other 300 - 400 users of the Access app.
>
>So, have you guys ever had any difficulties setting references in
>Access 97?  or related information.
>
>Thanks as usual in advance for your time
>
>
>Mark Breen
>Ireland
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada






More information about the AccessD mailing list