设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

1234下一页
返回列表 发新帖
查看: 7069|回复: 33
打印 上一主题 下一主题

[其它] 如何得到全部的用户表名称?

[复制链接]
跳转到指定楼层
1#
发表于 2005-5-27 08:20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想将全部的用户表一次导出到*.XLS中,但我如何才能得到全部的用户表名称呢?

    Dim obj As AccessObject, dbs As Object

    Set dbs = Application.CurrentData

    For Each obj In dbs.AllTables

            ' Print name of obj.

            Debug.Print obj.Name

    Next obj



我用此方法得到的表包含了系统自带隐藏的表,这不是我要的.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-5-27 16:09:00 | 只看该作者
用名字判断一下不就可以了?
3#
 楼主| 发表于 2005-5-27 21:28:00 | 只看该作者
在我的程序里每次导入外部数据作为程序的基本数据时会自动生成一个表来存放原始数据,(后面还有更复杂的操纵等这个问题解决后再请教)而表的名字由用户&日期自动生成.用名字判断不现实吧?如果能得到所有的用户表名,就可以一次将它们导出到一个电子表格*.XLS中来进行备份数据了.海狸先生有什么更好的办法来进行备份和还原操作呢?
4#
发表于 2005-5-27 22:21:00 | 只看该作者
呵呵,系统表的名字是固定的嘛,我的意思是判断是否系统表,而不是判断是否是你的表
5#
 楼主| 发表于 2005-5-28 05:29:00 | 只看该作者
喔,原来如此.我用下列方法可实现一次将全部用户表导出到d:\test.xls文件中去.Private Sub cmdBackUp_Click()

    Dim obj As AccessObject, dbs As Object

    Set dbs = Application.CurrentData

    For Each obj In dbs.AllTables

        If obj.Name <> "MSysAccessObjects" And obj.Name <> "MSysAccessXML" And obj.Name <> "MSysACEs" And obj.Name <> "MSysIMEXColumns" And obj.Name <> "MSysIMEXSpecs" And obj.Name <> "MSysObjects" And obj.Name <> "MSysQueries" And obj.Name <> "MSysRelationships" Then

            DoCmd.TransferSpreadsheet acExport, 8, obj.Name, "d:\test.xls", True, ""

        End If

    Next obj

End Sub

当然在程序中可以由用户指定路径和文件名.但导出的这个文件任何人都可以打开,这样数据安全何从谈起!.现在问题来了:如何保证这个文件的数据安全,又不会造成程序导入时有麻烦?最好是用EXECL不认识它.
6#
发表于 2005-5-28 05:34:00 | 只看该作者
If obj.Name not like "MSys*" then  不就可以了。。。。名字改一下?不要用.xls,用.x试试
7#
 楼主| 发表于 2005-5-28 05:37:00 | 只看该作者
谢乐!再试下.
8#
 楼主| 发表于 2005-5-28 05:40:00 | 只看该作者
提示:编译错误:缺少表达式.指向like ???????
9#
发表于 2005-5-28 05:49:00 | 只看该作者
   Dim obj As AccessObject, dbs As Object

    Set dbs = Application.CurrentData

    For Each obj In dbs.AllTables

        If Not obj.Name Like "MSys*" Then

            MsgBox obj.Name

        End If

    Next obj
10#
 楼主| 发表于 2005-5-28 06:02:00 | 只看该作者
原来写错个字母呀.哈哈哈......但我改变那个d:\test.xls为TEST.X或别的什么的就发生运行时错误"3027".看来TransferSpreadsheet方法只支持XLS了,能不能在完成导出后,用代码将这个文件改成.BKP名呢?导入时先将名字改会来.再导入.另外:当我导入时有什么办法同上述方法一般读出XLS中SHEET集合的每个名字呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-16 17:52 , Processed in 0.101367 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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