【Access2000】VBAコーディング Excelデータでエクスポート

このQ&Aのポイント
  • VBAを使用して、Access2000データベースからクエリをエクスポートする方法について教えてください。特に、SQL文を使用してエクスポート内容を指定する方法についてお聞きしたいです。
  • Access2000でVBAを使用してエクスポートする際、クエリを使用せずにSQL文を直接指定することができます。しかし、エクスポート処理を実行するとオブジェクトが見つからずにエラーが発生してしまいます。このエラーを修正する方法を教えてください。
  • Access2000のVBAコーディングにおいて、クエリではなくSQL文を使用してエクスポートする方法についての質問です。クエリを使用せずにSQL文を直接指定する場合、エクスポート処理がエラーとなってしまいます。このエラーを解決するためにはどのように修正すれば良いのでしょうか?
回答を見る
  • ベストアンサー

【Access2000】VBAコーディング Excelデータでエクスポート

いつもお世話になっています。 VBAにて、あるクエリをエクスポートしたいのですが。 クエリというのは、SQL文を書いています。 strSQL = "SELECT * FROM Q_tempソース" DoCmd.TransferSpreadsheet acExport, 8, strSQL, "C:\temp.xls", True, "" 実行すると、 オブジェクト'SELECT * FROM Q_tempソース'が見つかりませんでした。オブジェクトが存在していること、名前やパスが正しいこと確認してください。 と表示されて処理が中断されます。 ポイントとしては、登録されているクエリではなく、SQL文でエクスポート内容を指定しているからかと思うのですが、 どのように修正すればよろしいでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

DoCmd.TransferSpreadsheetアクションのヘルプ読まれました? そこの指定できるものは、 MSDNからの引用 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acactTransferSpreadsheet.asp > Table Name > テーブル名 中略 > Access 2000 では、このアクションを使用するときに、SQL ステート > メントを使用してエクスポートするデータを指定することはできませ > ん。SQL ステートメントを使用する代わりに、クエリを作成してから > 、そのクエリの名前をこの引数に指定する必要があります。 で、テーブル名かクエリ名しか指定できません > strSQL = "SELECT * FROM Q_tempソース" strSQL = "Q_tempソース" に変更すればよいと思いますが・・・Q_tempソースとは、テーブルですか?クエリーですか?

fujiwara_b
質問者

お礼

ご回答、ありがとうございます。 ヘルプは目を通したのですが、完全に把握できずにいました。 Q_tempソースとはクエリのことでした。 > strSQL = "SELECT * FROM Q_tempソース" >strSQL = "Q_tempソース" >に変更すればよいと思いますが・・・Q_tempソースとは、テーブルで> >すか?クエリーですか? なるほど、そういうやり方もありますね。 実際には、 SQL文でテーブルの削除・作成を行いそのテーブルを指定することで解決はしました(決してシンプルなソリューションではないのですが)。 しかし、有意義な情報ありがとうございました。

