2012-07-04 44 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