2012-07-04 27 views
1

我目前正在Microsoft Excel上构建一个基于VBA的应用程序。禁用用户查看ActiveX控件属性Excel(VBA)

我使用简单的ActiveX控件来获取用户ID /密码。问题在于用户可能通过查看activeX标签的“属性”来查看密码的值

有没有什么办法可以阻止用户激活“设计”模式并查看文本框的值直接?或者有没有更好的方法在系统上存储凭据?我使用文本框的原因是因为它们对于用户来说更简单(您可以保存该值,因此您可以在将来使用该程序,而无需再次输入用户名/密码),并且维护起来很简单(不需要表格/弹出窗口)

谢谢你的帮助。

这是如何在片材的样子(使用ActiveX控制)的ID /密码盒

的问题是,用户可以看到密码文本框的值,如果它们打开设计模式 - >属性

+0

我有些困惑,如果用户可以保存密码,那么拥有该文件的任何人都可以在没有密码的情况下访问系统。无论他们是否可以激活设计模式 – Pynner

+0

感谢您的回复。没错,因为即使访问(登录id/pw),用户也只能“查看”要提取的某些数据(因为vba代码受密码保护)。 人们获取ID/PW的问题是他们可以使用它与其他程序(例如SQL Server Management Studio)连接到SQL Server并执行其他任务(例如截断/删除表)以及查看其他表用当前的excel应用程序无法访问。 对不起,我可以用图片更好地解释,但我做不到,因为我没有足够的声望呢.. – Antoni

回答

0

我会创建一个UserForm来处理用户名/密码系统。通过在VBA IDE中将表单的'Visible'属性设置为'xlSheetVeryHidden',表单可以将用户名和密码保存到非常隐藏的表单中。除非您进入VBA IDE并更改可见属性,否则不能取消隐藏该表。

Sheet visibility property

当窗体被打开时,从对片两个范围加载数据。您可以将名称范围名称设置为在名称管理器中隐藏,以防您关心用户输出范围名称并将值放入单元格中。

唯一能够知道单元格区域名称以及在哪里访问它们的人将是那些可以访问VBA代码的人。所以用密码保护它,它会像在Excel中一样安全,至少在我看来是这样。

安全在任何情况下都是相对的。数据的安全性取决于数据的重要性。如果仅仅是为了防止人们搞乱他们不应该做的事情,那么简单的安全措施就没有问题。如果它是高度机密的数据,那么您不应该允许用户保存密码。可能是用户名,但不是密码。

+0

感谢您的回复。你的解决方案似乎可行。我会考虑这样做;)但无论如何,我只是想知道我们是否可以将视图属性函数锁定在Excel中。 – Antoni