関連するQ&A

  • AccessからExcelへエクスポート時に小数点以下の桁数がおかしく

    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関数で桁数を調整したりはしたのですが、精度が必要な為、原因を追究したいと考えています。 アドバイスよろしくお願いいたします。

  • ACCESS エクスポートしたEXCELが立ち上がらない

    知っている方が居たら教えてください。 DoCmd.TransferSpreadsheet acExport, , QInfo, FileName, True ↑でEXCELにエクスポートしています。 エクスポート処理時に何かEXCELファイルを立ち上げておくと エクスポートしたファイルを自動起動できません。 EXCEL本体、EXCELを起動しない場合は自動起動できるのですが・・・。 そういうものなのでしょうか?

  • ACCESS 日付型でEXCEL出力 

    日付/時刻型の項目に yyyy/mm/dd hh:mm:ss(2007/01/11 12:10:33)の形で入っているのですが、 以下のような処理でEXCELにエクスポートすると・・・ strSQL = "SELECT Time AS 日時 FROM T_TIME" Set qryBuf = CurrentDb.CreateQueryDef(Q_Time, strSQL) DoCmd.TransferSpreadsheet acExport, , Q_Time, txtFileName, True EXCELの表示は「2007/01/11」と表示されてしまいます。 表示形式を変更すれば「2007/01/11 12:10:33」で表示されるのですが その手間は省きたいと思っています。 一発で「yyyy/mm/dd hh:mm:ss」の形式で出力する方法は無いでしょうか?

  • Access2010でExcelエクスポート

    通貨型のフィールドに、「\535,211,114,112」を入力して、 DoCmd.TransferSpreadsheet acExport, 5, "テーブル1", "C:\Test.xls", True, "" を行うと、Excelに「450691311687.48」が出力されます。 ※Excelのバージョンは2010です。 この事象について、詳しい方がおられましたら、ご教授ください。 以上、よろしくお願い致します。

  • AccessからExcelへエクスポートするVBA

    いつもお世話になっております。 AccessのクエリからデータをExcelにエクスポートします。 形式はMicrosoft Excel97-2003です。 フォーム"F_全データ"にボタンを付けて、クリックするとファイル名を自分で付けて保存する。というVBAを作成したいです。 1つ目のVBAは DoCmd.OutputTo acForm, "F6_全データ", "MicrosoftExcelBiff8(*.xls)", "", False, "", 0 これだと、ファイルの種類が、Microsoft Excel5-7になってしまい困ります。 この形式になってしまうと、Excelデータを開くと、文字数が多いところが保存されていません。これだと困ります。 2つ目が DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "F_全データ", "○○○.xls" こちらですと、ファイルの種類は97-2003になりまして、問題はないのですが、ファイル名は自分で指定したいのです。 ご指導よろしくお願いします。

  • アクセス2007VBAのクエリのエキスポート

    お世話になります。 以下の様にアクセス2007のクエリを エクセルにエクスポートのVBAを作成したところ うまく動作しません。 どこか構文が間違ってるのでしょうか? Private Sub トグル2_Click() Dim acc1 As String Dim exce1 As Variant acc1 = "q_有給付与後" ecxe1 = "G:\MOCF05602\大信\エクスポートテスト.xlsx" DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel12Xml, acc1, exce1, True MsgBox "エクスポート完了★" End Sub

  • アクセス2000→エクセル2010へエクスポート

    Private Sub cmd出力ボタン_Click() DoCmd.SetWarnings False DoCmd.TransferSpreadsheet acExport, 8, "出力クエリ", "C:データ.xlsx", True, "" DoCmd.SetWarnings True End Sub 実行すると 外部テーブルのフォーマットが正しくありません と出てしまいます。 エクセル97の形式にエクスポートする際は大丈夫でした。 spreadsheettypeの引数が違うのかとは思いますが適切な数値がわかりません。 他のやり方等もあれば教えて下さい。

  • ACCESS エクスポートについて

    ACCESSのエクセルへのエクスポートについて お世話になりあます。 既存エクセルにACCESSのDoCmdを使用してエクスポートしようと考えています。 エクスポート先は既存エクセル(セルに数式あり)です。 DoCmd.TransferSpreadsheet acExport, SpreadsheetType, TableName, FileName , True,SheetName という分を作り実行しましたが、「ワークシートのセルが削除できません」と出てしまい エクスポートできません。 ヘルプを見ると数式が含まれていると出来ないと書いてありました。 数式を消さないと出来ないのでしょうか。 お手数ですが、分かる方おられましたら教えて下さい。

  • ACCESSのテーブルをEXCELにエクスポート

    お世話になります。 ACCESS2000を使っています。 テーブルをACCESSの入っているフォルダーにエクスポート出来ますか? ACCESSはUSBフラッシュメモリーの会計フォルダーに保存しています。 使用PCを変えるとデバイス記号がかわります。 コーディングは下記の通りです。 DoCmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel5, "XLS利用実績", "K:\会計\利用実績.xls"

  • Access2000よりエクセルへエクスポートする際の範囲?

    こんばんわ。 最近アクセスを始めたばかりの初心者です。 この度、クエリよりエクセル(Ver.2000)へデータのエクスポートをしたいと思ったのですが、最初の一回目はうまくいくのですが、テストを繰り返すと(恐らくレコードが増えるため)、範囲を拡張することができません、というエラーが出てエクスポートができません。どのように解決したら宜しいのかご教示頂けたらと存じます。今は下位のようにしています。 Docmd.TransferSpreadsheet acexport, 8, "クエリ名","パス\エクセルファイル名", True 宜しくお願い致します。

専門家に質問してみよう