
AccessからExcelへエクスポート時に小数点以下の桁数がおかしくなります。
59.20
118.40
118.40
77.70
49.20
↓↓↓↓↓
59.20000076
118.4000015
118.4000015
77.69999695
49.20000076
の様になってしまいます。
以下エクスポート処理です。
StrSQL = "SELECT MaxSize FROM SizeTabel" ←本当はかなり長いSQL
Set QueryTemp = CurrentDb.CreateQueryDef("ExportSQL", StrSQL)
DoCmd.SelectObject acQuery, "ExportSQL", True
DoCmd.TransferSpreadsheet acExport, 8, "ExportSQL", Application.CurrentProject.Path & "\test.xls", False, ""
CurrentDb.QueryDefs.Delete ("ExportSQL")
Format関数で桁数を調整したりはしたのですが、精度が必要な為、原因を追究したいと考えています。
アドバイスよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
空のデータベースを1つ作り
テーブルの新規作成(デザインビュー)
で適当なテーブルを1つ作ります
KEY,フィールド名,データ型
■,id, オートナンバー
□,data, 数値型(単精度浮動小数点型、少数点以下桁数=15)
で、dataに以下を入力
59.20
118.40
118.40
77.70
49.20
その後、テーブルのデザインビューで
□,data,数値型を
倍制度浮動小数点 に変更してテーブルを見ると
data
59.2000007629395
118.400001525879
118.400001525879
77.6999969482422
49.2000007629395
これと同じ事が、EXCEL か ACCESS の
自分で修正できないような内部の処理のどこかで
行われています。
原因は、そういう事です
参考URL:http://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.s …
アドバイスありがとうございます。
現在は
Format関数をあててみたのですが、
Excelエクスポート時に左寄せになってしまいます。
また、Round関数では、数値はまったく変わりませんでした。
何か良い方法をご存知ないですか?
No.2
- 回答日時:
Access側では、データ型が単精度の数値型ということのようですね。
#1の方の内容を参考にすると、Excel側ではそれが倍精度に拡張されたようですね。或いは、Access側で拡張してからエクスポートされたのかもしれないが。
浮動小数点数には誤差がつきものなので、普通は問題にしません。精度は保持されているし(少なくとも単精度分の精度は)。
でも、入力データが59.20だから、これをそのまま表示したいと言う気持ちも分かります。
単なる表示上の問題ならExcel側で小数点以下の桁数を2にすればよいでしょう。
表示上でなく、データそのものを正確に59.20にしたいと言うことなら浮動小数点数は使えませんので、例えば、100倍した値の5920を整数型で保持すると言うことになるでしょう。この場合、このデータは使用する時点で100で割ることになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessデータをテキスト変換する時、小数点以下の桁数が切れてしまう
Excel(エクセル)
-
Microsoft Access エクスポート時の「通貨型」数値の小数点表示について
Access(アクセス)
-
アクセスのテーブルからエクスポートした際のケタ落ち
Access(アクセス)
-
-
4
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
5
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
6
access テキストボックスの値取得
Access(アクセス)
-
7
Access→Excelへエクスポートすると日付の表示形式が変化する
Excel(エクセル)
-
8
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
9
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
10
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
11
アクセスのデータ型。数値型についてお聞きしたいのですが・・・
Access(アクセス)
-
12
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
13
Access ¥マークを表示しない
Excel(エクセル)
-
14
ODBCリンクの際にACCESSでは読み取り専用にしたい!
Oracle
-
15
ACCESS側からEXCELの書式を設定するには?
Visual Basic(VBA)
-
16
「#エラー」の回避
Access(アクセス)
-
17
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
18
Access2010 「演算子がありません」エラー
その他(データベース)
-
19
テーブルに小数点以下の値を入れたい場合
Access(アクセス)
-
20
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
VB.NETでのAccessテーブルリンク
-
エクセルのテーブルを解除する...
-
オートナンバー型を変換したい
-
手動または分散トランザクショ...
-
[C#] DataGridViewでコンボボッ...
-
VB.NET データセットとADOレコ...
-
「テーブルに主キーがありませ...
-
ACCESSでクエリの中身が表示さ...
-
ACCESS2010 実行時エラー 2766
-
VBとアクセスでSQL文に変...
-
Access2003VBA リンクテーブル...
-
(泣)VBscriptでinnerhtmlを使...
-
ASP.NET GridView 一致した行の...
-
Excel複数シートをaccessへ一括...
-
VB.NET データセットのEXCELへ出力
-
ロケールに対応するストリング...
-
AccessからExcelへエクスポート...
-
VB.NETからAccess内のデータベ...
-
オラクルデータベースへの更新方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
SQLを発行とは?クエリの作成と...
-
VBとアクセスでSQL文に変...
-
手動または分散トランザクショ...
-
COBOLのINVALID KEYが理解でき...
-
[C#] DataGridViewでコンボボッ...
-
AccessからExcelへエクスポート...
-
ACCESS2010 実行時エラー 2766
-
エクセルのテーブルを解除する...
-
★クリスタルレポートの元になる...
-
CSVファイルのエクスポートでソ...
-
ExcelVBAからAccessMDB内のテー...
-
VB.NETでのAccessテーブルリンク
-
他のMDBのテーブルに追加したい
-
Access2007でアプリケーション...
-
アクセステーブル、リンクとロ...
-
html javascriptにてWeb SQLを...
-
DataGridViewに複数テーブルの...
-
Accessのフォームでリス...
-
更新時の「同時実行エラー」の対策
おすすめ情報