2017-08-04 88 views
1

我有一個VBA模塊,它查看Access控件並僅選擇acTextBox或acCheckBox的控件。但是,在我的If語句中,我遇到了一個邏輯故障,應該只允許acTextBox = 109和acCheckBox = 106控件通過,但它現在讓標籤通過,控制值爲100,如您在即時窗口中看到的那樣。怎麼回事?Im stumped ..它工作,如果我刪除「或acCheckBox」,但允許標籤通過時,我包括它,即使標籤不是複選框。損壞的VBA控制邏輯

這是一個問題,因爲它稍後會給我一個錯誤。

乾杯

Code

For Each ctl In frm.Controls Debug.Print ctl.Name 
    With ctl 
    Debug.Print ctl.ControlType 
    'Avoid labels and other controls with Value property. 
    If .ControlType = acTextBox Or acCheckBox Then 
     If .Value <> .OldValue Then 
+0

'acTextBox或者acCheckBox'等同於'109或106'這是Ë相當於'111'。如果你在代碼中包含你的代碼,我們可以告訴你如何通過複製/粘貼你的代碼來修復它,然後編輯它,但是我肯定不會從頭開始輸入你的代碼。 – YowE3K

回答

4

更換你行

If .ControlType = acTextBox OR acCheckBox Then 

與此

If (.ControlType = acTextBox) OR (.ControlType = acCheckBox) Then 
+2

你很善良 - 當他們只是給出問題中的代碼圖片時,我通常會堅持讓他們用實際代碼替換它,然後再給他們提供工作代碼。 :D(圖片很難搜索引擎索引,這使得一個非常貧窮的問題。) – YowE3K

+0

已驗證。此外,上傳的代碼用於索引目的。愛這個社區。 @ YowE3K –

+0

我沒有看到使用圖片的後果。感謝您的解釋。 –