プロが教えるわが家の防犯対策術!

質問させていただきます。
Access2000を使用しております。そこで、フォームを利用してデータを入力するのですが、金額(通貨型)項目に、小数第2位まで入力する必要があります。テーブル、フォームの「小数点以下表示桁数」をそれぞれ ”2”に設定しました。これで入力すると、たとえば ”10.556” と入力すると ”10.56”と四捨五入されるのですが、実際にテーブルを見ると”10.556”で入力されています。
そこで質問ですが、フォームで入力するときに小数以下は2桁しか入力できないようにするにはどのようにすれば良いのでしょうか?3桁以上入力するとエラーを出せればベストです。よろしくお願いします。

A 回答 (3件)

フィールド名=金額、データ型=通貨型、「標準」タブの


「入力規則」にFix([金額]*100)=[金額]*100をいれて、20例ぐらいテストでやって見たんですが、上手く行きます。小数点3位以下があれば、100倍したものと
小数点以下捨てたものと合わなくなることを利用。
1.234-->左辺123、右辺123.4
123<>123.4という理屈です。エラーが出て
受けつけません。
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
早速試してみました。これならだいじょうぶです。ありがとうございました。

お礼日時:2002/11/26 13:03

こんにちは。

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桁にする。

などです。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
方法3が理想的ですね。ありがうございました。

お礼日時:2002/11/26 13:07

こんにちは、ats8181oyajiです



>テーブル、フォームの「小数点以下表示桁数」をそれぞれ ”2”に設定

僕も同じように設定しましたが、
テーブル、フォームともちゃんと2桁表示になりますよ?


プログラムで処理するのでしたら
イベントの更新前処理にエラー処理を入れてあげます

では

この回答への補足

早速の回答ありがとうございます。
ご指摘のように表示は2桁になるのですが、この方法では3桁以上入力できます。もちろん注意して2桁入力すれば良いのですが・・・。
3桁以上入力すると見た目は2桁なのですが、テーブルで目的のデータの金額項目をダブルクリックすると実際に入力した値が出てきます。
フォームやレポートでこのデータを表示すると、3桁目で四捨五入されてしまいます。そんな訳で絶対に3桁以上入力できないようにしたいと思い、質問させていただきました。

補足日時:2002/11/26 11:26
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A