質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

3回答

11803閲覧

Access テキストボックスに入力できる数値を範囲指定したい。

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2019/07/25 02:13

##質問内容
管理システムを作成しています。
伝票を入力するときに、テキストボックスで数値を入力するテキストボックスがあるのですが、そこで入力できる桁数、範囲を0 ~ 999,999,999,999 で制限したいです。

ちなみにそのテキストボックスは割引額を入力するもので、入力規制を行っているので数字と"-"の符号以外は入力できないようになっています。(バックキーは使用可)
書式は、標準です。

数値自体を無限に入力できるのを防ぐための処置です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

入力フォームは連結フォームですか、非連結フォームですか。
(レコードソースにテーフルまたはクエリが設定してあれば連結)

連結なら、テーブルのフィールドプロパティで「入力規則」プロパティを設定するのが確実です。

入力規則を使ってデータ入力を制限する - Access

そこで、設定しておけば、フォームからの入力でも、テーブルに直接入力でも、規則に外れたデータは入力できません。

設定例

プロパティ設定値
入力規則Between 0 And 999999999999
エラーメッセージ0以上999,999,999,999以下の数値を入力してください。

複雑な入力チェックなら、テキストボックスの更新後処理ですることになりますが、この程度ならこの方法がシンプルかつ確実です。

非連結フォームなら、テキストボックスの入力規則とエラーメッセージのプロパティで同様に設定することが可能です。

投稿2019/07/25 05:16

編集2019/07/25 07:22
hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

範囲を0 ~ 999,999,999,999 で制限したいです。

マイナス記号を入力させる必要がないと思います。
あるいは、-999,999,999,999までありでしょうか?

桁数以外は設定済みという前提なら、単純に文字数をカウントするのが手っ取り早くないでしょうか。
値が正なら12桁ですが、マイナス入力の場合は最大13桁になりますので、先に正か負かで判定分けしてください。

正規表現を使った方法なら、以下が参考になるでしょうか。
VBAで正規表現や関数を使った入力チェックを行い、Accessに新規レコードを追加、保存するには

もし、TextBox.Changeイベントなどで処理できるようであれば、ユーザーに対して比較的リアルタイムにエラーメッセージを表示できると思います。
TextBox.Changeイベント

投稿2019/07/25 03:46

Secret

総合スコア220

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

更新前処理(BeforeUpdate イベント)で範囲チェックを行って、範囲外ならCancel = Trueとすることで、入力を無効にできます。

投稿2019/07/25 02:34

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問