表是数据库最重要的东西,有时候因为程序的需要,会把表隐藏(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