86.txt

来自「介绍VB里的各种控件的使用方法,窗口控制,图像编程以及OCX等内容,还提供了一个」· 文本 代码 · 共 45 行

TXT
45
字号
如何判断数据中是否存在某一表或查询




在设计数据库程序时,经常会需要先判断一个表或一个查询是否在数据库中,以避免错误的发生。要做到这一点非常简单,我们只需要捕捉VB返回的错误号就行了。

首先打开一个新的工程,添加对DAO引用。然后添加一个标准模块到工程中,在模块的声明段写入下面的语句:

Public Const NameNotInCollection = 3265

将下面这个判断表或查询是否存在的子程序添加到窗体的声明段中:

Option Explicit
Dim DB As Database

Private Function ExistsTableQuery(TName As String) As Boolean
    Dim Test As String
    On Error Resume Next

         ' 数据库表集合中是否存在要查询的表的名称
         Test = DB.TableDefs(TName).Name
         If Err <> NameNotInCollection Then
            ExistsTableQuery = True
            ' 重置error变量
            Err = 0
            ' 数据库查询集合中是否存在要查询的查询的名称
            Test = DB.QueryDefs(TName$).Name
            If Err <> NameNotInCollection Then
               ExistsTableQuery = True
            End If
         End If
      End Function
最后在窗体的Load事件中加入下述代码:

Private Sub Form_Load()
Set DB = DBEngine.Workspaces(0).OpenDatabase("Biblio.mdb")
      Debug.Print "BadTable "; IIf(ExistsTableQuery("BadTableName"), _
         "确实", "不"); " 存在."
      Debug.Print "Authors "; IIf(ExistsTableQuery("Authors"), _
         "确实", "不"); " 存在."
      End Sub

按F5运行程序,在立即窗口中就会显示出程序运行的结果。

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?