注册 登录
编程论坛 ACCESS论坛

判断数据库中是否存在一张表,为什么这段代码老是报错?

zyxyklh 发布于 2023-05-10 15:15, 1219 次点击
For i = 0 To CurrentDb.TableDefs.Count - 1
  If "EXPORT" = CurrentDb.TableDefs(i).Name Then   '如果EXPORT真的存在了,这一句就会报错!
    DoCmd.DeleteObject acTable, "EXPORT"
  End If
Next

拜托各位
4 回复
#2
zyxyklh2023-05-10 15:22
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
#3
厨师王德榜2023-05-11 09:57
可以不用遍历,直接用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
#4
厨师王德榜2023-05-11 11:15
如果不是删除表,只是单纯想知道表是否存在,可以这样:
程序代码:
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
#5
zyxyklh2023-05-11 16:44
回复 4楼 厨师王德榜
我是初学,您写的代码我没看明白
1