设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[其它] 请教!可以在 DoCmd.DeleteObject acTable, "ABCD"中使用通配符吗?

[复制链接]
跳转到指定楼层
1#
发表于 2007-8-11 09:59:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我想批量删除不用的表,有什么办法可以实现啊?如批量删除表名称第一个字符不是“A”的表!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
10#
 楼主| 发表于 2007-8-13 10:57:02 | 只看该作者
谢谢版主!!!
9#
发表于 2007-8-12 18:26:13 | 只看该作者
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
8#
 楼主| 发表于 2007-8-12 17:25:20 | 只看该作者
请各位大侠帮忙啊~~~!!!
7#
 楼主| 发表于 2007-8-11 18:58:01 | 只看该作者
谢谢版主!
程序都做好了,改表名称会带来混乱的啊,能告诉我GetHiddenAttribute属性怎么用吗?
6#
发表于 2007-8-11 15:06:46 | 只看该作者
用GetHiddenAttribute属性判断,
另一种方法,凡是要隐藏的表加一个统一的前缀,按上面的方法判断即可
5#
 楼主| 发表于 2007-8-11 14:53:45 | 只看该作者
谢谢版主,有没有不删除隐含表的办法?
4#
发表于 2007-8-11 14:48:41 | 只看该作者
系统的表都是MSys开头的
if  left(tdf.name,4)<>"MSys" then
     If Left(tdf.Name, 1) <> "A" then
        DoCmd.DeleteObject acTable, tdf.Name
     end if
end if
3#
 楼主| 发表于 2007-8-11 14:35:36 | 只看该作者
谢谢t小宝!!!
我想做的是删除表名称第一个字符不是“A”的表!
我将If Left(tdf.Name, 1) = "A" Then改成了If Left(tdf.Name, 1) <> "A" Then,却提示要删除系统文件,如何可以不删除系统文件啊!?

点击这里给我发消息

2#
发表于 2007-8-11 11:44:35 | 只看该作者
用通配符是不行的,下面是用dao的方法:

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-21 13:26 , Processed in 0.102791 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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