如果缺少其中一个表而不是错误,如何从联接查询获取返回



我有来自 3 个表的连接查询,其中一个表与其他数据库和网络位置链接。有时,此位置不可用,并且缺少链接表。这会导致缺少表的查询错误。

是否可以使查询在有和没有链接表的情况下工作?当数据缺失时,列数据应为空。

在打开窗体之前,可以使用如下所示的函数来测试链接表的有效性:

' 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

因此,您可以在打开窗体之前评估上述内容,并将窗体的 Record Source 属性设置为依赖于上述函数返回的值的相应查询。

No.

在打开查询之前,请运行一些代码以检查源是否处于活动状态,如果不是,则取消。

或者选择运行另一个不使用缺少的源的查询。

相关内容

  • 没有找到相关文章

最新更新