• 締切済み

ACCESS 2000でのExcel出力

ACCESS 2000でExcel出力時に下記のソースで出力しています。 出力先をユーザーに選択させたい(Windowsでファイル保存時に出てくるやつみたいに)のですが、どのような方法がありますか? Private Sub 集計結果_Click() DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, _ "クエリA", "c:\集計.xls" End Sub 宜しくお願いします。

みんなの回答

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.2

あっ! 張り間違い ごめんなさい excel.Application.Quit でした

-TOM-TOM-
質問者

お礼

有り難う御座いました。 うまくいきました。

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.1

>(Windowsでファイル保存時に出てくるやつみたいに) そのものズバリがだせるはずですが Acsses97しか使った事無いので まず GetSaveAsFilename が オブジェクトブラウザーに 出てくるか 調べてほしい 【Applicationに 有ったら】 Private Sub 集計結果_Click() Dim aaa As String aaa = Application.GetSaveAsFilename DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, _ "クエリA", aaa End Sub 【全然なかったら】 excelのを使う ツール->参照設定で microsoft excel ??? object library  というのが有るのでチェックする Private Sub 集計結果_Click() Dim aaa As String aaa = excel.Application.GetSaveAsFilename excel.Application.Close DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, _ "クエリA", aaa End Sub 【これでも出来なかったら】 GetSaveAsFilename APIを使うことも出来るはずです

-TOM-TOM-
質問者

補足

回答有り難う御座います。 2番目の方法で試した所 Excel.Application.Close のところでエラーが出てしまいました。 どうもCloseが無いみたいです。 他に方法はありませんか?

