什麼是限制用戶訪問的最佳/最簡單的方式取決於您首先允許他們訪問的應用程序的哪些方面。
從你的情況和描述看來,你的宏實際上是在執行數據表的更新/操作,而你的用戶通過表單訪問這些數據?對於大多數應用程序來說,這是理想的技術,因爲您可以將整個表格顯示在窗體中,但在窗體的設計選項中,您可以自定義視圖並訪問用戶具有的功能。
如果您使用這種技術讓用戶通過表單訪問數據,則可以非常容易地限制用戶操作表中數據的能力,而無需使用任何VBA進行干預。如果您對Access的使用經驗有限,我認爲您可以使用可通過屬性菜單更改的表單選項修改此訪問權限。這也會阻止你修改你的表單來擁有「has模塊」屬性。
爲了使只讀您只需將
- 打開表單
- 開關進行控制,佈局視圖或設計視圖
- 打開屬性表(您可以在任何修改屬性)表單域(通過設計功能區中的屬性頁按鈕)
- 選擇要設置的字段只讀
- 在屬性頁的數據選項卡中有一個名爲「鎖定」的屬性。將此屬性切換爲「是」
這將使得用戶無法更改字段! (從這個表格)
選項二:
如果您想讓您的用戶只查看在普通數據表視圖(而不是一種形式)的表格,你可以讓他們通過它使用「OpenTable的」宏開(數據庫對象列表)並將數據模式設置爲「只讀」。重要提示:這會讓用戶無法編輯任何字段!如果您需要他們能夠編輯其他字段,則不能使用此選項。
HansUp的解決方案: 重要的是要注意(因爲你是新用戶) 要使用此VBA,你將需要在該表格的屬性表中的以下變化:
- 選擇「表格」作爲對象
- 改變「內含模塊」屬性(屬性表的其他選項卡上)「是」
而且我沒能找到一個簡單的方法來對錶Current屬性。另一種方法是使用「On Got Focus」(在「事件」選項卡中)通過他建議的VBA過程將該文本框的屬性設置爲「已禁用」。
酷,男人! VBA似乎非常方便,但這樣一個遙遠的夢想...... – matt