【備忘録】Accessのデータベースを積み上げ管理する

まとめておきたいと思っていたアクセスの積み上げデータ管理についてのメモです。

毎月1ヵ月分のデータを受け取り、過去分に積上げて管理するExcelデータが膨大になってきたので、2年程前にAccessを導入しました。
毎月この積み上げデータを使って各種分析をしたり、資料にまとめたりするのですが、Excelのままだと開くだけで5分程かかっていました。
私の勤め先のPCは入れ替えたばかりで、事務用にしてはハイスペック(i5-8250U/メモリ8GB/SSD256)なのに、です。
毎月数百回を超える集計を行いますので、そのたびに数分待機時間が発生するのではやってられません。
Accessなんて見たことも触ったこともありませんでしたが、上司に「Accessが早いよ。やってみなよ」と言われたので挑戦してみました。

ネックは、データベースは月1で「Excelで届く」こと。一度Accessに移し替えたものを「どう更新するか」が問題でした。
結論から言えば、Accessに毎月Excelを読み込んで、クエリという機能で結合。Excel上でこのデータベースを読み込んで集計作業。
処理が激!早くなりました。

前提条件として、積み上げのデータを基本としてAデータ、そこに追加したいデータをBデータとして…AデータとBデータは項目名や並びが全て一致している必要があります。

【実際の作業】
1.Aデータを作成する
まずはこれまでExcelで管理してきたデータをAccessにお引越しする必要があります。

Accessを起動して空のデータベースを開いていきます。
この時自動で「テーブル1」が作成されますが、必要ないので削除しておきます。
外部データ>新しいデータソース>ファイルから>Excel
ここでAデータになるExcelのデータを選択します。

ウィザードで出る選択肢シリーズ
・先頭行をフィールド名で使う→チェック
・フィールドオプション→基本的にはそのままでOK
・主キーは→設定しない
 ※主キーはすべてのレコードを識別するためのモノなので、あってもいいかも知れませんが私は使っていません。
・インポート先のテーブル→任意(今回はAデータ)
ここまで設定したら 完了→閉じる
Accessの左側の欄に「Aデータ」が追加されているはずです。
※これをテーブルといいます。
ここで名前をつけて任意の場所に保存しておきます。

2.BデータをAデータに追加し、1つのデータにまとめる
ここからが毎月の作業です。
まずはAデータ(Access)を開き、1と同じ手順でBデータを追加しておきます。
この時点で、左側のエリアにAデータとBデータ、2つのテーブルが並んでいることを確認します。
作成>クエリデザイン>※「テーブルの表示」ウィンドウがポップアップで出るので「閉じる」>クエリ1を右クリック「SQLビュー」
SELECT;と表示されている場所に以下のコードをコピペして「実行」します。

SELECT * INTO 元データ FROM (
SELECT * FROM Aデータ
UNION ALL
SELECT * FROM Bデータ
);

AデータとBデータをクエリで結合して、元データという名前のテーブルが完成しました。

毎月の流れ
毎月AデータとBデータというテーブルを削除>元データをAテーブルという名前に変更>その月のBテーブルを作成>結合して新・元データを作成

これによって、常にその月のデータは「積上げデータ(Aデータ)+最新1ヵ月分のデータ(Bデータ)+結合データ(元データ)」という3種類のテーブルが維持されますので、何らかの不具合が出た時にはそれぞれのテーブルを精査して、不具合の原因を探しやすくしています。

もっと効率的な運用があるかも知れませんが、個人的にはわかりやすくて好きな運用です。

いつか画像つきでまとめなおしたいと思いつつ、今回はテキストのみで。

この記事が気に入ったらサポートをしてみませんか?