ACCESSからEXCELにエクスポートする方法と注意点

このQ&Aのポイント
  • ACCESSからEXCELにデータをエクスポートする方法とは?部門コードを昇順に並べてエクスポートする手順や注意点を解説します。
  • ACCESSのテーブルから1レコードずつデータをEXCELにエクスポートする方法について紹介します。部門コードごとに金額の合計を出力する方法も解説します。
  • VBAを使ってACCESSからEXCELにデータをエクスポートする方法を紹介します。部門コードを昇順に並べてエクスポートする手順や合計金額の出力方法も解説します。
回答を見る
  • ベストアンサー

ACCESSからEXCELにエクスポートしたい!

かなり困っています... ACCESSからEXCELにデータをエクスポートしたいのですが、ACCESS側の テーブルの中身すべてをEXCELに吐き出すのではなくて、1レコードづつ エクスポートしたいのです。 やりたいことは... ACCESS側のテーブルをEXCELにエクスポートする際、あらかじめ、テーブルの 一つのフィールド(部門コード)を昇順に並べておいて、エクスポートしていきながら、部門コードが変わったら、それまでの部門の金額の合計を出し、その合計もエクスポートして、次の部門に進み、最終的に金額の総合計をだそうと考えています。 この部分をVBAで組もうと考えているのですが... エクセルのレイアウトを簡単に書くと 部門 100      名称    金額            aaa  1000      bbb 500 合計         1500 部門 200      名称    金額            ccc  700      ddd 400 合計         1100 こんな感じです ちなみにOS WIN98 ACCESS2000,EXCEL2000です 皆様、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#1296
noname#1296
回答No.2

これはOLEの機能を使う必要があります。下記のサンプルは97用のものですが、恐らく2000でも大丈夫だと思います。また全部載せようとするとかなり長文になるのである程度省略しますね。 Dim XL As Object 'OLE時のExcelアプリ自体 Dim WB As Object 'OLE時のExcelのワークブック Dim WS As Object 'OLE時のExcelのワークシート Dim WC As Object 'OLE時のExcelのセル Dim WR As Object 'OLE時のExcelのセル範囲 Dim lngCol As Long '列 Dim lngRow As Long '行 Dim rsBumon As Recordset Dim BCD As Long '部門コード比較用 Set XL = CreateObject("Excel.Application") XL.Application.Visible = True XL.Application.SheetsInNewWorkbook = 1 XL.Workbooks.Add XL.ActiveWorkbook.SaveAs FileName:="c:\○○.XLS" XL.Application.ReferenceStyle = -4150 Set WB = XL.ActiveWorkbook Set WS = WB.ActiveSheet Set rsBumon=CurrentDB.OpenRecordset("SQL文又はクエリー名",dbOpenSnapShot) Do Until rsBumon.EOF If BCD<>rsBumon("部門") Then If BCD<>0 Then '合計の式 #Sum関数内の範囲はどこかでスタート・エンドを覚えておいて、式の文字列を作成して下さい。*行は1行書き込む毎にカウントアップして下さい。#     WS.Cells(*行,*カラム)="Sum(R1C:R3C)" End If    BCD=rsBumon("部門") WS.Celss(*行,1)=rsBumon("部門") End If WS.Cells(*行,1)=rsBumon("名称") WS.Cells(*行,2)rsBumon("金額") rsBumon.MoveNext Loop rsBumon.Close '総合計の書き込み #自分の場合、総合計用の式は、部門毎の小計を出力した行を配列などで保存しておいて、その配列から下記の式を生成しています。# WS.Cells(*行,*カラム)="=R5C+R8C+R15C" '保存して終了 XL.Application.ActiveWorkbook.Save XL.Application.Quit Set WS = Nothing Set WB = Nothing Set XL = Nothing もっと単純にするのでしたら、同じようなイメージのレポートを作成して(部門でグループ化して)そのレポートを「Excel形式で出力」すれば、同じようなイメージになると思うのですが。

その他の回答 (1)

  • stork
  • ベストアンサー率34% (97/285)
回答No.1

VBAで出来ると思いますが、全部クエリで処理を行ってデータのエクスポート機能で書き出したほうが楽じゃないですか。 もしくは、ピボットテーブル使うのが一番簡単ですね。

