Access判断数据表是否存在

2017-11-16 16:05:00
cg1
转贴
187

表是数据库最重要的东西,有时候因为程序的需要,会把表隐藏(Access彻底隐藏表显示表。直观上也许我们不能马上发现。

那么我们如何判定一个表是否存在于某个数据库?这里我们介绍两个方法


方法一:

'通过写循环读取所有表的名字来判定表是否存在
Function searchTable(TableName As String) As Boolean
    searchTable = False
    Dim tbl As DAO.TableDef
    For Each tbl In CurrentDb.TableDefs
        If tbl.Name = TableName Then
            searchTable = True
            Exit For
        End If
    Next
End Function

'调用,如要判断表名为“表2”的表是否存在: msgbox searchTable("表2")
'如果存在返回 True,不存在返回 False


方法二:
这种方法就是使用陷阱,造成一个错误,通过系统错误来判定某个表是否存在
这是个少有人介绍,但是很实用的技巧。

Function test()
    MsgBox TableIsIn("表2")
End Function
Function TableIsIn(TableName As String)
    TableIsIn = True
    On Error Resume Next
    Dim strSQL As String
    strSQL = "select * from " & TableName
    CurrentDb.Execute strSQL
    If Err.Number = 3078 Then
        TableIsIn = False
    End If
    
End Function


    分享