12

特定のコンボボックスがnullの場合、データが含まれている場合はコードの特定の部分を実行し、別の部分を実行するifステートメントをコーディングしようとしています。私はこれを書きました:

Private Sub ProjectAddSetDateAutoBtn_Click()
If ProjectAddAllDueDateAutoCmBx = Null Then
'Code1
Msgbox("ComboBox Is Null")
Else
'Code2
Msgbox("ComboBox Has Data")
End If
End Sub

コンボボックスをデータなしのままにしておくと、if の最初の部分のコードも 2 番目の部分のコードも実行されません! ボックスにデータを入力すると、if ステートメントの 2 番目の部分が完全に実行されます。エラーはありません。私はこれにかなり困惑しています。ComboBoxes には独自の「Null」がありますか? この if 文に問題はありますか?

4

5 に答える 5

21

Null と等しいものはなく、別の Null でさえありません

IsNull()を使用して、コンボ ボックスが Null かどうかを確認します。

'If ProjectAddAllDueDateAutoCmBx = Null Then
If IsNull(ProjectAddAllDueDateAutoCmBx) = True Then
于 2013-11-12T12:41:31.550 に答える
4

= NullNull が伝播するため、比較を使用して目的の結果を取得することはできません。これを実際に確認するには、次を試してください。

? Null = Null

イミディエイト ウィンドウで Null が返されることがわかります。期待どおりに true または false を返す IsNull 関数を使用します。

Private Sub ProjectAddSetDateAutoBtn_Click()
If IsNull(ProjectAddAllDueDateAutoCmBx) Then
'Code1
Msgbox("ComboBox Is Null")
Else
'Code2
Msgbox("ComboBox Has Data")
End If
End Sub
于 2013-11-12T12:42:20.797 に答える