- ベストアンサー
アクセスで数値型のフィールドにNullをいれたい
初歩的な質問ですが、お願いします。 データベースを用いたWebアプリケーションを作成中ですが、数値型のフィールドで、 どうしても空白になってしまう部分があります。 入力フォームが空欄だと、エラーになってしまいます。 明示的にNull値の入力を許可するように設定する、というところ までは調べてわかったのですが、具体的にはどのように したらよいのでしょうか? VBAなどを使わないとダメですか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
詳しい補足ありがとうございます。 mei0311さんが補足に書かれましたように、フィールドプロパティの規定値をNullにすれば大丈夫そうですね。 ですが、規定値を空欄にしても、入力エラーは出ませんでした(Access上の入力ですが)。 念のため確認させて頂きますが、DBに書き込みに行く際にフォームの入力内容をチェックして、「空欄だと何も書かない」というようにプログラムされていますよね? 数値型のフィールドに、プログラム的にNull文字列を書き込もうとエラーが出たような気がするのですが…(かなり過去の記憶ですのでイマイチ自信がありません)。
その他の回答 (1)
- k-pix
- ベストアンサー率51% (50/98)
ご質問内容は、「Webの入力フォームが空欄の状態で、DB(Access)に書き込みに行くとエラーになる。」ということでしょうか? もしそうだとしますと、Accessで予め数値型のフィールドプロパティの値要求を「いいえ」にしてもダメでしょうか? また、ご質問の意図とは異なりますが、数値型のフィールドをテキスト型にしてしまい、必要に応じて数値として扱う、などの「逃げ」の手ではダメでしょうか? 当方、特に詳しいわけではないのですが、ご質問に興味がありましたので回答させていただきました。 的外れな意見でしたらご容赦ください。
補足
ご回答ありがとうございます。 はい、以前はすべてのフォームが必須項目でしたので、フォームが空欄の場合は書き込みが出来ないように入力画面に戻る設定にしていました。なので、問題がなかったのですが、今回項目が増えて、しかも登録時にはまだ数字が確定していない、もしくはずっと空欄のままでもよい、というように修正したいとのことでつまずいています。値要求は空欄もあるとのことで「いいえ」にしています。 初めは数値型のフィールドの「設定値」が「0」になっていて、(初期設定)、フォームが空欄の場合は0で登録できていました。しかし、未決定なだけで、値は「0」というわけではないので、ここを空欄にしたら、エラーが出るようになってしまったのです。もしかしたら、ここの「設定値」をNullにしたらうまくいくのかもしれません。今、補足を書いていて、気付きました。それを試してみて、もしダメでしたら、やはりテキスト型にして、数値で検索する、などのときは数値に変換するというのも、ありですね。ありがとうございます。なんとかなりそうです。
お礼
k-pixさん、こんばんは。 今日、初めから落ち着いてやりなおしてみました。 1.フィールドのデータ型は数値型。 2.規定値を0ではなく、空欄にする。 3.入力フォームが空欄の時は書き込みをしない。 これで、ASPのプログラムで正常に動きました。 初歩的なミスでした。色々と一緒に考えてくださって、 ありがとうございました。 大変助かりました。
補足
ご心配の通り、フォームが空欄でも書き込みにいってしまっていました(汗)。それで、数値型のフィールドのところで、「データ型が違います。」とエラーになっていました。空白は文字列になってしまっていたんですね。空白とNullの違いがよくわかっていませんでした。規定値をNullにし、書き込みを""からNullに変更したら大丈夫でした。たぶん、"Null"とダブルクオーテーションでくくるとまた、文字列になってしまって、エラーになるんだと思います。プログラムを変更したり、アクセスを変更したりして、どこが悪いのか訳わからずになってしまいました。初めから空欄は何もしない設定にしていたら、こんなに焦らなくてもよかったのですが・・・。アドバイス、ありがとうございます。またよろしくお願いします。