设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 求助如何隱藏查詢表,並分享能一次性隱藏基本表的方法.

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-21 11:31:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下壇子裡高人共享的可以隱藏基本表的代碼,可不能隱藏查詢表,不知有沒有兄弟有隱藏查詢表的代碼分享一下,在此先謝謝了!
Function chediyincangbiao()     '彻底隐蔽所有的表格包括链接表及系统表等
On Error GoTo Err_Command0_Click
Dim db As Database
Dim i As Integer
    Set db = DBEngine.Workspaces(0).Databases(0)
   
    db.TableDefs.Refresh
    For i = 0 To db.TableDefs.Count - 1
    '此项操作应避开系统表,以免将系统表属性改而造成问题.
      If db.TableDefs(i).name = "msysaccessobjects" or db.TableDefs(i).name = "MSYSACCESSXML" _
      or db.TableDefs(i).name = "MSYSACES" or db.TableDefs(i).name = "MSYSOBJECTS" _
      or db.TableDefs(i).name = "MSYSQUERIES" or db.TableDefs(i).name = "MSYSRELATIONSHIPS" Then
      
    Else
       CurrentDb.TableDefs(db.TableDefs(i).name).Attributes = 1
    End If
    Next i
    Set db = Nothing
MsgBox "当前数据库中的所有表格都已被隐藏."
Exit_Command0_Click:
    Exit Function
Err_Command0_Click:
    MsgBox Err.Description
    Resume Exit_Command0_Click
End Function

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-4-21 17:06:18 | 只看该作者
那取消隐藏呢,
CurrentDb.TableDefs(db.TableDefs(i).name).Attributes = 1
这句要等于0?
3#
发表于 2011-4-21 17:17:14 | 只看该作者
本帖最后由 roych 于 2011-4-21 17:25 编辑

类似地……定义Qrydefs就是了,把相关的TableDef改为Qrydef;TableDefs改为Qrydefs。。
隐藏表和查询问题,没必要深究。在这之前已经就这个问题跟大伙拍过砖了,请参考有没有用MSysObjects找不到的表?
如果对付一般用户,加了工作组和禁用Shift键,基本已经可以的了,没这个必要。
对付像俺这样的捣蛋分子,请客吃个饭就行了,否则隐藏表也没多大用。加多几层锁,无非需要我多花些功夫罢了。
4#
 楼主| 发表于 2011-4-22 11:24:49 | 只看该作者
回复 roych 的帖子

謝謝兄弟指導,看來俺還菜的很喲,改天請你吃飯
5#
 楼主| 发表于 2011-4-22 11:30:13 | 只看该作者
回复 sblisb 的帖子

是的.我剛開始已不知道,後來自己試了一下果然如此.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 04:54 , Processed in 0.095151 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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