関連するQ&A

  • アクセス(access)からエクセルにエクスポート

    アクセスから、エクセルにクエリのデータを出力する際に、 「TransferSpreadsheet」を使用していますが、 そのエラー処理について、教えて下さい。 保存しようとしているファイルが既に開かれている場合に、 処理を中止し、エラーメッセージを出したいのですが、 どのようにすればいいのでしょうか? なお、現在のVBAは次のとおりです。 Private Sub コマンド01_Click() Dim a As String Dim b As Variant a = "Q_一覧表" b = "C:\一覧表.xls" DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, a, b, True MsgBox "データを出力しました。" Exit Sub 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の引数が違うのかとは思いますが適切な数値がわかりません。 他のやり方等もあれば教えて下さい。

  • Excelファイル 修復不可能

    Excel側からAccessモジュールを呼び出してExcelへクエリ結果をエクスポートしてますが、そのエクスポートされたファイルをオープンすると頻繁に(5回に1回くらい)「修復不可能」と言う、あのダイアログでメッセージが出ます。同じ条件のDATAでも毎回では無く、普通に成功する時もあります。一連の操作を全てExcel側からvbで行っているので、失敗したり、成功したりで安定せずに困っています。解決方法はあるでしょうか?DATA量はそんなにありません、Sheet数は4Sheetです。 Access側のモジュール varAccess1 = "Q_内容分類集計" varAccess2 = "Q_新旧集計" varAccess3 = "Q_業種別集計" varAccess4 = "Q_業種別新旧集計" varExcelPass1 = "\\Cs0097\63022_cr\顧客対応システム\発表資料取込用.xls" strmsg = "実績を、Excelファイルへ出力します。" & Chr(13) & _ "よろしければ、OKをクリックして下さい。" If MsgBox(strmsg, vbOKCancel) = vbOK Then DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, varAccess1, varExcelPass1, True DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, varAccess2, varExcelPass1, True DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, varAccess3, varExcelPass1, True DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, varAccess4, varExcelPass1, True MsgBox """データ出力は、正常に完了しました。""" End If Exit Sub

  • アクセス2007 エクセルへエクスポートするファイル名に日付を付けたい

    こんにちは。 アクセス2007を使用しています。 テーブルをエクセルにエクスポートし、 さらにそのファイル名に日付をつけたいのですが なかなかうまくいきません。 以下のように記述しました。 Private Sub コマンドボタン_Click() 'Excelファイルへエクスポート DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブル名", "転送先フォルダパス" & Format(Now(), "yyyymmdd") & ".xls" End Sub Format関数を入れないとうまく行くので その部分が間違っているのだろうと思うのですが どうしていいのかわかりません。 どなたか原因をご教授いただけると助かります。 よろしくお願いいたします。

  • AccessVBA エクセル出力時にエラー

    Private Sub コマンド1_Ckick() If リスト = "1"Then DoCmd. TransferSpreadsheet acExport_ , , "クエリ1","MicrosoftExcel(*.xlxs)" ElseIf リスト = "2"Then DoCmd. TransferSpreadsheet acExport_ , , "クエリ2","MicrosoftExcel(*.xlxs)" End If End Sub ------------ リスト(1 Or 2)を選択後、コマンド1をクリックすると、 リストの選択に合わせてクエリをエクセル出力したいです。 行数が10万行と多い為、 行数制限があるマクロビルダーの「書式を保持してエクスポート」を使わず XLXS形式で出力したいです。 しかし、上のVBAを実行したところ、 「データベースまたはオブジェクトは読み取り専用なので更新できません」 というエラーが出てしまいます。 どこを訂正すればよいのかわからず困っています。 どうかご教授の程、よろしくお願いいたします。

  • Access2010でのExcel出力について

    お世話になります。 Access2010のクエリで抽出した結果を下記のコマンドでExcelに出力しています。 Private Sub コマンド6_Click() Dim デスクトップの場所 As String デスクトップの場所 = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" If Nz(Dir(デスクトップの場所 & "log.xlsx"), "") <> "" Then If vbNo = MsgBox("デスクトップに同じ名前のファイルが存在します。上書きしますか?", vbYesNo + vbQuestion, "ファイルが存在します") Then Exit Sub End If End If DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Q_syukei", デスクトップの場所 & "log.xlsx" DoCmd.Close MsgBox "デスクトップに案件ログのExcelファイルが出力されました" End Sub その中のフィールドにコンボボックス利用のデータが複数あり、 1列目にID番号が振られていて、2列目に目的のデータ項目が格納されています。 元のテーブルでも、クエリでも列幅を0cm;10cmとしていて、 クエリの結果もAccess上で見ると2列目のデータ項目が表示されるのですが、 出力されたExcelには1列目のID番号しか載ってきていません。 2列目のデータをExcelに出力するにはどうすればよいでしょうか。 ご教授ください。

  • アクセスからエクセルへの処理で

    Private Sub エクスポート_Click() Dim myExcel As Object DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _ "HJEX016", CurrentProject.Path & "\" & "分析素材" & "\" & "test.xls" 'ファイルを開く Set myExcel = CreateObject("Excel.Application") myExcel.Visible = False ★myExcel.workbooks.Open filename:=CurrentProject.Path & "\" & "分析素材" & "\" & "test.xls" 'マクロの起動 myExcel.Application.Run "test.xls" & "!合計集計" End Sub 以前も一度同じ内容でこちらを載せたのですが、やはり再度質問させてください。 上記の内容のプログラムを実行させたいのですが、ひとつのPCでは実行でき ひとつのPCでは★部分で固まってしまい実行できません。 実行できるPCはなぜかメモリ容量の少ないPCのほうです。 ADOの設定等も再度調べましたが、とくに問題はありませんでした。 いろいろ考えてみましたが、検討がつかなく困っています。 何かアドバイスありましたら宜しくお願い致します。

  • アクセス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

  • Access2010クエリーのExcel出力書式

    Access2010で作成したクエリーをそのままの書式でEXCELに出力するVBAを組みたいと思っています。VBAは下記のとおり書いてみましたが、クエリーで表示される書式(ある列はカンマ、ある列は日付形式など)をそのまま移すことができません。このVBAをどのように変更したら、クエリーそのままの書式で出力できますでしょうか? '''''QUERYを指定 Dim varQE1 As Variant varQE1 = "QE1_List" 'QUERY名 '''''日付つきファイル名を指定 Dim varExcelPass As Variant varExcelPass = "C:\List_" & Format(Now(), "yyyymmdd") & ".xls" '''''ファイル変換出力 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, varQE1, varExcelPass, True

  • 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になりまして、問題はないのですが、ファイル名は自分で指定したいのです。 ご指導よろしくお願いします。

専門家に質問してみよう