Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
空白のときメッセージボックスを出したい
投稿日時: 18/10/12 20:55:56
投稿者: dimkm

メニューフォームに非連結のテキストボックス(コード入力、名前確認)とボタン(出勤)があります。
コード入力ボックスに3桁の数字を入力すると、名前確認ボックスにDlookup関数で名前を表示され
確認をしています。
名前を確認後、出勤ボタンを押すと、F打刻データフォームにコード日付時間を入力し、メニューフォームのテキストボックスを空白にしています。
空白のまま出勤ボタンが押された時のために、コード入力ボックスが空白だとメッセージボックスが出るようにしていますが
動作するときとしないときがあります。
メニューフォームを立ち上げ直後はメッセージが出ますが、正常に入力が行われた後は空白でもメッセージが出ません。
何か必要な処理があれば教えていただけますでしょうか?
宜しくお願いいたします。
 
Private Sub コマンド11_Click()
 
  If IsNull(Me!コード入力.Value) Then 'コードを入力せずに、出勤ボタンを押したとき
   MsgBox "スタッフコードを入力してください。"
   Exit Sub
  End If
 
  DoCmd.OpenForm "F打刻データ" '出勤ボタンを押すとF打刻データ開く(新規レコードにフォーカス)
                                                                                                                     
   DoCmd.GoToRecord acDataForm, "F打刻データ", acNewRec
             
                    Forms!F打刻データ!コード = Me!コード入力 'コード入力
                     
                    Forms!F打刻データ!日付出 = Date
                    Forms!F打刻データ!出勤 = Time()
                     
                    DoCmd.RunCommand acCmdSaveRecord
                     
                    Me!コード入力 = ""
                    Me!名前確認 = ""
 
End Sub

回答
投稿日時: 18/10/15 09:34:18
投稿者: Suzu

正常という事は、
 

引用:
Me!コード入力 = ""
が実行されているのでは?
 
その状態で
引用:
If IsNull(Me!コード入力.Value) Then
は、どんな判定になるでしょうね。

投稿日時: 18/10/15 11:07:50
投稿者: dimkm

Suzuさん  ありがとうございます。
 
Me!コード入力.Value = Null
とすると、うまく行きました。
 
””とnullを区別が問題でしょうか?
 

回答
投稿日時: 18/10/15 11:52:29
投稿者: Suzu

””とnullを区別が問題でしょうか?
 
ここで日本語の論議をしてもしょうがないので。。
 
 
空白文字列 ""
スペース " "
Null
Empty
 
テキストボックスの表示としては、「見えない」と言う意味では変わりませんが、それぞれ役割が違います。
 
非連結であれば、問題にはならないでしょうが
連結フォームの既存レコードの文字列フィールドに対しての操作の場合には
理解しておく必要があるでしょう。
 
 
【NullとEmptyとNothingと空の文字列の違い】
http://www.moug.net/tech/acvba/0050010.html
 
【Access の Null 値と、長さ 0 の文字列の違いについて】
https://support.microsoft.com/ja-jp/help/883247

投稿日時: 18/10/15 12:10:01
投稿者: dimkm

助かりました!
ありがとうございました。