2014-02-07 42 views
2

有點麻煩。我有一個簡單的情況:2單選按鈕,接受或拒絕。我沒有做IF語句,而是有義務去做Select語句。選擇與單選按鈕的案例 - 有空值的問題

當我遍歷我的代碼時,它會轉到Case rdbApprove.Value並且抱怨值爲null。我認爲這不是真的,因此它應該轉到下一個案例。不是 - 它掛在它爲空的事實上。

爲了試圖擺脫空值,我嘗試了NZ(rdbApprove.Value,False)來試圖告訴它它是錯誤的,但仍然不起作用。

Select Case True 
    Case rdbApprove.Value 

    Case rdbReject.Value 

    Case Else 
     MsgBox "ERROR!" 

End Select 
+0

你爲什麼覺得要做Select語句?你的代碼看起來有點奇怪 - 通常在Select Case中,選擇的值是一個運行時確定的值,可能的選項是常量;你的代碼有其他方面的東西。就我個人而言,我只是一個簡單的「If」陳述而已。 –

+0

不應該打開或關閉單選按鈕,並且不應該只關心批准按鈕是否打開?那麼,如果說'if(rdbApprove)then blahblah end'if – bf2020

回答

3

通常的做法是將您的單選按鈕包含在選項組中。然後你的代碼可以引用選項組.Value

我的形式包括2.

我也命名Frame15,其包括其選項值是1的「批准」單選按鈕和「拒絕」按鈕,其選項值的選項組添加一個命令按鈕來檢查選項組.Value。這是它的點擊事件過程。

Private Sub cmdOptionValue_Click() 
    Dim strPrompt As String 
    Select Case Me.Frame15.value 
    Case 1 
     strPrompt = "approved" 
    Case 2 
     strPrompt = "rejected" 
    Case Else 
     If IsNull(Me.Frame15.value) Then 
      strPrompt = "Null" 
     Else 
      strPrompt = "this should not happen" 
     End If 
    End Select 
    MsgBox strPrompt 
End Sub 
+0

+1,因爲你的回答是正確的,但是代表49K +的代表我會期望比「Frame15」更好的東西。來吧,夥計! ; o) –

+0

Woot!你是對的;我不會那樣做「真實」。 ;-) – HansUp