本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[ACC1]四捨五入の計算方法

文書番号: 402836

最終更新日: 2001/01/23


この資料は以下の製品について記述したものです。

この記事は、以前は次の ID で公開されていました: JP402836

概要

この資料は、指定した通貨型のデータを特定桁数で四捨五入するサンプル プロシージャについて説明しています。

現象

プロシージャを作成する

  1. データベース ウィンドウでモジュール ボタンを選択し、<新規> ボタンを押します。
  2. [編集] メニューから [新規プロシージャ] コマンドを選びます。
  3. 表示されたダイアログ ボックスの [種類] オプションで "Function" を選び、[名前] テキスト ボックスにこれから定義する関数名を入れます。下のサンプルではユーザ-定義関数名として "Round" を入力します。
  4. プロシージャの定義内容は、次のサンプルを参考にしてください。
         -------------------------------------------------------------------------
         Option Compare Database
         ------------------------
         Function Round (X As Currency, s As Integer) As Currency
         Dim t As Currency             ’変数の宣言をします。
         t = 10 ^ Abs(s)               ’ Abs 関数で s の絶対値に 10 を掛けます。
         If s > 0 Then                 ’ s > 0 の時は、
           Round = Int(X*t + 0.5) / t  ’ Int( X * t  + 0.5 ) / t の値を返します。
         Else                          ’ s <= 0 の時は、
           Round = Int(X/t + 0.5) * t  ’ Int( X / t +0.5) * t の値を返します。
         End If
         End Function                          ’プロシージャを終了します。
         --------------------------------------------------------------------------
    
  5. 記述後はモジュールを保管します。
作成したサンプル プロシージャは、次のような機能を持っています。

Round(<数値>,<桁数>)

機能:<数値> を四捨五入して指定した <桁数> にします。
  • <桁数> に 0 を指定すると、<数値> はもっとも近い整数へ四捨五入されます。
         例: Round (2.149, 0) = 2 ------ 小数点第 1 位以下で四捨五入し、
                                          整数にします。
    
  • <桁数> に正の数を指定すると、<数値> は小数点以下で四捨五入されます。
         例: Round (2.149, 1) = 2.1 ---- 小数点第 2 位以下で四捨五入し、小数点
                                          第 1 位迄の数値にします。
              Round (2.149, 2) = 2.15 --- 小数点第 3 位以下で四捨五入し、小数点
                                          第 2 位迄の数値にします。
    
  • <桁数> に負の数を指定すると、<数値> は整数部分で四捨五入されます。
          例: Round (152.03, -1) = 150 -- 1 の位以下を四捨五入します。
               Round (152.03, -2) = 200 -- 10 の位以下を四捨五入します。
    

注 意

<数値> は通貨型の数値を入力してください。
通貨型は 15 桁の整数部分と 4 桁の小数部分を持つ固定小数点数です。

■作成したプロシージャをフォーム上で利用する

作成したプロシージャは、フォーム上のテキスト ボックスで利用することができます。

非連結テキスト ボックスの場合

  1. フォームをデザインビューで開きます。
  2. 非連結のテキスト ボックスをマウスでクリックし、[表示] メニューの [プロパティシート] コマンドを選択し、テキスト ボックスのプロパティ シートを表示します。
  3. 非連結のテキスト ボックスの [コントロールソース/ControlSource] プロパティに、下記の式を設定します。
            = Round ( [価格], 1)
    
    この式は、フォームのレコードソースの [価格] フィールドのデータを小数点以下第 2 位で四捨五入し、小数点以下第 1 位までの数値をテキスト ボックスに表示します。

■連結テキスト ボックスの場合

  1. データベース ウィンドウから マクロ ボタンを選択し、<新規作成> ボタンをクリックしマクロを新規作成します。
            [マクロ 1] マクロ
             アクション           アクションの引数
             ----------------     -------------------------
             値の代入             アイテム:[価格]
                                  式      :Round([価格],1)
    
  2. マクロ名を指定し、マクロのデザインビューを閉じます。
  3. フォームをデザインビューで開きます。
  4. 連結の [価格] テキスト ボックスをマウスでクリックし、[表示] メニューの [プロパティシート] コマンドを選択し、テキスト ボックスのプロパティ シートを表示します。
  5. [価格] テキスト ボックスの [更新後処理/AfterUpdate] プロパティに、上記 2.で作成したマクロ名を設定します。
    マクロ 1
  6. フォームをフォームビューで表示し、[価格] テキストボックスにデータを入力すると、入力したデータを小数点以下第 2 位で四捨五入し、小数点以下第 1 位までの数値をテキスト ボックスに表示します。

詳細

本文に関する操作についての詳細は、次の参照先の説明をご参照ください。
  • モジュールの操作について
         『 Microsoft Basic プログラミング ガイド』
         第 1 部 Microsoft Basic とモジュール ウィンドウ ............... P1 ~ P8
    
  • ユーザ定義関数の作成方法と作成した関数の利用について
         『 Microsoft Basic プログラミング ガイド』
         第 2 部 新しい関数の作成 ...................................... P9 ~ P17
    
  • サンプル内で使用した関数、ステートメント他
         Microsoft Access リファレンス ガイド』
              Abs 関数 ................................................. P277
              Int 関数 ................................................. P353
    
  • フォーム コントロール プロパティの設定について
         『 Microsoft Access ユーザーズ ガイド』
         第 3 部 フォーム 9 フォームの作成/コントロールプロパティの設定 ..
                                                                      P260 ~ P263
    

Keywords: 800 access Down J014491 KBHOWTO ROUND Up WXJ 四捨五入 KB402836
Technology: kbAccessSearch

inserted by FC2 system