Sub 用DAO遍历表()
Dim tdf As DAO.TableDef
Dim dbs As DAO.Database
Set dbs = CurrentDb
For Each tdf In dbs.TableDefs
If Left(tdf.Name, 1) = "A" Then
DoCmd.DeleteObject acTable, tdf.Name
End If
Next tdf
End Sub作者: sxgaobo 时间: 2007-8-11 14:35
谢谢t小宝!!!
我想做的是删除表名称第一个字符不是“A”的表!
我将If Left(tdf.Name, 1) = "A" Then改成了If Left(tdf.Name, 1) <> "A" Then,却提示要删除系统文件,如何可以不删除系统文件啊!?作者: andymark 时间: 2007-8-11 14:48
系统的表都是MSys开头的
if left(tdf.name,4)<>"MSys" then
If Left(tdf.Name, 1) <> "A" then
DoCmd.DeleteObject acTable, tdf.Name
end if
end if作者: sxgaobo 时间: 2007-8-11 14:53
谢谢版主,有没有不删除隐含表的办法?作者: andymark 时间: 2007-8-11 15:06
用GetHiddenAttribute属性判断,
另一种方法,凡是要隐藏的表加一个统一的前缀,按上面的方法判断即可作者: sxgaobo 时间: 2007-8-11 18:58
谢谢版主!
程序都做好了,改表名称会带来混乱的啊,能告诉我GetHiddenAttribute属性怎么用吗?作者: sxgaobo 时间: 2007-8-12 17:25
请各位大侠帮忙啊~~~!!!作者: andymark 时间: 2007-8-12 18:26
Dim tdf As DAO.TableDef
Dim dbs As DAO.Database
Set dbs = CurrentDb
For Each tdf In dbs.TableDefs
If Application.GetHiddenAttribute(acTable, tdf.Name) = False Then
If Left(tdf.Name, 1) <> "A" Then
DoCmd.DeleteObject acTable, tdf.Name
End If
End If
Next tdf作者: sxgaobo 时间: 2007-8-13 10:57
谢谢版主!!!