Access VBA質問箱 IV

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

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


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

【13060】空白を<>""で回避出来ない理由について roy 16/8/16(火) 23:25 質問[未読]
【13061】Re:空白を<>""で回避出来... hatena 16/8/17(水) 3:30 回答[未読]
【13062】Re:空白を<>""で回避出来... roy 16/8/17(水) 7:26 お礼[未読]

【13060】空白を<>""で回避出来な...
質問  roy  - 16/8/16(火) 23:25 -

引用なし
パスワード
   はじめまして。
accessVBAの質問になります。よろしくお願いします。
rs.EDIT
IF NOT ISNULL(Me.テキストBOX) or Me.テキストBOX <> "" Then rs!テキスト = nz(Me.テキストBOX)
rs.update
をすると空白がスルーされエラーになります。

仕方なしに
IF ISNULL(Me.テキストBOX) or Me.テキスト = "" Then
else
rs!テキスト = Me.テキストBOX
end if
と記載してますが、=なら空白を検知するのに<>""で空白がスルーされる理由わかる方いらっしゃいませんか?
Trimをつかったりnzを使ったりしてますが、解消されません。皆様はDAOで書き込む際にどの様にされているのでしょうか…

【13061】Re:空白を<>""で回避出...
回答  hatena  - 16/8/17(水) 3:30 -

引用なし
パスワード
   >と記載してますが、=なら空白を検知するのに<>""で空白がスルーされる理由わかる方いらっしゃいませんか?


Null を含む比較や演算の結果は Null になります。

Me.テキストBOXがNullのとき、
Me.テキストBOX <> ""
はNullになります。
IsNull(Me.テキストBOX) はTrueになりますが、
NOT ISNULL(Me.テキストBOX) or Me.テキストBOX <> ""
は、Not True Or Null となり結果はNullです。

If 条件式 Then では、条件式がTrueの時に実行されますので、Nullではスルーされます。

If 条件式 Then
  処理1
Else
  処理2
End If

上記で条件式がNullのときは、処理2が実行されます。


> 皆様はDAOで書き込む際にどの様にされているのでしょうか…

テキストBOXが Null または "" の時に実行したい場合は、私の場合下記のにようにします。


If Nz(Me.テキストBOX,"") = "" Then
  処理
End If


あるいは、

If Me.テキストBOX = "" Then
Else
  処理
End If

【13062】Re:空白を<>""で回避出...
お礼  roy  - 16/8/17(水) 7:26 -

引用なし
パスワード
   なるほど!
分かりやすい解説で、私も理解出来ましたm(__)m
ありがとうございます。

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