Office中国论坛/Access中国论坛

标题: 关于隐藏表和查询问题 [打印本页]

作者: qdjqx    时间: 2006-4-2 06:56
标题: 关于隐藏表和查询问题
请教,怎样使用VB代码实现隐藏MDB文件中的表和查询,生成MDE文件后,无法查看到隐藏的表和查询,谢谢!
作者: 一点通    时间: 2006-4-2 10:08
表与查询可以隐藏,但想无法查看到隐藏的表或查询就好难了
作者: qdjqx    时间: 2006-4-2 18:09
请问,可以举一个例子吗,多谢!
作者: 一点通    时间: 2006-4-2 18:13
[转贴]

在表的名字前加



~TMPCLP



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



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



另外手工删除表时,系统也会自动命名这个为 ~TMPCLPXXXXXX,不过和手工改表名称不同,被删除的表在MSysObjects的 Flags 字段值为4097,在关闭数据库或压缩数据库后,该表将消失
作者: fan0217    时间: 2006-4-2 22:58
用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
复制代码


作者: kennylee    时间: 2006-4-2 22:59
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

作者: qdjqx    时间: 2006-4-3 03:22
请问,kennylee,这段代码放在哪使用。谢谢。
作者: kennylee    时间: 2006-4-5 00:42
放在模块,在窗体设按钮

Private Sub Command0_Click()

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

End Sub

作者: maple99    时间: 2007-8-25 16:41
使用安全工作组来设置
作者: rjacky    时间: 2007-8-25 16:53
楼上的,拜托你不要对几年前的旧贴进行这种没意义回复的疯狂挖坟行为,好不?
作者: goto2008    时间: 2007-8-25 16:54
学习一下这个安全问题




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3