|
>ただ、色の既定値に「""}と入れたのにもかかわらず、インポートするとフィールドの値がNUllとなってしまうようですが、これになにか対処方法はありますか?
原因は、CSVファイルにおいて、色フィールドの値がNullになっているので、
それをインポートしたテーブルの色フィールドの値もNullとなっている
ということではないかと思います。
既定値というのは、テーブルやフォームを開いてレコードを手入力するときに、
当該フィールドに何も値を入れていないときに表示される値のことです。
テーブルへのインポートは、レコードを新規に手入力することとは違うので、
既定値が効きません。
なお、対処方法は後述します。
>2)それから、何も入っていない商品マスター(テーブルB)の色フィールドのレコードすべてに「""」をいれました。
長さ0の文字列は、手入力では入力できないはずです。
これって、フィールドに格納されているのは、長さ0の文字列ではなく、
ダブルコーテーションマーク2字ではないでしょうか。
>Nullではなく長さ0の文字列に変更したのですがうまくいきません。
本当にNullを長さ0の文字列に変更したのでしょうか。
それを確認する必要があります。
インポート用テーブルや商品マスターの各色フィールドの空白が
長さ0の文字列なのか、Nullなのかを確認する選択クエリを作ります。
この選択クエリは、インポート用テーブルの場合にSQLで書けば、
SELECT 色
,Nz(色,"なる") AS 色Null
,Len(色) AS 色長さ
FROM インポート用テーブル;
となります。
このSQL文をコピーし、クエリのSQLビューに貼り付けて保存した後、
デザインビューで開いてどんなクエリになるか確認してみてください。
(なお、私は、クエリのデザインビューの使い方をよく知りません)
色フィールドがNullの場合、「色Null」フィールドには「なる」と表示され、
Nullでない場合は、色フィールドの値が表示されます。
色フィールドがNullでない場合、色フィールドに格納されている文字列の長さが
「色長さ」フィールドに表示され、
色フィールドがNullの場合、色長さフィールドには何も表示されないはずです。
インポート用テーブルだけでなく、同様にして商品マスターについても確認してください。
この検査によって、Null値があることがわかったら、Null値を長さ0の文字列に変えます。
長さ0の文字列は、手入力では入力できません。だから、更新クエリを使います。
この更新クエリは、インポート用テーブルの場合にSQLで書けば、
UPDATE インポート用テーブル
SET 色 = ""
WHERE 色 Is Null;
となります。
|
|