AccessのVBAでSQLのFIX関数を使い指定した小数桁で切り上げる|フォーム実行例

切捨てと同様に、FIX関数を使用し切り上げを行います。

例えば、小数点以下2桁の場合は下の流れになります。
1) 数値に0.09を加算します
2) 10倍します
3) FIX関数を使い、整数部を取り出します
4) 10で割ります
これで切り上げができます。



BackHome BackSQL Tips

サンプルソフト

■実行画面
小数点以下、1桁、2桁、3桁を順に実行した結果です。
「数値:切り上げ値」の形式になっています。
切り上げ実行フォーム

■実行結果
6.5321: 7
3.85165: 4
1.36665: 2

6.5321: 6.6
3.85165: 3.9
1.36665: 1.4

6.5321: 6.54
3.85165: 3.86
1.36665: 1.37

■コード
Option Compare Database

'小数点以下2桁
Private Sub コマンド62_Click()
    Dim SQL As String
    Dim rs As Recordset
    Dim i As Long
            SQL = "SELECT 重量,FIX((重量+0.09)*10)/10  FROM M_製品マスター"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & rs(0) & ": " & rs(1) & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing

End Sub

'小数点以下3桁
Private Sub コマンド63_Click()
    Dim SQL As String
    Dim rs As Recordset
    Dim i As Long
            SQL = "SELECT 重量,FIX((重量+0.009)*100)/100 FROM M_製品マスター"

    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & rs(0) & ": " & rs(1) & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing

End Sub

'小数点以下1桁
Private Sub コマンド8_Click()
    Dim SQL As String
    Dim rs As Recordset
    Dim i As Long
            SQL = "SELECT 重量,FIX(重量+0.9) FROM M_製品マスター"

    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & rs(0) & ": " & rs(1) & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub

サンプルソフトのダウンロード


BackHome BackSQL Tips

Copyright(C) FeedSoft