次の方法で共有

AccessからエクスポートしたExcelファイルで、値(残高)が異なる事象が発生。

Anonymous
2021-12-29T06:11:46+00:00

AccessからエクスポートしたExcelファイルで、値(残高)が異なる事象が発生します。
Accessから金額項目含むテーブルのデータを、Excel出力したが、Excel出力した結果が以下のように異なって出力されます。
・Accessで表示されている金額は450,857,853,821なのに対し、Excel出力したファイルでは450,361,785,098.31と表示されている。
・Excel出力は、[外部データ]タブ-Excelから、Excel出力しており、出力ファイル形式は「Excel 97-2003ブック(*.xls)」形式で行っている。 また、Excel出力する拡張子を変更(.xlsx) したが、事象変わらず。
・Excel出力した残高には小数点以下が含まれる(最後に「.31」と付与されている)。
・Windows7 Office2010端末、Windows Server2012 R2 Standard Office2016端末それぞれで発生。

・毎回発生するわけではなく、直近で発生したのは12/27、10/26のデータであり、データは毎日異なる値(レコードが日々追加)が還元される。エクスポート作業は毎日実施している。

・SQLServer2016内のデータを、ODBCリンクテーブルにより参照している。

原因調査にあたり、どういった点を確認すれば良いでしょうか。

ご教授いただけますでしょうか。

Microsoft 365 と Office | Excel | ビジネス向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

3 件の回答

並べ替え方法: 最も役に立つ
  1. Makapu 92,110 評価のポイント ボランティア モデレーター
    2021-12-30T05:45:02+00:00

    検証ありがとうございます。

    Accessにおいて、特定の値において、Excelにエクスポートすると異なるといったことがあるのでしょうか。

    ご助言いただきました作業用テーブルを作成してからExcel出力しても事象が変わらないところをみると、SQLServerとの関連性は低いように思えます。

    検証いただいた結果から、Access のテーブルに格納されたデータを Excel に出力する時の問題の様ですね。

    特定の値で Excel に出力すると値が異なる事象については存じ上げないのですが、更に次の事を検証してみてはいかがでしょうか。

    1. 新規データベースを作成して、該当の作業テーブルを新規DBにインポートして、新規DB から Excel に出力した場合はどうか。
    2. 新規データベースを作成して、テスト用に新規テーブルを作成し、同じ値を手入力して、新規DB から Excel に出力した場合はどうか。
    3. 環境面から、Access の修復・再インストールを行ってみてはどうか。
    4. 可能であれば、他のパソコンから同様の操作を行った場合はどうか。

    後は、Windows 7、Access 2010 ともサポートが終了しているので、そいういった事も関係しているかもしれませんね。。。

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2021-12-30T04:06:32+00:00

    早速のご返信ありがとうございます。

    >たとえば、すでに作成済みのクエリを利用して、一部条件を変えてDBの抽出などを行った後、クエリを「条件を変えた状態で保存」していないと、直近で保存した条件でエクスポートされることがわかりました。

    なので、抽出条件などを作成した段階で一度クエリを保存してから、エクスポートしてください。

    これでうまくいきます。

    情報のご提供ありがとうございます。

    発生している事象は、添付いただいたリンク先と異なり、過去に設定した抽出条件(別の日付)の値がエクスポートされるものとは異なり、特に関連性がない(今まで抽出したことがない)値がエクスポートされる事象です。

    >「最後に「.31」と付与されている」との事ですが、他の正常な時は小数点以下は付与されないのでしょうか。

    また、12/27、10/26 どちらも付与されたのは「.31」だったのでしょうか。

    単純に小数点以下2桁が付与される問題であった場合には、小数点以下が付かない用に工夫した出力用テーブルを別途作ると回避出来そうに思います。

    access2007でCSVエクスポート時に、整数が勝手に小数点付になる - ... - Yahoo!知恵袋

    他の正常な値は小数点「.00」という値が付与されており、異常値には「.00」以外の小数点以下の値が付与されております。

    例:10/26 450,857,853,821(access)→450,361,785,098.31(Excel出力)

      12/27 451,283,003,133(access)→450,363,430,634.93(Excel出力)

    また、もともとのaccessデータではすべて整数の値がデータ格納されています。

    >原因は分かりませんが、リンクテーブルの値を、Access 側で出力用の作業用テーブルに吐き出してから(作業用テーブル初期化後に作業用テーブルに追加クエリーで追加)して、作業用テーブルから外部データ出力を行う様にするとどうか、検証してみてはいかがでしょうか。

    ご助言ありがとうございます。

    クエリをテーブル作成クエリにして、新規テーブルを作成、作成したテーブルをエクスポートしてみましたが、事象は変わりませんでした。

    Accessにおいて、特定の値において、Excelにエクスポートすると異なるといったことがあるのでしょうか。

    ご助言いただきました作業用テーブルを作成してからExcel出力しても事象が変わらないところをみると、SQLServerとの関連性は低いように思えます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Makapu 92,110 評価のポイント ボランティア モデレーター
    2021-12-30T00:33:54+00:00

    こんにちは。

    過去に以下の様な事例がありましたが、該当しますでしょうか。

    Access2010で作成したクエリーで抽出したデータと違うものがエクスポートされる - Microsoft コミュニティ

    たとえば、すでに作成済みのクエリを利用して、一部条件を変えてDBの抽出などを行った後、クエリを「条件を変えた状態で保存」していないと、直近で保存した条件でエクスポートされることがわかりました。

    なので、抽出条件などを作成した段階で一度クエリを保存してから、エクスポートしてください。

    これでうまくいきます。

    >・Accessで表示されている金額は450,857,853,821なのに対し、Excel出力したファイルでは450,361,785,098.31と表示されている。

    ・Excel出力した残高には小数点以下が含まれる(最後に「.31」と付与されている)。

    「最後に「.31」と付与されている」との事ですが、他の正常な時は小数点以下は付与されないのでしょうか。

    また、12/27、10/26 どちらも付与されたのは「.31」だったのでしょうか。

    単純に小数点以下2桁が付与される問題であった場合には、小数点以下が付かない用に工夫した出力用テーブルを別途作ると回避出来そうに思います。

    access2007でCSVエクスポート時に、整数が勝手に小数点付になる - ... - Yahoo!知恵袋

    >・SQLServer2016内のデータを、ODBCリンクテーブルにより参照している。

    原因は分かりませんが、リンクテーブルの値を、Access 側で出力用の作業用テーブルに吐き出してから(作業用テーブル初期化後に作業用テーブルに追加クエリーで追加)して、作業用テーブルから外部データ出力を行う様にするとどうか、検証してみてはいかがでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません