• 締切済み

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

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の設定等も再度調べましたが、とくに問題はありませんでした。 いろいろ考えてみましたが、検討がつかなく困っています。 何かアドバイスありましたら宜しくお願い致します。

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

'一定時間待たせる(1秒間) Application.Wait Now + TimeValue("00:00:01") と言うのをファイルを開く前に追加してみるとか? ⇒エクスポート処理が終わりきる前に、ファイルを開こうと頑張っているのかなって思ったのですが。

maki06
質問者

補足

返信ありがとうございます。 '一定時間待たせる(1秒間) Application.Wait Now + TimeValue("00:00:01") を’ファイルを開く  の前にいれてみましたが メソッドまたはデータメンバがみつかりません。 とでます。アクセスではどういれればいいのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

    Private Sub エクスポート_Click() Dim myExcel As Object 'エクセルに出力 DoCmd.TransferSpreadsheet filename:=CurrentProject.Path & "\分析素材\test.xls", _ tablename:="HJEX016", _ transfertype:=acExport 'ファイルを開く Set myExcel = CreateObject("Excel.Application")   myExcel.Visible = True ★ myExcel.workbooks.Open filename:=CurrentProject.Path & "\分析素材\test.xls" アクセスのテーブルをエクセルシートに出力し、そのファイルを開くという プログラムを作成してみたのですが、★のところで固まってしまいます。 何がいけないのでしょうか?

  • ACCESS 2000でのExcel出力

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

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

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

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

  • ACCESS エクセル取込 列指定

    下記のコードでエクセル取込を行おうと思いましたが、列指定をする"A:M, O:V"の箇所でエラーとなってしまいました。A:M列だけならエラーもなく取り込めますが、O:V列も取り込みたいです。 N列を取り込みたくない理由としては、文字と数字が混在していて、省きたいと思っております。 何か良い方法はございませんでしょうか? DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "T_SAPShohin", Path, True, "A:M, O:V" ←エラー ____________________________________________________________________ Private Sub SAPShohin_Click() Dim Path As String Dim Res As String WizHook.Key = 51488399 Res = WizHook.GetFileName(0, "", "", "", Path, "CurrentProject.Path", "(*.xlsx,*.xls)", 0, 0, 4, -1) If Res = 0 Then '取得したファイルパス(Path)でExcelからインポート DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "T_SAPShohin", Path, True, "A:M, O:V" Else '[キャンセル]ボタンが押された場合の処理 MsgBox "[キャンセル]ボタンが押されました。" Exit Sub End If MsgBox "インポートできました!"

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

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

  • 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

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

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

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

  • TransferSpreadsheetでフルパス指定しない場合

    Access2003 WinXP (ADO)です。 テーブルをExcelへエクスポートするのですが DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブル名", "ほにゃらら" と書いたらデスクトップに新規にExcelブックが出来上がっていて、内容もエクスポートされていました。 ブックの名前は”ほにゃらら”です。 既存のブックではなく新規のブックに吐きたかったので良いのですが、本当はエクスポート先のブックをフルパスで指定するのですよね? このままでは何か弊害が出ますでしょうか?