标题:判断数据库中是否存在一张表,为什么这段代码老是报错?
只看楼主
zyxyklh
Rank: 1
来 自:学校
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-7-8
结帖率:100%
已结贴  问题点数:20 回复次数:4 
判断数据库中是否存在一张表,为什么这段代码老是报错?
For i = 0 To CurrentDb.TableDefs.Count - 1
  If "EXPORT" = CurrentDb.TableDefs(i).Name Then   '如果EXPORT真的存在了,这一句就会报错!
    DoCmd.DeleteObject acTable, "EXPORT"
  End If
Next

拜托各位
搜索更多相关主题的帖子: 数据库 判断 代码 报错 是否存在 
2023-05-10 15:15
zyxyklh
Rank: 1
来 自:学校
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-7-8
得分:0 
For i = 0 To CurrentDb.TableDefs.Count - 1
  If "EXPORT" = CurrentDb.TableDefs(i).Name Then   '如果EXPORT真的存在了,这一句就会报错!
    DoCmd.DeleteObject acTable, "EXPORT"
    exit for      ‘加上这句就好了
  End If
Next
2023-05-10 15:22
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:10 
可以不用遍历,直接用on Error语句更直接.
程序代码:
Sub main_DeleteTab调用示例()
Dim t1 As String, result As Boolean

t1 = "档期定义"   '要删除的表名
result = DropTable(t1)  '返回逻辑值

End Sub

Public Function DropTable(ByVal tabName As String) As Boolean
On Error GoTo err1:
DoCmd.DeleteObject acTable, tabName
DropTable = True

err1:
Exit Function

End Function
2023-05-11 09:57
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:10 
如果不是删除表,只是单纯想知道表是否存在,可以这样:
程序代码:
Public Function FindTable(ByVal tabName As String) As Boolean
Dim tab1 As TableDef
On Error GoTo err1:
Set tab1 = CurrentDb.TableDefs(tabName)
FindTable = True

err1:
Exit Function

End Function
2023-05-11 11:15
zyxyklh
Rank: 1
来 自:学校
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-7-8
得分:0 
回复 4楼 厨师王德榜
我是初学,您写的代码我没看明白
2023-05-11 16:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512153-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.143258 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved