フォームを作っていてわからないことがあります。
フォーム上のテキストボックスAを空白にすると値はNULL
となり、
テキストボックスAの値でテーブルのフィールドB(値は1つのみ)を更新すると、
フィールドの値はNULL
になります。
逆に、テーブルのフィールドBの値を削除してNULL
にした後、
フィールドBの値をテキストボックスAに代入すると
テキストボックスAの値はNULL
になります。
テキストボックスAは他の処理に利用されているのですが、
テキストボックスAの値がNULLだとエラーとなります。
そこで、エラーがでないようにする処理として、
1)フィールドBからテキストボックスAに読み込む際に
フィールドBがNULL
の場合、テキストボックスAに
長さ0の文字列を設定するようにするか、
2)テキストボックスAを空白にした場合に、
フィールドBにNULL
が設定されないように処理するか、
どちらにすればよいでしょうか。
(追記)
テキストボックスAは連結テキストボックスではありません。
テキストボックスAがNULLだとエラーになる処理は
「文字表示」プロシージャの引数として textboxA を指定した場合、
「文字表示」プロシージャに処理が移る前に、
「実行時エラー94 Nullの使い方が不正です。」
と表示されて、プログラムが止まります。
Private Sub 文字表示(表示文字 As String)
MsgBox (表示文字)
End Sub
tableC
項目名 | 備考 |
---|---|
10月分 | |
11月分 | 延期 |
-
textboxA = DLookup("備考", "tableC", "項目名='10月分'")
-
textboxA内の文字を全部消します。
その後、クエリにて
UPDATE tableC SET 備考=textboxA WHERE 項目名 IN ('10月分');
で、データを書き込みます。
(10/30 16:43 追記)
皆様ご解答ありがとうございます。
NULL対処の方法が分かりました。(NZ関数使用・Variant型使用)
textboxAとtableCからはNULLが出てくる可能性があり、textboxはA以外にも複数あり、いずれのtextboxも「文字表示」プロシージャを呼び出すので、NULL対処の処理は一行書くだけで済むよう、「文字表示」プロシージャの引数をVariant型にしようと思っています。
プログラムの基本からするとこの対処法が望ましい、というのはありますでしょうか。よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー