2017-03-07 52 views
0

隱藏列我有我的主要形式上的兩個按鈕。其中一個是用戶記錄反饋,另一個是讓我進入併爲該反饋添加註釋/狀態更新。這兩個按鈕在拆分窗體視圖中打開相同的窗體。我想隱藏特定的列,當用戶點擊他們的按鈕與我點擊管理按鈕。我曾嘗試:這兩個按鈕打開相同的形式,形式開設了一個公衆Sub但是之前被稱爲該布爾變量爲true(用於用戶按鈕)或假(爲我的按鈕)。然後,當加載過程觸發時,它會檢查變量值,並嘗試隱藏列或不嘗試。下面是該代碼:在拆分表格的MS Access

Option Compare Database 

Public booFeedback    As Boolean 

Public Sub FeedBackBoolean1() 
booFeedback = False 
End Sub 


Public Sub FeedBackBoolean2() 
booFeedback = True 
End Sub 

然後當窗體本身加載運行這段代碼:

Private Sub Form_Load() 

Call cmdRemoveFilter_Click 
If booFeedback = False Then 
    Me.colPriority.ColumnHidden = True 
    Me.colWorkEffort.ColumnHidden = True 
    Me.colStatus.ColumnHidden = True 
    Me.colDeliveryDate.ColumnHidden = True 
    Me.colStatusComments.ColumnHidden = True 
Else 
    Me.colPriority.ColumnHidden = False 
    Me.colWorkEffort.ColumnHidden = False 
    Me.colStatus.ColumnHidden = False 
    Me.colDeliveryDate.ColumnHidden = False 
    Me.colStatusComments.ColumnHidden = False 

End If 
End Sub 

代碼運行正常不過的結果不顯示(即我尋找隱藏的列沒有正確隱藏)。我發現,如果我進入設計模式,然後關閉並保存,下次運行代碼時,代碼將正常工作。但是,如果我點擊其他按鈕,那麼結果與上次運行結果相同。另外,我在管理員按鈕上放置了僞密碼,以便沒有人可以點擊進入它。到目前爲止,不擔心安全問題,將會走上正軌。

回答

0

對於起動器,可以簡化代碼,不需要如果那麼否則:

Me.colPriority.ColumnHidden = Not booFeedback 
Me.colWorkEffort.ColumnHidden = Not booFeedback 
Me.colStatus.ColumnHidden = Not booFeedback 
Me.colDeliveryDate.ColumnHidden = Not booFeedback 
Me.colStatusComments.ColumnHidden = Not booFeedback 

現在調試,設置斷點,什麼是執行過程中booFeedback的價值?如果不符合預期,請查看代碼邏輯。馬上,如果booFeedback和這兩個潛艇是在一個通用模塊中,我沒有看到失敗的原因。

我會簡單地打開形式和代碼形式背後一個按鈕(可以消除公衆的變量和潛艇),這將決定用戶是否管理員授權和顯示/隱藏字段作適當。可以有一個存儲Windows用戶ID和權限級別的用戶表。然後代碼可以從系統中檢索用戶Windows ID並匹配記錄在表中。或者可以硬編碼管理員用戶ID。通過以下方式檢索Windows用戶標識:Environ(「USERNAME」) - 是的,輸入與此完全相同。

booFeedback = ENVIRON( 「USERNAME」)= 「adminWindowsUsername」

這是拆分數據庫設計?導航窗格是隱藏的嗎?功能鍵是否被禁用,用戶無法展開窗格?右鍵單擊快捷菜單是否被禁用?你是否(也許是用戶)知道在打開數據庫時覆蓋這些項目設置的Shift鍵繞過?

+0

HI月, 謝謝您的回覆!我確實設定了一個斷點,並且每次都正確評估booFeedback。代碼儘可能運行,但窗體仍然顯示不正確。此外,我知道Shift旁路等,但在這一點上,我們不太關心安全性。截至目前,它正在分發給一個小組。它也將以ACCDE形式分發。希望將這個項目從Access中解放出來,然後最終遷移到一個Web應用程序(至今我還沒有什麼知識)。對於現在的打法是讓應用程序相當簡單 – Chuck0185

+0

我做了你的建議的編輯,絕對縮短了代碼,但還是同樣的問題。當我打的用戶按鈕,它的塊中的字段,但後來當我回去打管理員按鈕等領域仍形式加載時受阻。然後,如果我進入設計模式,然後保存並關閉,然後點擊管理按鈕,字段不再被阻止。然後我關閉窗體返回並點擊用戶按鈕,這些字段仍然沒有被阻止。看起來它與設計模式有關? – Chuck0185

+0

我在拆分和數據表視圖中做了一些表單實驗。該代碼與數據表形式很好地工作,但拆分形式將不合作。我認爲分裂形式的本質是不可能的,其他討論的研究支持這一結論。這裏是一個https://access-programmers.co.uk/forums/showthread.php?t=200972 – June7