设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4237|回复: 10
打印 上一主题 下一主题

[查询] 关于隐藏表和查询问题

[复制链接]
跳转到指定楼层
1#
发表于 2006-4-2 06:56:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教,怎样使用VB代码实现隐藏MDB文件中的表和查询,生成MDE文件后,无法查看到隐藏的表和查询,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-4-2 10:08:00 | 只看该作者
表与查询可以隐藏,但想无法查看到隐藏的表或查询就好难了
3#
 楼主| 发表于 2006-4-2 18:09:00 | 只看该作者
请问,可以举一个例子吗,多谢!
4#
发表于 2006-4-2 18:13:00 | 只看该作者
[转贴]

在表的名字前加



~TMPCLP



可以隐藏这个表,用查看系统或隐藏对象也无法看到,但可以在MSysObjects这个表中查得。



在关闭数据库或压缩数据库后,该表不会消失。



另外手工删除表时,系统也会自动命名这个为 ~TMPCLPXXXXXX,不过和手工改表名称不同,被删除的表在MSysObjects的 Flags 字段值为4097,在关闭数据库或压缩数据库后,该表将消失
5#
发表于 2006-4-2 22:58:00 | 只看该作者
用Application 对象的SetHiddenAttribute 方法

SetHiddenAttribute 方法

参阅应用于[url=mkMSITStore:E:\Program%20Files\Microsoft%20Office\OFFICE11\2052\vbaac10.chm::/html/acmthSetHiddenAttribute.htm#example]示例[/url]特性

SetHiddenAttribute 方法用于设置 Access 对象的隐藏属性。

expression.SetHiddenAttribute(ObjectType, ObjectName, fHidden)

expression      必需。返回 Application 对象的表达式。

ObjectType   必需 [url=mkMSITStore:E:\Program%20Files\Microsoft%20Office\OFFICE11\2052\vbaac10.chm::/html/acmthSetHiddenAttribute.htm#]AcObjectType[/url]。必须为 ObjectType 参数输入一个常量;acDefault 不是有效的输入项。











AcObjectType 可以是下列 AcObjectType 常量之一:



acDataAccessPage



acDefault



acDiagram



acForm



acFunction



acMacro



acModule



acQuery



acReport



acServerView



acStoredProcedure



acTable

ObjectName     String 型,必需。[url=mkMSITStore:E:\Program%20Files\Microsoft%20Office\OFFICE11\2052\vbaac10.chm::/html/acmthSetHiddenAttribute.htm#]字符串表达式[/url],标识 Access 对象的名称。

fHidden     Boolean 型,必需。值为 True 会设置隐藏属性,值为 False 则会清除隐藏属性。

说明

GetHiddenAttributeSetHiddenAttribute 方法一起使用时,可提供一种通过 Visual Basic 代码改变对象隐藏属性的方法。使用这两个方法,可以设置或读取对象的“属性”对话框中可用的隐藏选项。

若要使用 SetHiddenAttribute 方法来设置该选项,可将参数设为 TrueFalse,如下例所示。
  1. Application.[b]SetHiddenAttribute[/b] acTable,"Customers", True
复制代码

6#
发表于 2006-4-2 22:59:00 | 只看该作者
Public Sub 显隐当前DB表(tof As Boolean) '显示/隐藏当前数据库的表或查询(true隐藏\false显示)
Dim dbs As Database
Set dbs = CurrentDb
Dim tf As TableDef
Dim qf As QueryDef

For Each tf In dbs.TableDefs
If Left(tf.Name, 2) <> "ms" And Left(tf.Name, 1) <> "~" Then
Application.SetHiddenAttribute acTable, tf.Name, tof
End If
Next

For Each qf In dbs.QueryDefs
If Left(qf.Name, 1) <> "~" Then
Application.SetHiddenAttribute acQuery, qf.Name, tof
End If
Next
End Sub
7#
 楼主| 发表于 2006-4-3 03:22:00 | 只看该作者
请问,kennylee,这段代码放在哪使用。谢谢。
8#
发表于 2006-4-5 00:42:00 | 只看该作者
放在模块,在窗体设按钮

Private Sub Command0_Click()

call 显隐当前DB表(true)'隐藏

End Sub
9#
发表于 2007-8-25 16:41:19 | 只看该作者
使用安全工作组来设置
10#
发表于 2007-8-25 16:53:22 | 只看该作者
楼上的,拜托你不要对几年前的旧贴进行这种没意义回复的疯狂挖坟行为,好不?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-9 15:28 , Processed in 0.109354 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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