Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2844 / 9994 ←次へ | 前へ→

【10417】AccessVBAとExcelVBAの連携について教えてください
質問  lily  - 08/6/13(金) 17:16 -

引用なし
パスワード
   ExcelのVBAでAccessの既存テーブルにデータをインポートし、さらにイベントプロシージャをExcelから直接実行し最終的に作成したクエリをExcelの既存ファイルにエクスポートしたいのですが、Accessのイベントプロシージャ内のエクスポートの構文でエラーが発生します。エラーメッセージは「実行時エラー'3010':テーブル'Q_jyufuk'は既に存在しています。」です。
以下にソースを書きます。
【Excel側】
Sub DataExport()

Dim ObjAccess As Access.Application
Dim filename As String
Dim stFilePass As String  'A.xlsのPath
Dim MySql As String

'Accessを開く
  Set ObjAccess = CreateObject("Access.Application")
  ObjAccess.OpenCurrentDatabase FilePass10, False

  ObjAccess.Visible = True
  
'ExcelDataをAccessテーブルへインポート
  ObjAccess.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "T_Copy", _
    FilePass6, True, _
    "Import_Area"
    
  ObjAccess.Run "ReCount"
  
  Set ObjAccess = Nothing
End Sub

【Access側】
Option Compare Database
Option Explicit
Public MyFilePass As String         'エクスポート先のフルパス
Sub ReCount()

Dim db As DAO.Database
Dim qe As DAO.QueryDef
Dim MySql As String
Dim df As String
Dim txt_pass As String          'A.xlsのファイルが存在するフォルダ名取得
Dim Mcount As Integer

Set db = CurrentDb()

'シリアルNO重複データ抽出のSQL文
 MySql = "SELECT sechi1,Count(sechi1) AS カウント " _
    & "FROM T_Copy " _
    & "GROUP BY sechi1 HAVING ((Count(sechi1) >= 2))"
'SQL文をもとに選択クエリを作成
 Set qe = db.CreateQueryDef("Q_Count", MySql)
 
'重複データのID抽出のためのSQL文
 MySql = "SELECT Q_Count.sechi1,T_Copy.tranzak " _
    & "FROM Q_Count " _
    & "INNER JOIN T_Copy ON Q_Count.sechi1 = T_Copy.sechi1 " _
    & "ORDER BY Q_Count.sechi1"
'SQL文をもとに選択クエリを作成
 Set qe = db.CreateQueryDef("Q_jyufuk", MySql)
 
  df = ComdlgGetFolderStr("ファイルの読込/保存をするフォルダを指定してください。")
    txt_pass = df
    MyFilePass = txt_pass & "\" & "A.xls"
  
'重複データのエクスポート
 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Q_jyufuk", MyFilePass, True

'T_Copyのデータ削除のSQL文
 MySql = "DELETE * FROM T_Copy"
 db.Execute MySql

'作成したクエリを削除
 DoCmd.DeleteObject acQuery, "Q_Count"
 DoCmd.DeleteObject acQuery, "Q_jyufuk"
 
 db.Close: Set db = Nothing
End Sub

上記のようにソースを書いたのですが「'重複データのエクスポート」の構文でエラーメッセージが出ます。
Access単独だと問題なく動きます。

ネットや教本で調べましたがわかりませんでした。
どなたかわかる方、ご教授ください。
よろしくお願いします。

1,413 hits

【10417】AccessVBAとExcelVBAの連携について教えてください lily 08/6/13(金) 17:16 質問[未読]
【10418】Re:AccessVBAとExcelVBAの連携について教え... 小僧 08/6/17(火) 11:39 回答[未読]
【10420】Re:AccessVBAとExcelVBAの連携について教え... lily 08/6/18(水) 12:58 質問[未読]
【10431】Re:AccessVBAとExcelVBAの連携について教え... lily 08/6/20(金) 13:25 お礼[未読]
【10433】Re:AccessVBAとExcelVBAの連携について教え... 小僧 08/6/24(火) 10:07 回答[未読]

2844 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078200
(SS)C-BOARD v3.8 is Free