web-dev-qa-db-ja.com

アクセスフォームフィールドでNullを確認し、Nullでない場合は、追加機能を呼び出します

私はこの単純なアクセスフォームを持っています。フォームに入力してビジネスユニットフィールドに入力するのを忘れると、msgBoxがポップアップしてその旨を通知し、setFocusをそのコンボボックスに設定します。 nullでない場合は、次の機能を呼び出します。このコードの最初の部分は機能しますが、notNullの場合は続行されません。

 Private Sub Image_AddNon_RPS_Button_Click()

 If IsNull(Me.BU_Selected_Add) Then
    MsgBox "Please Select a Business Unit!", vbOKOnly
            Exit Sub
         End If
    Me.Combo_BU_Selector.SetFocus
    Exit Sub
If Not IsNull(Me.BU_Selected_Add) Then
    Call Add_RPS_LINE
        End If
End Sub

誰かが私が左翼手で完全にどこにいるのか見ていますか?

3
T-Rex

追加のExit Sub(最初のMsgBoxの後のもの)があり、コードが目的の処理を実行できなくなります。また、最初のEnd Ifが間違った場所にあります。

代わりに次のようなものを試してください。

Private Sub Image_AddNon_RPS_Button_Click()

  If IsNull(Me.BU_Selected_Add) Then                     ' No business unit 
      MsgBox "Please Select a Business Unit!", vbOKOnly  ' Tell user 
      Me.Combo_BU_Selector.SetFocus                      ' Focus the control
      Exit Sub                                           ' Exit the method
  End If                                                 ' End the IsNull test

  Call Add_RPS_LINE      ' You only get here if the above doesn't execute
End Sub

IfEnd Ifに視覚的に一致するようにコードを適切にインデントすることを学ぶと、それらがどこに並んでいるか(一致しているか)、どこに一致していないかを確認できます。 :-)

6
Ken White