Microsoft Access 掲示板

パラメータの入力値によって #Name? という表示になる件

2 コメント
views
5 フォロー

いつもお世話になっております。
久しぶりの相談をさせて頂きます。

Win10Pro
Office365BusinessAccess

在庫集計のシステムを構築してます。

「F_取引先別在庫集計_メイン」というメインフォームに表形式のサブフォーム「F_取引先別在庫集計_サブ」を埋め込んでおります。
サブフォームのソースは以下の4つのクエリです。

Q_取引先別リスト
Q_取引先別在庫集計_一覧
Q_取引先別在庫集計_期間指定
Q_取引先別在庫集計_繰越

上記4つのクエリのパラメータを「F_取引先別在庫集計_メイン」に配したテキストボックス「年月」に入力した値で指定するようにしています。
プロパティーで規定値に「=FFormat(Date(),"yyyy/mm")」にしてます。

テキストボックス「年月」の更新後処理のイベントプロシージャには以下のコードを記載してます。

Private Sub 年月_AfterUpdate()
 Me.F_取引先別在庫集計_サブ.Form.Requery
End Sub

この状態で「年月」にありえない数値を誤入力した時(例えば"2020/45")に以下のようにサブフォームに#Name?と表示されデバックの標記が出ます。
画像1
画像1
画像1

ランタイム上では当然ここで強制終了となります。

このように誤った値を入力した場合、エラー終了とならず、サブフォーム上データがない状態に表示されるようにするにはどこをどうすればよいでしょう?
いろいろ試してはみたものの答えが見えず途方に暮れている次第です。

どうぞご教示のほどよろしくお願いいたします。

SUSUMU
作成: 2020/02/20 (木) 15:08:20
通報 ...
1
hiroton 2020/02/20 (木) 17:02:49 dbf30@f966d

誤った値を入力した場合に、処理を継続し、データがない状態を表示することは必要ですか?
テキストボックス「年月」の書式に「yyyy/mm」と設定してしまえばありえない数値の入力は防げます(ありえない数値を入力するとエラーが発生し入力が確定できなくなります)

2
SUSUMU 2020/02/22 (土) 07:37:59 1a64f@9d2f0

hirotonさん
コメントありがとうございます。

目的は、誤入力でエラー状態になると、プログラムが停止してしまう事を回避する事です。
おっしゃる通り誤入力を防ぐという手段でも回避は可能ですね。
早速設定しましたら、ありえない年月の入力はできなくなりエラー回避できるようになりました。
とりあえずこれで運用できそうです。

どうも、ありがとうございました。