范圍內非常簡單的問題。
問題: 想知道我是否能夠根據表格欄位的值隱藏表格的選項卡。
我一直在閱讀 2019 Access Bible,到目前為止,我仍然不清楚如何撰寫 VBA 模塊以使其不斷運行。我在嘗試的早期就問了這個問題,但希望我能很好地問這個問題以搶占先機。
我還不太了解 VBA 的訪問執行模型。我有以前的編碼經驗,但這將是我第一次訪問。只是尋找有關如何撰寫函式范圍的一些幫助。您在下面看到我認為它應該是“主要”的東西,因為我希望它在表單視圖中隨時運行。就像我知道如何撰寫私有子函式來回應按鈕單擊一樣。但不適用于僅在表單后臺運行的功能。
我想真正的問題是何時執行?正確的?有什么建議?
我正在考慮以下內容。
Main function()
If Me.FieldProcess_Water = "1" Then
Me.TabProcess_Water.Visible = True
Else
Me.TabProcess_Water.Visible = False
End If
End Sub

uj5u.com熱心網友回復:
這需要一些設定來減少冗余代碼,但應該做你想做的。
首先,您需要復選框名稱和頁面名稱相似。在我的示例中,頁面名稱為 Tab_Name,復選框僅為名稱。例如。Tab_Process Water 和 Process Water。
然后創建一個Form_Current()在表單的代碼隱藏中呼叫的子程式。
Private Sub Form_Current()
Dim chk As Control
For Each chk In Me.Controls
If chk.ControlType = acCheckBox Then
If chk = False Then
'Change TabCtl0 to whatever your's is called
Me.TabCtl0.Pages("Tab_" & chk.Name).Visible = False
Else
Me.TabCtl0.Pages("Tab_" & chk.Name).Visible = True
End If
End If
Next
End Sub
這將遍歷當前記錄的復選框并切換其各自選項卡的可見性。

要讓 CheckBox 在單擊選項卡時更新它們:
Private Sub Form_Load()
Dim chk As Control
Dim prop As Variant
For Each chk In Me.Controls
If chk.ControlType = acCheckBox Then
chk.OnClick = "=Check_Click()"
End If
Next
End Sub
這將為每個復選框分配一個命令。
Dim caller As String
caller = Me.ActiveControl.Name
If Me.ActiveControl.Value = False Then
Me.TabCtl0.Pages("Tab_" & caller).Visible = False
Else
Me.TabCtl0.Pages("Tab_" & caller).Visible = True
End If
這將隱藏相關選項卡。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/433081.html
