- ベストアンサー
Accessで小数点以下を切り捨てたいんですが
今Accessでデータベースを扱っているんですが、小数点以下を切り捨てる方法を教えて欲しいのです。調べてみると、MicrosoftAccessプロジェクト(.adp)に適用可能な関数(floorなど)は見つかるんですが、私が今扱っているのはMDBファイルですので、適用できないようです。 ですから、MDBファイルにも使える切り捨ての方法があれば、ぜひ教えてください。よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> もし解決策などありましたら、教えて頂けないでしょうか? 明示的に型を変換しましょう。 結果: CLng(Fix([A] / [B])) のように。
その他の回答 (5)
- COBOL_17
- ベストアンサー率0% (0/3)
以下はすでに試されているのでしょうか? 答え = int(少数含む) 答え = Int(2.3456) 答えは2になります
お礼
ご返答頂き有難うございます。ご指摘いただいたintなのですが、既に試し済みですね。Accessの画面上では整数になるのですが、テキストファイルにエキスポートすると、小数のまま出力されてしまうのです。
面白いので試してみました。 テキスト形式でエクスポートすると 計算結果、整数型、文字型、浮動小数点型 1.00, 1, "1", 1.00 上記のようになりました。結論から云えば、一度整数型に格納してからエクスポートすると良さそうです。しかし何がやりたいんでしょうか?エクセルで整形すれば済むような気もしますが。
お礼
ご返答頂き有難うございます。 確かに一旦エクセルで修正すれば上手くいきますね。実はその事は質問を提示した後の、試行錯誤しているときに気づいたんです…。 しかし、Accessだけで処理できればそれに越したことはありませんので、引き続きアドバイスを頂いております。
- mchamomile
- ベストアンサー率20% (27/133)
#No.1です。 エクスポートの仕方に問題がありそうな気がしますね。 どのようにエクスポートして、何でエクスポートしたファイルを開いたか教えていただけますか? ※おそらく、Fix()ではなく、#No.2の方のRound()でも、同じエクスポートの仕方だと同じ結果になると思います。
お礼
返事が遅れてしまって申し訳ありません。 エクスポートの仕方ですが、Accessを開き、クエリのアイコン上で右クリックをすると現れる"エクスポート"の項目をクリックして、テキストファイルにエクスポートする、という形になります。 テキストファイルはメモ帳で開きました(特に理由はありません)。 少し調べてみたんですが、関数での切り捨てはあくまでAccess上で表示に対するもので、実際にデータが切り捨ての形になっている訳では無いという話を聞きました。
Public Const 四捨五入 = 0 Public Const 切り捨て = 1 Public Const 切り上げ = 2 Public Function Rounds(ByVal M As Currency, ByVal A As Integer, Optional D As Integer = 0) As Variant Rounds = Sgn(M) * Fix(Abs(M) * 10 ^ D + Abs((A = 0) * 0.5@ + (A = 2) * (Int(M * 10 ^ D) <> (M * 10 ^ D)))) / 10 ^ D End Function 標準モジュールに上記の記号定数と関数を追加して下さい。 [イミディエイト] ? Rounds(2.111, 1, 2) 2.11 ? Rounds(2.111, 1, 1) 2.1 ? Rounds(2.111, 1, 0) 2 ? Rounds(2.111, 1) 2 ? Rounds(2.111, 切り捨て) 2 このように利用します。 なお、Rounds()は、切り上げ、四捨五入も可能な関数です。
お礼
回答して頂き有難うございました。まずは先に回答して頂いた方の、Fix関数をまず試してみたいと思います。参考にさせて頂きます。
- mchamomile
- ベストアンサー率20% (27/133)
Fix関数を使ってみてください。
お礼
回答頂き有難うございました。Fix関数を使ってみたところ、上手くいった模様なんです。しかし、また新たな問題が発生してしまいましたので厚かましいお願いではありますが、もし宜しければ回答を頂ければと思います。 新たな問題なんですが、作成したクエリをテキスト形式でエクスポートすると、Fix関数を使った数値も小数表記になってしまうのです。切り捨ては行われている様で、小数点以下は全て「.00」となっています。Access上では、整数表記されているので、原因は不明です。もし解決策などありましたら、教えて頂けないでしょうか?よろしくお願いします。
お礼
ご返答有難うございます。CLngという関数(?)は初めて聞きました。早速試してみようと思います。 有難うございました。