我正在創建一個非常簡單的 Access 資料庫,其中包含一個表和相應的表單。對于表單上的一些問題,我想禁用以下問題,或者使用分支邏輯隱藏它們。
例如,在我的表格中,我有一個組合框問題,詢問:你是吸煙者嗎?- “是”、“否”、“不想回答”。下面的問題是:如果是,您多久吸煙一次?如果他們為第一個問題選擇了“否”或“不想回答”的答案,那么我不希望第二個問題可見/啟用。
我一直在尋找一種方法來做到這一點,最簡單的方法似乎是設定文本框的 Visible 屬性“如果是,你多久吸煙一次?” 到不。在那之后,我去問“你是吸煙者嗎?” 并轉到“屬性”選單中的“事件程序”??。這將打開一個帶有以下文本的 VBA 代碼編輯器:
Option Compare Database
Private Sub Text969_Click()
End Sub
Private Sub Combo367_Click()
End Sub
我一直在查看不同的頁面,但似乎無法讓代碼正常作業。對于我要問的特定問題,表格的名稱是“慢性吸煙者”,第一個問題的欄位名為“你是吸煙者嗎”。第二個問題被命名為“如果是,多久一次”。這是我一直在嘗試的代碼,但它不起作用,但我似乎無法弄清楚其他任何事情:
Option Compare Database
Private Sub Text969_Click()
End Sub
Private Sub Combo367_Click()
If Chronic Smokers.Combo367='Yes' then
Chronic Smokers.If yes, how often.Visible = True
Else
Chronic Smokers.If yes, how often.Visible = False
End if
End Sub
我認為我的部分問題是我不知道此代碼的命名約定或語法的作業方式。我感覺問題的一部分是我的名字中有沒有下劃線的空格如果有人可以幫助我解決這個問題,我將非常感激!
uj5u.com熱心網友回復:
VBA 代碼可以像Me.[how often].Visible = Me.Combo367 = "Yes". 否If Then Else需要。代碼需要在組合框更新后以及表單當前事件中,而不是單擊事件。代碼將應用于所有控制實體,而不僅僅是當前記錄。
注意:使用Me限定符是表單/報告物件代碼落后的簡寫。
如果您更喜歡使用If Then Else,正確的語法應該是:
With Me
If .Combo367 = "Yes" Then
.[how often].Visible = True
Else
.[how often].Visible = False
End if
End With
建議您探索條件格式。它允許在沒有 VBA 的情況下為每條記錄動態啟用/禁用文本框和組合框。控制元件仍然可見,但“灰顯”。
是的,強烈建議不要在命名約定中使用空格或標點符號/特殊字符(下劃線除外),也不要使用保留字作為名稱。如果您這樣做,請[ ]按照上圖所示附上。更好的命名是ChronicSmokersand HowOften。并為物件賦予比 Access 分配的默認值更有意義的名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/425170.html
上一篇:如何進行表單驗證,然后在vue.js中提交表單?(沒有插件)
下一篇:使用CSS內部帶有放大鏡的搜索欄
