作成日:2024年07月19日
値を正しく入力させる(1)


どうも、にゃん太です
開発したカスタムアプリを配布したら、思わぬトラブル発生!
原因を調べると、想定外の入力値が原因だった、何て事もあります
今回のメモでは、トラブル回避の為の入力値を制限する方法について書いていきます
数値欄に文字列を入力
タイプを数字としたフィールドを使用する事は多いと思います
通常、数値を入力する為に使用すると思いますが、数値以外の入力も受け付けてしまいます

この場合、計算上は0として扱われますし、検索でもブランクと同様の扱いとなりますので、問題になる事は多くありません
但し、文字列として連結した場合は「未定」の文字として扱われるのに対し、このフィールドをエクスポートするとブランクとして出力されるなど、扱いに若干の差異がある点には注意が必要です
数値欄に計算式を入力
冒頭で挙げたように数値入力欄に数字と文字列を含む入力をすると、問題となる場合があります

「20/4」は「204」という数値として扱われるため、入力者が想定する計算結果と実態が大きく乖離してしまいます
数値欄の入力制限
対応としては、入力を数字に制限するのが簡単でしょう

これで、計算結果に悪影響を及ぼすような入力を防ぐ事ができます
但し、上記設定では確認メッセージで許可すると入力できてしまいます

確実に防ぐ必要がある場合は、「データの入力時にユーザによる上書きを許可する」のチェックを外すと、確認メッセージで許可する事ができなくなります

数値欄のその他の制限
先ほどの制限では数値以外の入力制限ですが、数値の範囲などを制限する事もできます
計算式で制限
数値 = Int ( 数値 )
入力値と入力値を整数化した値が一致する必要があるので、実質整数しか入力できなくなります
但し、「1.0」の様な入力はできてしまうので、それも防ぎたければ文字列として比較する事で対応できます
計算式で制限
Exact ( 数値; Int ( 数値 ) )
他には、年齢入力などであれば、下限を「0」、上限を「150」の様にすれば、あまりに逸脱した入力は弾くことができます
長くなったので、今回はここまでとします
値を正しく入力させる(2)へ続きます
ちなみに、イメージイラストの解答は下記の通りです


以上で今日のメモ書きは終了です
内容はいかがでしたか?
もしご意見やご要望、誤りの指摘などありましたら、下記フォームよりお気軽にご連絡ください