2011-05-10 134 views
1

使用Access 2003 MDB,是否有一个固有的MDB属性,我们可以设置为禁止或阻止对象导出?换句话说,假设MDB为“A”和“B”。如果我在“B”并尝试从“A”导入对象(即文件|获取外部数据|导入),我们希望它失败,因为“A”已设置某些属性来锁定其导出对象的功能。Access 2003 MDB属性

+0

我不确定,但可能会创建一个在执行此操作之前执行事件的宏? – 2011-05-10 18:51:57

回答

0

在“保持诚实的人诚实”,一个简单的方法,将工作对我来说的标题...

打开后端数据库MDB“独家”并在其上放上一个口令。 (虽然普通的开放模式将被共享。)随后在前端,密码数据库中的链接表必须重新链接。这样做,Access需要密码。这些表格现在可以在前端完全使用。

现在,当我们对现在密码良好的数据库进行任何操作时,不管是简单地打开它,还是从其中导入对象或链接到其中的表格,都需要密码。这种'封锁'就足以满足我的要求。

0

刚才有一个非常类似的问题。在我的情况下,我想保留用户的后端密码,因为那里有非常少量的敏感数据(并且我不希望他们太容易搞乱其他东西)。

特别是我不希望他们有任何访问权限,或者至少是尽量减少他们获得对此表的读取/写入权限的机会。

幸运的是,只需要很短的时间此表,所以,当我需要它,我使用一些代码的链接添加到表的后端数据库,使用该表,然后删除链接后它完成了。

添加表的代码:

Dim db As Database, tbl As TableDef 
Set tbl = New TableDef 
With tbl 
    tbl.Name = "SecretTable" 
    tbl.SourceTableName = "SecretTable" 
    tbl.Connect = "MS Access;PWD=BackendPassword;DATABASE=c:\location of database\Backend.mdb" 
End With 
Call db.TableDefs.Append(tbl) 

的代码删除该表已被使用后:

Dim db As Database 
Set db = CurrentDb 
Call db.TableDefs.Delete("SecretTable") 

这工作在我的情况,因为该表是只是简单地使用。如果它是一张不断使用的桌子,聪明的用户可能会绕过它。