Как установить переменную, ссылающуюся на базу данных библиотеки - PullRequest
0 голосов
/ 11 октября 2019

В настоящее время я работаю над библиотечной базой данных для всех моих приложений Access, в которых есть общий код и формы. Это идет довольно хорошо, но единственное, что я не могу обнаружить, это как установить переменную, ссылающуюся на ссылку. Имя библиотеки задается константой, и при запуске проверяется, существует ли файл в папке приложения и совпадает ли он с путем, сохраненным в ссылке.

Однако я хочу обратиться к библиотеке скороткая переменная "dbl", потому что я не хочу каждый раз использовать имя библиотеки. Это имя может измениться. Как мне установить переменную для этого? Я попытался Set dbl = Application.References(APP_LIB), и это считается действительным, но я не могу вызвать любую процедуру или форму с этой переменной.

Thx!

Art.

Public Function CkLib()
'Needs to stay in the App Module!
    Dim ref As Reference
    Dim strLib As String

    On Error GoTo Err_Proc

    For Each ref In Application.References
        If ref.Name = APP_LIB Then
            strLib = CurrentProject.Path & "\" & ref.Name & "." & APP_LIB_TYPE
            If Dir(strLib, vbNormal) = "" Then  'File does not exist
                MsgBox "The app library " & APP_LIB & " is missing. Please reinstall the app or ask for support!", vbCritical + vbOKOnly, APP_NAME & " App Error"
                DoCmd.Quit acQuitSaveNone
            Else
                If ref.FullPath <> strLib Then 'Path needs to be updated
                    References.Remove ref
                    References.AddFromFile strLib
                End If
                Exit For
            End If
        End If
    Next ref

    If Nz(strLib, "") = "" Then
        'Try to add ref
        If Dir(CurrentProject.Path & "\" & APP_LIB & "." & APP_LIB_TYPE, vbNormal) <> "" Then
            References.AddFromFile strLib
        Else
            MsgBox "Missing reference to app library " & APP_LIB & "! Please reinstall the app or ask for support!", vbCritical + vbOKOnly, APP_NAME & " App Error"
            DoCmd.Quit acQuitSaveNone
        End If
    End If

    Set dbl = Application.References(APP_LIB)

Exit_Proc:
    Exit Function

Err_Proc:
    Select Case Err.number
        Case Else
            MsgBox "Error: " & Trim(Str(Err.number)) & vbCrLf & _
            "Desc: " & Err.description & vbCrLf & vbCrLf & _
            "Module: Mod_Generic" & vbCrLf & _
            "Function: CkLib", _
            vbCritical, "Error!"
    End Select
    Resume Exit_Proc
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...