• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2010 VBAによる空白欄の判定)

Access2010 VBAによる空白欄の判定

このQ&Aのポイント
  • VBA勉強中の初心者です。本を片手に自分でコードを記述してみましたが思った動作をしてくれません。
  • チェックボックスをクリックした際に、規則名欄が空白の場合はエラー処理を避けるために改めて空白を入力し、ID欄が空白の場合は自動で連続した番号を入力するようにしています。
  • 新規レコード作成の画面にてチェックボックスをクリックすると、第一の条件式での判定は問題ないのですが、第二の条件式で名前欄もID欄も空白だとしてもElseの処理となってしまいます。条件式が間違っているのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> その内容は、 > 「実行時エラー'2465' >  指定した式で参照されている'1'フィールドが見つかりません。」 > となり、DMax関数の式が黄色で表示されます。 とりあえず下記の式を試してみてください。 Me.制定規則台帳ID = Nz(DMax("制定規則台帳ID", "copy制定規則台帳_tbl")) + 1 '既存のIDの一番大きな数字+1で入力 また、下記の一行は不要ですので、削除してください。 Me![制定規則台帳ID].Requery

ryoza0130
質問者

お礼

hatena1989 様 ご回答ありがとうございます。 全て上手く動作いたしました。 Nz関数。。。 まだまだ分からないことばかりです。 もっと勉強していかなくてはなりませんね。 本当に助かりました。 ありがとうございました。

その他の回答 (1)

回答No.1

テキスト型の場合、デフォルトの設定では、未入力の初期値は ""(空文字列)ではなく Null です。 NullはIsNull関数で判定します。下記のように変更すればいいでしょう。     If IsNull(Me.制定規則台帳ID) Then 'かつ、ID欄が空白ならば     If IsNull(Me.規則等名.Value) Then 'かつ、規則名欄が空白ならば       Me.規則等名.Value = Null 'Nullを打ち込む Null と "" は見た目では判別がつかないので、Nullだけ許容する、または、""だけ許容する、のどちらかの設定にしておいた方が混乱がないでしょう。 Nullだけ許容する設定は、フィールドプロパティで下記のように設定します。 値要求 いいえ 空文字列の許可 いいえ

ryoza0130
質問者

補足

hatena1989様 ありがとうございます。 無事に空白の判定が出来るようになりました! ですが、また別な問題が・・・ こちらも教えていただけたらありがたいです。 ご指摘いただいた部分を修正したところ、無事に空白の判定は出来たのですが、空白の場合にIDを自動入力する部分でエラーが出てしまいます。 その内容は、 「実行時エラー'2465'  指定した式で参照されている'1'フィールドが見つかりません。」 となり、DMax関数の式が黄色で表示されます。 関数で指定している、フィールド名とテーブル名は間違いないのですが、どこか引数が間違っているのでしょうか。 ご教示よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう