设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2688|回复: 6
打印 上一主题 下一主题

[表] 用VBA语句怎么判断一个指定的表已经存在!

[复制链接]
跳转到指定楼层
1#
发表于 2008-6-19 18:55:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用VBA语句怎么判断一个指定的表已经存在!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-6-19 19:48:18 | 只看该作者
'这是本人写的两个检测表是否存在的一个自定义函数,仅供参考
Public Function Btbl (strTblName As String) As Boolean
Dim I As Integer
Dim tdf As TableDef

Btbl=False
'遍历所有表,判断指定表名是否存
For I = 0 To CurrentDb.TableDefs.Count - 1
        If CurrentDb.TableDefs(I).Name = strTblName Then
   
           Btbl =True '存在则真
           
Exit for
        End If
Next I
End Function



'代码也可以这样写
Public Function Btbl (strTblName As String) As Boolean
Dim I As Integer
Dim tdf As TableDef
Dim M_Count As Intrger
'判断指定表名是否存
For I = 0 To CurrentDb.TableDefs.Count - 1
        If CurrentDb.TableDefs(I).Name = strTblName Then
           M_count=M_count+1
        End if     
Next I
'输入值真则存,假则不存在
If M_count > 0 then  
   Btbl = True
Else
   Btbl = False
End if
End Function

[ 本帖最后由 tanhong 于 2008-6-21 09:34 编辑 ]
3#
发表于 2008-6-19 20:27:13 | 只看该作者
打开记录集,捕获到特定的错误号,这个表就不存在。
4#
发表于 2008-6-20 00:07:09 | 只看该作者
还有一种方法

Public Function IsTableExist(tableName As String) As Boolean
    Dim i As Integer
    Dim result As Boolean
    result = False
    For i = 0 To Application.CurrentData.AllTables.Count - 1
        If Application.CurrentData.AllTables(i).Name = tableName Then
            result = True
            Exit For
       End If
    Next
   
   IsTableExist = result
End Function
5#
发表于 2008-6-20 01:29:34 | 只看该作者


  1. Public Function IsTableExist(strTableName As String) As Boolean
  2.     Dim tbl As DAO.TableDef
  3.     IsTableExist = False
  4.     For Each tbl In CurrentDb.TableDefs
  5.         If tbl.Name = strTableName Then
  6.             IsTableExist = True
  7.             Exit Function
  8.         End If
  9.     Next
  10. End Function
复制代码
6#
发表于 2008-6-20 15:54:01 | 只看该作者
捕获错误的方法也不错!
7#
发表于 2008-6-20 21:51:27 | 只看该作者
方法还有:读取系统表,系统表中没有记录表就存在。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-14 12:43 , Processed in 0.095832 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表