Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1081 / 2272 ツリー ←次へ | 前へ→

【8841】条件式の書き方 あおぎん 06/11/28(火) 16:06 質問[未読]
【8844】Re:条件式の書き方 飛ばない豚 06/11/28(火) 17:05 回答[未読]
【8850】Re:条件式の書き方 あおぎん 06/11/29(水) 10:58 質問[未読]
【8851】Re:条件式の書き方 飛ばない豚 06/11/29(水) 12:58 回答[未読]
【8861】Re:条件式の書き方 あおぎん 06/11/30(木) 8:29 お礼[未読]

【8841】条件式の書き方
質問  あおぎん  - 06/11/28(火) 16:06 -

引用なし
パスワード
   こんにちは。いつもお世話になっています。

あるフォームから追加クエリを実行する際、
入力漏れがないかチェックを行うため、
下のようなコードを書いています。

テキスト書込用費目選択が、”通学随時”か”新入学随時”か”修学旅行随時”のときに、テキスト書込用フリガナの入力が必須であるため、空欄の場合入力を促すメッセージが出るようにしたいのですが・・。

下の記述だと、書込用フリガナが空欄の場合、入力を促すメッセージが出るのですが、
フリガナを入力した後にもメッセージが出て次へ進めません。
And やorの使い方がおかしいのかなと思いますが、どこを修正したらよいのかよくわかりません。

解決方法をよろしくお願いします。

(Win2000 Access2000)

Private Sub コマンド52_Click()
On Error GoTo Err_コマンド52_Click
  If InputCheck() <> 0 Then
    MsgBox "入力されていない項目があります。", vbOKOnly, "入力もれ"
    Exit Sub
  End If
  
  If Me.書込用費目選択 = "通学随時" Or Me.書込用費目選択 = "新入学随時" Or Me.書込用費目選択 = "修学旅行随時" And IsNull(Me.書込用フリガナ) Then
    MsgBox "生徒名を入力してください。", vbOKOnly, "確認"
    Me!書込用フリガナ.SetFocus
    Exit Sub
  End If

  Dim stDocName As String

  stDocName = "Q_T_給付予定への追加クエリ"
  DoCmd.OpenQuery stDocName, acNormal, acEdit

Exit_コマンド52_Click:
  Exit Sub

Err_コマンド52_Click:
  MsgBox Err.Description
  Resume Exit_コマンド52_Click
  
End Sub
――――――――――――――――――――――
Private Function InputCheck() As Integer
  '入力もれがないかをチェックします。
  '入力もれがあったときは0以外の数値を返します。
  Dim ans As Integer
  
  ans = 0
  If IsNull(Me.フレーム89) Then
    ans = -1
  End If
  If IsNull(Me.振込年月日) Then
    ans = -1
  End If
  If IsNull(Me.書込用費目選択) Then
    ans = -1
  End If
    
  InputCheck = ans
End Function

【8844】Re:条件式の書き方
回答  飛ばない豚  - 06/11/28(火) 17:05 -

引用なし
パスワード
   ▼あおぎん さん:
> If Me.書込用費目選択 = "通学随時" Or 〜〜
>   MsgBox "生徒名を入力してください。", vbOKOnly, "確認"
>   Me!書込用フリガナ.SetFocus
>   Exit Sub
> End If

 If Me.書込用費目選択 = "通学随時" Or _
   Me.書込用費目選択 = "新入学随時" Or _
   Me.書込用費目選択 = "修学旅行随時" Then
   If IsNull(Me.書込用フリガナ) Then
     MsgBox "生徒名を入力してください。", vbOKOnly, "確認"
     Me!書込用フリガナ.SetFocus
     Exit Sub
   End If
 End If

としてみて下さい。(^・ω・^)

【8850】Re:条件式の書き方
質問  あおぎん  - 06/11/29(水) 10:58 -

引用なし
パスワード
   ▼飛ばない豚 さん:
おはようございます。
回答ありがとうございました。
ご提示の方法でできました!
ありがとうございました。

あと一つ質問させてください。

同じように、
費目が"学1"等であった場合でフリガナが入力されていたら、
注意を促すメッセージを表示させたいのです。

下のように書いても動いたのですが、
null値でないという意味で、isnotnull(me!書込用フリガナ)
というような記述方法もありですか?
どこかで見たので使ってみたのですが、エラーになります。
もしご存知でしたら教えてください。

If Me!書込用費目選択 = "学1" Or Me!書込用費目選択 = "学2" Or _
  Me!書込用費目選択 = "学3" Or Me!書込用費目選択 = "通学" Or _
  Me!書込用費目選択 = "新入学" Or Me!書込用費目選択 = "修学旅行" Then
   If Me.書込用フリガナ Like "*" Then
   MsgBox "生徒が指定されていますがいいですか。", vbOKOnly, "確認"
   Me!書込用フリガナ.SetFocus    
   End If
End If

【8851】Re:条件式の書き方
回答  飛ばない豚  - 06/11/29(水) 12:58 -

引用なし
パスワード
   ▼あおぎん さん:
>null値でないという意味で、isnotnull(me!書込用フリガナ)
>というような記述方法もありですか?

Not IsNull(me!書込用フリガナ)

で良いです。

【8861】Re:条件式の書き方
お礼  あおぎん  - 06/11/30(木) 8:29 -

引用なし
パスワード
   ▼飛ばない豚 さん:

おはようございます。
回答ありがとうございました!

1081 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078205
(SS)C-BOARD v3.8 is Free