dポイントプレゼントキャンペーン実施中!

上記方法を御教示ください。
画像ファイルで具体的に記載致しましたので、画像ファイルをご参照ください。
よろしくお願いします。

■ 前提条件
 (1) 複数フォルダの中に共通のAccessが入っている。
 (2) (1)のAccessの中には、共通のマスタがある。

■ 今回やりたい事
 (3) (2)のマスタのデータを、全て、複数フォルダの同階層にあるAccessへ集約したい。

■ 御教示頂きたい事
 上記実現するには、どのようなVBAを組めばよいかを御教示ください。
 (画像ファイルの例でご回答を頂けますと助かります)

「複数あるAccessのテーブルを一つに集」の質問画像

A 回答 (5件)

こんな感じで。



Option Compare Database
Option Explicit

Const strFile = "\作業.accdb"
Dim FSO As FileSystemObject
Dim Col As Collection

Sub Sample()
  Dim strSQL As String
  Dim dbs As DAO.Database
  Dim C As Variant

  Set FSO = New FileSystemObject
  Set Col = New Collection

  'フォルダ取得
  GetFolders FSO.GetFolder("C:\サンプルデータ\test")

  '追加クエリ
  Set dbs = CurrentDb

  For Each C In Col
    strSQL = "INSERT INTO 集約後作業tbl " & _
         "SELECT * FROM マスタtbl IN '" & C & strFile & "'"
    dbs.Execute strSQL
  Next

  Set dbs = Nothing
  Set Col = Nothing
  Set FSO = Nothing
End Sub

Sub GetFolders(Fol As Folder)
  Dim Subf As Folder

  If FSO.FileExists(Fol.Path & strFile) Then
    Col.Add Fol.Path
  End If

  'サブフォルダ検索
  For Each Subf In Fol.SubFolders
    GetFolders Subf
  Next
End Sub

Microsoft Scripting Runtime の参照設定が必要です。
エラー処理とか入ってない、あくまでもサンプルです。
集約後作業tbl は作成済みであること。
    • good
    • 1
この回答へのお礼

できました。ありがとうございました!!本当に助かりました。

お礼日時:2016/10/18 22:50

集約データ.accdbに各作業.accdbのマスタtblへのリンクテーブルを作成しておき


集約後作業tblに追加していけばできるのでは?

1.集約後作業tblのデータを削除
2.各リンクテーブルのデータを集約後作業tblに追加
これをVBAにすれば何度でも実行可能です
    • good
    • 1
この回答へのお礼

ありがとうございました。できました。

お礼日時:2016/10/18 22:51

No3 です。



'フォルダ取得
GetFolders FSO.GetFolder(CurrentProject.Path)

の方が良かったかな?
    • good
    • 1
この回答へのお礼

補足頂きありがとうございました。

お礼日時:2016/10/18 22:51

DoCmd.TransferDatabaseメソッドでできるようです。


が、ループ処理は難しいです。
例えば、作業ファイルが同フォルダにあり、マスタテーブルも全く同じ名前で構成されている、などであれば、ループがきくと思いますが。
なので、DoCmd.TransferDatabaseメソッドをコピペでつないでいくのが、一番簡単だと思います。
    • good
    • 1
この回答へのお礼

アドバイス頂き、ありがとうございました。

お礼日時:2016/10/18 22:51

組めなくもないですが、それは定期的に行わないといけない作業なのでしょうか?


内容的には、新システム構築のための一時的な作業のように思われます。
VBAで組むよりも手作業の方が早いです。
    • good
    • 1
この回答へのお礼

ご回答頂きありがとうございます。定例処理につき、マクロ化できればなと考えております。よろしくお願いします。

お礼日時:2016/10/08 23:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す