Вы можете использовать следующую функцию для проверки правильности связанной таблицы перед открытием формы:
' ValidLinkedTableP - Lee Mac
' Predicate function returning True if a linked table exists and may be refreshed
Function ValidLinkedTableP(strTbl As String) As Boolean
On Error GoTo error_handler
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Set dbs = CurrentDb
Set tdf = dbs.TableDefs(strTbl)
If tdf.Connect <> vbNullString Then
tdf.RefreshLink
ValidLinkedTableP = True
End If
exit_function:
Set tdf = Nothing
Set dbs = Nothing
Exit Function
error_handler:
Select Case Err.Number
Case 3024 ' Link broken
Case 3265 ' Table doesn't exist
Case Else
MsgBox "Error " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Select
Resume exit_function
End Function
Выше будет возвращено True
, если связанная таблица существует в текущейбаза данных с непрерывной ссылкой на исходную таблицу.
Таким образом, вы можете оценить вышеизложенное перед открытием формы и установить для свойства «Источник записи» формы соответствующий запрос, зависящий от значения, возвращаемого вышеуказанной функцией..