Access VBA質問箱 IV

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

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


4570 / 9994 ←次へ | 前へ→

【8669】Re:Access2003からExcelへの仕分け?
回答  小僧  - 06/10/12(木) 17:42 -

引用なし
パスワード
   ▼hm_Yh さん:
こんにちは。

>こんな難題を解けるって、難しいです。

まずはテーブル全部を Excelファイル にエクスポート、
それができたら No 毎に それぞれ Excelファイル へエクスポート、
それができたら No 毎に 同じExcelファイル へエクスポート、


の様に少しずつスキルアップしていく事が
御自身でコードを組めるようになる近道かと思われます。


>早速、変更しました。

今回は SEQ というフィールド名としてコードを組んでみました。

Sub Excelへエクスポート()
'※要参照 Microsoft DAO x.x Object Library
Const TName = "テーブルA"      'データの入っているテーブル名
Const OutFile = "C:\Export.xls"   'エクスポート先 Excelファイル名
Dim RS1 As DAO.Recordset
Dim RS2 As DAO.Recordset
Dim strSQL1 As String
Dim strSQL2 As String
Dim xlsApp As Object
Dim xlsWkb As Object
Dim xlsSht As Object
Dim i As Long

  On Error Resume Next
    Kill OutFile
  On Error GoTo 0
  
  Set xlsApp = CreateObject("Excel.Application")
  Set xlsWkb = xlsApp.Workbooks.Add
  
  strSQL2 = "SELECT DISTINCT SEQ FROM " & TName
  
  Set RS2 = CurrentDb.OpenRecordset(strSQL2, dbOpenSnapshot)
  Do Until RS2.EOF
    Set xlsSht = xlsWkb.Worksheets.Add
      xlsSht.Name = RS2![SEQ]
      
    strSQL1 = "SELECT * FROM " & TName _
        & " WHERE SEQ = '" & RS2![SEQ] & "';"
    
    Set RS1 = CurrentDb.OpenRecordset(strSQL1, dbOpenSnapshot)
      For i = 1 To RS1.Fields.Count
        xlsSht.Cells(1, i).Value = RS1(i - 1).Name
      Next
      xlsSht.Range("A2").CopyFromRecordset RS1
      xlsSht.Range("A1").CurrentRegion.Columns.AutoFit
      xlsSht.Range("A1").CurrentRegion.Rows.AutoFit
      RS1.Close
    Set RS1 = Nothing
    RS2.MoveNext
  Loop
    
  Set RS1 = Nothing
  RS2.Close: Set RS2 = Nothing
    
  On Error Resume Next
    For i = 1 To 3
      xlsWkb.Sheets("Sheet" & i).Delete
    Next
  On Error GoTo 0
  Set xlsSht = Nothing
  xlsWkb.SaveAs OutFile
  xlsWkb.Close: Set xlsWkb = Nothing
  xlsApp.Quit: Set xlsApp = Nothing
  
  MsgBox "出力が終了しました。"
End Sub


コードで解らない箇所がありましたら
再度質問して頂ければ当方の解る範囲でしたらお答えできるかと思われます。

558 hits

【8660】Access2003からExcelへの仕分け? hm_Yh 06/10/8(日) 14:47 質問
【8662】Re:Access2003からExcelへの仕分け? 小僧 06/10/10(火) 9:57 回答
【8667】Re:Access2003からExcelへの仕分け? hm_Yh 06/10/12(木) 12:15 お礼
【8669】Re:Access2003からExcelへの仕分け? 小僧 06/10/12(木) 17:42 回答
【8728】Re:Access2003からExcelへの仕分け? hm_Yh 06/10/24(火) 15:57 質問
【8735】Re:Access2003からExcelへの仕分け? まさ7251 06/10/25(水) 12:00 発言
【8804】Re:Access2003からExcelへの仕分け? hm_Yh 06/11/19(日) 16:47 お礼
【8831】Re:Access2003からExcelへの仕分け? hm_Yh 06/11/26(日) 11:20 質問
【8836】Re:Access2003からExcelへの仕分け? 小僧 06/11/27(月) 9:35 発言

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