• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSのファイルを一本化したい!)

ACCESSのファイルを一本化!アンケート集計を簡単にまとめる方法

このQ&Aのポイント
  • 各支店でアンケート集計をしてもらい、送られてくる元ファイルをVBAで1つのファイルにまとめる方法が知りたいです。ファイルの構造は統一されており、アンケート日ごとにファイルがフォルダにまとめられています。
  • 解決したい課題は、毎日たまる100個以上のファイルを自動化して一つにまとめることです。自動化処理を行いたいので、VBAの活用方法を教えていただきたいです。
  • ハッシュタグ: #ACCESSファイル一本化 #アンケート集計 #VBA #自動化処理 #ファイルまとめ

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ツール内にテーブル table_01 を準備しておきます。 1) フォルダ内の全てのファイルにアクセスする。 2) mdb(accdb)ファイルのとき、以下の処理を行う。 2.1) アクセスしたファイルの table_01 をリンクテーブルでリンク。テーブル名は変える。 2.2) リンクしたテーブルのデータを追加クエリで table_01 へ INSERT する。 2.3) リンクを外す。 3) 上記を繰り返す。 です。 リンク⇒INSERT⇒リンク外す はわかると思うので(Accessの基本機能だし) ヒントとして、フォルダ内の全ファイルにアクセスする方法を。 「参照設定」で“Microsoft Scripting Runtime”にチェックを入れてから、以下を入力&実行して下さい。 Sub ex()   Dim objFSO As New FileSystemObject   Dim objFLD As Folder   Dim objFIL As File      Set objFLD = objFSO.GetFolder("C:\")      For Each objFIL In objFLD.Files     Debug.Print objFIL.Name, objFIL.Path   Next End Sub

ksk_mpb
質問者

お礼

ありがとうございます。 フォルダ内のすべてのファイルのPath, Nameの取り方勉強になりました。 取り組んでみます。 またフォローしていただけると助かります。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

(1)こういうのは、同一ファイルで別テーブルになっておれば、ユニオンクエリというのを使うのだと思う。 http://www.sk-access.com/Syo_Query/SqA013_Union.html しかしアクセスとしては中級以上の課題だと思うし、多数のテーブルがあれば、VBAでSQL文を加工して、繰り返し実行しないとならない。 Select * From Test01 UNION ALL Select * From test02; のようなSQLです。 2,3テーブルであれば Sub test01() Dim db As DAO.Database Dim qdf As DAO.QueryDef Set db = CurrentDb strSQL = "Select * From Test01" strSQL = strSQL & " UNION ALL" strSQL = strSQL & " Select * From test02;" MsgBox strSQL Set qdf = db.CreateQueryDef("q2Test01", strSQL) DoCmd.OpenQuery qdf.name End Sub (2しかし本件は、別テーブルでなくて、別ファイル(.mdb)になっている. (3)レコードを扱うADOなどなら100個を開いて読んで、1つずつの全レコードを集約テーブルに書き出せば良いが、回りくどいように思う。 質問者は相当勉強しないと難しい内容と予想。

ksk_mpb
質問者

お礼

そうですよねぇ、私には荷が重いかもしれません。 当面、手動でコピーしていきますが、将来的には自動化したい。 またその期会にはアドバイスください。 ありがとうございます。

関連するQ&A