- ベストアンサー
Accessで小数の入力について
- Access2000を使用しており、フォームを利用してデータを入力する際に、小数第2位までの入力が必要です。しかし、フォームで入力すると小数第3位以降も入力できてしまう問題があります。
- 設定した小数点以下の表示桁数は正しく機能しており、入力された値は四捨五入されますが、テーブルを見ると元の値が保存されていることが確認できます。
- フォームで入力する際に小数以下は2桁までしか入力できないようにするには、入力制限を設定することが必要です。入力制限を設定すると、3桁以上の入力があった場合にエラーが表示されるようになります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
フィールド名=金額、データ型=通貨型、「標準」タブの 「入力規則」にFix([金額]*100)=[金額]*100をいれて、20例ぐらいテストでやって見たんですが、上手く行きます。小数点3位以下があれば、100倍したものと 小数点以下捨てたものと合わなくなることを利用。 1.234-->左辺123、右辺123.4 123<>123.4という理屈です。エラーが出て 受けつけません。
その他の回答 (2)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 いくつか方法があります。 方法1.定型入力 定型入力で、 「99999.99」 などとすれば、小数点以下を2桁までに制限出来ます。 ただし、整数部分の最大桁数を決めなければいけないのと、整数のみの入力で少ない桁数の場合に、半角スペースで補わないといけないという問題があります。 方法2.イベント処理 入力するテキストボックス(仮にテキスト0とする)の変更時イベントに、次のようなコードを書きます。 Dim temp As String '入力値 Dim p As Long '"."の位置 temp = Me!テキスト0.Text p = InStr(1, temp, ".") If p > 0 Then If Len(Mid(temp, p + 1)) > 2 Then MsgBox "小数桁数オーバー" Me!テキスト0.Text = Left(temp, p + 2) End If End If ただし、この場合は、小数点(.)が2度入力されたらなどの問題があるので、さらに詳細に入力チェックを記述する必要があります。 方法3.入力は出来るが使用しない 3桁以上入力しても、四捨五入して2桁までを使用するということにしておく。 テーブル上のデータは3桁以降も持つが、計算や表示では2桁しか使わない。 もちろんデータを書き出したり、プリントアウトしたりする場合も、2桁にする。 などです。
お礼
早速の回答ありがとうございます。 方法3が理想的ですね。ありがうございました。
- ats8181oyaji
- ベストアンサー率38% (94/244)
こんにちは、ats8181oyajiです >テーブル、フォームの「小数点以下表示桁数」をそれぞれ ”2”に設定 僕も同じように設定しましたが、 テーブル、フォームともちゃんと2桁表示になりますよ? プログラムで処理するのでしたら イベントの更新前処理にエラー処理を入れてあげます では
補足
早速の回答ありがとうございます。 ご指摘のように表示は2桁になるのですが、この方法では3桁以上入力できます。もちろん注意して2桁入力すれば良いのですが・・・。 3桁以上入力すると見た目は2桁なのですが、テーブルで目的のデータの金額項目をダブルクリックすると実際に入力した値が出てきます。 フォームやレポートでこのデータを表示すると、3桁目で四捨五入されてしまいます。そんな訳で絶対に3桁以上入力できないようにしたいと思い、質問させていただきました。
お礼
回答いただきありがとうございます。 早速試してみました。これならだいじょうぶです。ありがとうございました。