AccessからSQLで取得した結果をExcelシートにInsertするには?

解決


イチル  2007-09-02 01:41:43  No: 99381

「AccessからSQLで取得した結果をExcelシートにInsertするには?」
ということですが、簡単に説明すると以下の事の逆を行いたいのです。

[Sample]
Set cnn = New ADODB.Connection
With cnn
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .ConnectionString = "Data Source=" & App.Path & "\testdb.mdb"
  .Open
End With

Set objExcelApplication = CreateObject("Excel.Application")
Set objExcelBook = objExcelApplication.Workbooks.Open(App.Path & "\ExcelToAccess.xls")

'更新後集計表2テーブルへInsert
strAccessSql = "INSERT INTO AccessTable " & _
               "SELECT * FROM [ExcelSheetName$] " & _
               "IN '" & App.Path & "\ExcelToAccess.xls" & "' " & _
               "'Excel 8.0;HDR=Yes'"

cnn.Execute strAccessSql
cnn.Close

既に
Accessに対しSqlを発行し、その結果(RecordSet)を1行ずつ、ないし配列オブジェクトをExcelへ貼り付ける事はできております。が、
今回は一括でSqlの結果をExcelへInsertできないものかという質問をさせていただいております。

よろしくお願いいたします。


イチル  2007-09-02 01:43:06  No: 99382

申し訳ございません

Set objExcelApplication = CreateObject("Excel.Application")
Set objExcelBook = objExcelApplication.Workbooks.Open(App.Path & "\ExcelToAccess.xls")
の部分は必要ないです^^;

改めましてよろしくお願いいたします。


イチル  2007-09-02 02:14:20  No: 99383

すいません!

With cnn
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .Properties("Data Source").Value = App.Path & "\AccessToExcel.xls"
  .Properties("Extended Properties").Value = "Excel 8.0;HDR=YES"
  .Open
End With
      
'更新後集計表2テーブルへInsert
strAccessSql = "INSERT INTO [" & strExcelSheetName & "$] " & _
               "SELECT * FROM TestTable2 " & _
               "IN '" & App.Path & "\testdb.mdb" & "' "
とすることで解決いたしました!
ありがとうございました!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加