関連するQ&A

  • AccessのテーブルをExcelにエクスポートする際の並び順が狂う

    AccessのテーブルをExcelにエクスポートする際の並び順が狂う Access2002で、テーブルの内容をExcelにエクスポートする際、 エクスポートされたExcelを確認しますと、 必ずといっていいほどの確率で、並び順が狂います。 どう狂うかというと、例えばAccess上でAテーブルを開くと、 フィールド名:SEQ(プライマリキー)の昇順で1から順に並んでいるとします。 このAテーブルをExcelにエクスポートし、そのExcelを開くと、 SEQの途中の一部分が、前や後ろの方にごっそり移動していたりします。 他の部分はSEQの昇順で並んでいます。 その狂い方は、毎回異なります。 Excelの出力の方法は、VBAで「DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Aテーブル", 保存先, True」で行っても、 Aテーブル右クリックでエクスポートでExcel出力しても、並び順が狂います。 これはなぜでしょうか? よろしくお願いいたします。

  • Access⇒エクセルへのエクスポートについて

    Accessからエクセルへのエクスポートで質問です。 Accessのテーブルの中の一つのフィールド(名前は[合計])で、=[単価]*[数量]という計算をさせたとします。 このテーブルをエクセルにエクスポートし、エクセル上で例えば [単価]の累積合計 =SUM(**:**) [数量]の累積合計 =SUM(**:**) [合計]の累積合計 =SUM(**:**) をしたとすると、[単価]と[数量]は値が得られるのですが、Accessで計算させた[合計]は0になって値を得ることができません。 [単価]と[合計]は通貨型、[数量]は数値型に設定しています。 Accessのテーブル上では[単価]と[合計]には¥マークがついているのですが、エクセルにエクスポートすると、[単価]は¥マークがついておらず、[合計]には¥マークがついています。 Accessで計算させたフィールドは、エクセルにエクスポートした場合、数字として認識されないのでしょうか?文字になってる? うまく説明出来なくてすみませんが、Accessをエクスポートし、エクセルで加工計算を色々したいのですが、[合計]が計算出来なくて困っているという事です。 何故なのか全く判らないので教えてください。

  • Accessの文字列部分一致を合計する関数

    お世話になっております。 Access2003の関数で教えてください。 Acces2003のクエリで、 「同じフィールド内で文字列が部分一致した場合、新しいフィールドに 別のフィールドにある数値を合計する、部分一致しない場合は合計せず、 そのままの数値を表示する」 という関数を設定したいと思っております。 具体的に記載しますと、 在庫テーブルがあり、 商品コード 在庫  aaa      10 bbb      20 ccc      15 ddd      30 aaa-1    40 bbb-1    25 ddd-1    20 というデータが入力されております。 この在庫テーブルから新しいクエリで、新しく「在庫合計」フィールド を作成し、このフィールドに関数を用いて、 『「商品コード」フィールドの左3文字が一致した場合、「在庫」フィールドの 数値を合計する数値を表示させ、一致しない場合は合計せずそのままの 数値を表示する』 という形です。 クエリの実行結果としては 商品コード 在庫 在庫合計 aaa      10   50 bbb      20   50 ccc      15   15 ddd      30   50 bbb      5   50 aaa-1    40   50 bbb-1    25   50 ddd-1    20   50 という結果になり、商品コード「aaa」と「aaa-1」や「bbb」と「bbb-1」の「在庫合計」の値 は同じ値(「在庫」フィールドを合計した数値)が表示され、左3文字が一致したデータ がない「ccc」は15のまま、という結果です。 ※ただ、商品コードに重複がございます。(上記例でいうと商品コードが「bbb」です。) 当方VBAは使えないので、クエリで行いたいと思っております。 Accessで難しければExcelの関数でも構いません。 当方初心者ですので、不足な情報がございましたら加筆いたします。 どうぞよろしくお願いいたします。

  • ACCESSからエクセルへのエクスポート

    非常に困っています。どなたか教えて下さい。 エクセルのCSVファイルからアクセスのテーブルにデータをインポートして そのテーブルから新しいエクセルファイルにデータをエクスポートします。 (1)エクセルの元ファイル 列1 数値 1桁 (2)アクセスにインポート(インポート定義)        列1 数値型 1桁                 書式で3桁にする。 (3)エクセルにエクスポート(エクスポート定義)  列1 1桁になってしまいます。 ※(2)までは書式に000を入れることで解決しました。   (3)にエクスポートした状態で 列1を3桁にしたいのです                     例えば0→000 ちなみにアクセスは2002を使用しています。 どなたか教えて下さい。本当に困っています。

  • エクセルへのエクスポート

    ACCESS 2003 の VBA で下記の命令を実行してエクセルファイルをエクスポートします。 (環境はSQLserver2008、XP+ACCESS2003+EXCEL2003) DoCmd.OutputTo acOutputStoredProcedure, "テーブル名", acFormatXLS, "C:\ACCESS\テーブル名.xls" (1) 日付型(datetime)のフィールドの表示が「20-Dec-09」となってしまいます。 最初から「2009/11/20」と云う型でエクスポートできないのでしょうか? (2) エクスポートされたファイルを開いて保存するときに 「Excel 5.0/95 ブックです。最新の Excel のファイル形式に更新しますか?」 と表示されます。 (VISTA+Access2003+Excel2007は表示されません) 最初から2003のファイル形式でエクスポートする方法はありませんか?

  • アクセス2003からエクセル形式でのエクスポート

     いつもお世話になっております。  さて、アクセス2003のデータを「DoCmd.OutputTo acOutputQuery」で、エクセル 2003形式でエクスポートしましたが、長い文字(テーブルは「メモ型」)の文章だと 途中で途切れてしまいます。  500文字位の長い文章でも、途中で途切れずエクスポートできる方法をお教え 願えませんでしょうか。  どうぞよろしくお願いします。 【例】 クエリ名:Q_AAA 出力先:デスクトップ 出力するエクセル名:bbb.xls

  • ACCESS97からEXCELへのEXPORT

    テーブルより、通貨型で書式は固定、小数点以下桁数1に設定しています ACCESS上での表示は小数点以下1桁で表示されますが EXCELにEXPORTすると小数点以下2桁表示になってしまいます ACCESS側の設定で、EXPORT後小数点以下1桁で表示出来るようには出来ないでしょうか? 宜しくお願いします。

  • Access から Excel へのエクスポートで・・・

    AccessのテーブルをExcelへエクスポートする処理について教えてください。 仮に「前期」「中期」「後期」という名前のAccessのテーブルをエクセルにエクスポートするのですが、それぞれのテーブルをエクセルの1シートとしてエクスポートする方法はあるでしょうか? 例えば「1年」という名前のエクセルファイルを開くと「前期」「中期」「後期」という名前の3シートが存在して、その各シートはAccessの各テーブルをエクスポートしたもの・・・というイメージです。 Access、Excelともに2000です。よろしくお願いします。

  • Accessデータの特殊なエクスポート方法

    いつもお世話になっております。 Accessの特定のデータを、ある特定のExcelの指定したシート及びセルにエクスポートする方法が分かりません。 例として、Accessのテーブル(T_売上)のフィールド(品名)をエクセルファイル(販売.xls)のsheet1のシート名(売上明細)のセル「D6」へ、同じくAccessのテーブル(T_売上)のフィールド(金額)をエクセルファイル(販売.xls)のsheet1のシート名(売上明細)のセル「F12」へエクスポートしたいのです。 これにより、Accessデータを利用して、請求書を作成したいのです。 もちろんAccess上では、請求書発行プログラムは作っていますが、今回、Excelで利用する必要が生じたための質問です。 Access及びExcelは2010(OSはWindows7)です。Access、Excelは2003でも構いません。 また、Access、Excelは共にC:\にあります。 ネットでも色々と調べてみましたが、今一つ要領を得ません。 方法をご存知の方は是非アドバイスをお願い致します。

  • エクセルでの計算方法をおしえてください

    えくせるで例えば、エクセルで黒字のAは1とし赤字のAは0.5として足し算する方法は無いでしょうか     AAA  AAA(赤字)     BBB  BBB     CCC  CCC     DDD  DDD 合計  4   3.5

専門家に質問してみよう