
いつもお世話になっております。
AccessVBAでコーディングを始めたのですが、
NULLの判定で分からない点がでてきました。
データベースより
If rs.Fields(0) = Null Then
Else
区分 = rs.Fields(0)
End If
この場合、rs.Fields(0)の中身がNULLの場合は
rs.Fields(0)のデータを入れるとエラーになるので
ELSEで逃がしたいのですが、
中身のデータがNULLにもかかわらずELSEの方を通ってしまいます。
If rs.Fields(0) Is Null Then
Else
シール = rs.Fields(0)
End If
こちらかとも思いましたが、オブジェクトが必要とエラーが返ってきました。
NULLをIF分で判定したい場合どのような記述を行えばよいでしょうか。
どうぞよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
Q、NULL値の判定?
A、IsNull()を使います。
http://office.microsoft.com/ja-jp/access-help/HA …
For Each fld In .Fields
With fld
C = C + 1
Select Case .Type
Case adBoolean ' ブール型
DataValues(R, C) = IIf(.Value = -1, "Yes", "No")
Case adChar, adVarChar ' 文字列型
DataValues(R, C) = Nz(.Value, "")
Case adDBDate, adDBTimeStamp ' 日付型、日付/時刻型
DataValues(R, C) = .Value
Case adSmallInt, adInteger ' 整数
DataValues(R, C) = FormatNumber(.Value, 0)
Case adSingle, adDouble ' 浮動小数点型
DataValues(R, C) = FormatNumber(.Value, 2)
Case adCurrency ' 通貨型
DataValues(R, C) = FormatCurrency(.Value, 2)
Case Else
DataValues(R, C) = .Value
End Select
End With
Next fld
Null値があれば何かと不便。
ですから、私は、列の型に応じて変換して代入しています。
なお、Nz()はIsNull()で書くこともできます。
V = IIf(IsNull(.Fields(0)), "", .Fields(0))
V = IIf(IsNull(.Fields(0)), 0, .Fields(0))
ありがとうございました。
質問以上のご回答頂き
勉強になります。
NULLの対処について今後是非とも参考にさせて頂きたいと
思います。
No.2
- 回答日時:
Access からしばらく遠ざかっているのでスパッと答えられませんが、
IsNull 関数で判定するのではなかったでしょうか?
If IsNull(rs.Fields(0).Value) THen
それと、Field オブジェクトの既定のプロパティは Value なので省略可能なのはわかりますが、
Value の評価なのかオブジェクト変数の評価なのかわからなくなるので
rs.Fields(0).Value と省略せずに書いたほうが良いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
このQ&Aを見た人はこんなQ&Aも見ています
-
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
ACCESSでフィールド名の変更(VBA)
Access(アクセス)
-
アクセスVBAのMe!と[ ]
Access(アクセス)
-
-
4
SELECT 商品.* FROM 商品 ORDER BY 品番 group by 品番;
Access(アクセス)
-
5
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
6
Do Until rs1.EOF であるレコードをスキップしたい
Visual Basic(VBA)
-
7
access vbaにてテンポラリーテーブルが作りたいです。
Access(アクセス)
-
8
ACCESS2003のグループ化のエラーについて
その他(データベース)
-
9
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
テキストボックス中の文字列の...
-
実行時エラー 3265「要求された...
-
Excelでフィルタをかけると警告...
-
エクセルのVBAの標準モジュール...
-
ASP レコードセットしたオブジ...
-
VBAで Set wb = Sheets(1).Cop...
-
VBAで既に開いている別アプリケ...
-
EXCEL VBA オートシェイプナン...
-
エクセルVBAで配列内に空白デー...
-
VBScriptからDLL参照設定したい
-
[VBA]CDOメッセージ送信エラー
-
Excel VBAでWordの複数ファイル...
-
CreateObjectとGetObjectの違い
-
ExcelVBAでのNZ関数について
-
Excel2007 VBA ラジオボタン Ca...
-
VBAについてです。 初心者です...
-
VBで引数にDictionaryオブジェ...
-
VBAからPDFファイルにパスワー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
VBAで既に開いている別アプリケ...
-
テキストボックス中の文字列の...
-
EXCEL VBA オートシェイプナン...
-
VBAで Set wb = Sheets(1).Cop...
-
ExcelVBAでのNZ関数について
-
[VBA]CDOメッセージ送信エラー
-
VBAからPDFファイルにパスワー...
-
エクセルVBAでcode128のバー...
-
VBScriptからDLL参照設定したい
-
VBAについてです。 初心者です...
-
エクセルマクロエラー「'Cells'...
-
オブジェクトが見つかりません
-
エクセルVBAで配列内に空白デー...
-
Excel VBAでWordの複数ファイル...
-
VBScriptでファイルの日時順(降...
おすすめ情報