目次
Access にCSV インポート用のテーブルを作るには
業務に Microsoft Access を利用して業務改善に努めようとされている方は多いと思います。この Microsoft Access は
- 社内で利用されている Microsoft Office の一部として殆どの社員に展開されている
- Microsoft Office の共通開発環境 Microsoft VBA(Visual Basic for Application) が利用可能
という特徴により業務効率化のためのツールとして覚えて損のないものですが、一方 Microsodt Excel に比べ敷居が高いのも事実です。 この記事のシリーズでは Microsoft Access の VBA を使ったアプリケーション開発の中でよく出てくるコーディングパターンを紹介していきます。今回のテーマはアプリケーション開発に先立って「Access にCSV インポート用のテーブルを作るには」です。この情報が読者のお役に立てば幸いです。
解決できること
Redmine 等のオンラインシステムからエクスポートされた定型的な csv ファイルを Microsoft Access のテーブルにインポートする手順について理解を深めることができます。
読んでほしい方
Redmine 等のオンラインシステム、Microsoft Excel 等からエクスポートされた ”” で囲まれた長文のテキストを含む一般的な csv ファイルを Microsoft Access にインポートする際、期待した通りのフィールド区分でうまく csv ファイルがインポートできず解決案を模索している方。
CSV ファイルの Access へのインポート方法
Microsoft Access にはMicrosoft Excel の ブックファイル (ファイルの拡張子 が .xlsx) を Access 内にインポートしてその ブックファイルの内容からそのデータベースの中に自動的に「フィールド名」「データ型」を持ったテーブルを作成する仕組みがあり、このテーブルに対し、クエリ、マクロ、VBAを使い様々なデータ操作を行うことができます。 ここではこの仕組みを使って Redmine からダウンロードされた CSV ファイルを例に csv ファイルを失敗なく Access にインポートする方法について紹介します。
インポート前の準備作業
Redmine ではダウンロード操作をすると以下のようにユーザーのダウンロードフォルダに issue.csv (もしくはそのコピー)が保存されます。 ここではこの CSV ファイルを使い、 Access 側にインポート用のテーブルを定義します。 まず issue.csv を Microsoft Excel で開くと、 issue というシートの中に issue.csv のデータ内容を取り込むことができます。 そのまま issue.xlsx として保存します。
実際のインポート作業
そして CSV をインポートしたい Access ファイルをダブルクックして Microsoft Access を起動すると次のような画面になります(左のナビゲーションウインドウにいろいろ出ているものは単なる一例ですので無視して下さい)。 ここで 上部のメニューから 外部データ > 新しいデータソース > ファイルから > Excel(X) を選ぶと 以下の画面が出てきますので、
- 現在のデータベースの新しいテーブルにソースデータをインポートする(I)
にチェックがついていることを確認したうえで、「参照(R)」ボタンを押し、 先ほどダウンロードフォルダ配下に保存した issue.xlsx ファイルを選択して「開く(O)」ボタンを押します。 するとこのような画面となりますので先頭行にデータのタイトルがある場合には
- 先頭行をフィールド名として使う(I)
にチェックをして「完了(F)」ボタンを押すと のような画面になるので、「閉じる(C)」ボタンを押します。 すると左側のナビゲーションウインドウに issues という新規テーブルができます。 この issues というテーブルは、Microsoft Access が issue.xlsx の issue シートの内容を分析し、各カラムの入力値に最も適合するデータ属性をもったテーブルを自動的に作成したものです。 作成された issue テーブルの属性を確認するには赤線で囲まれた issues テーブルの上でマウスを右クリックして現れるサブメニューで 「デザインビュー(D)」を選択します。 すると以下のような issies テーブルの「フィールド名」「データ型」が現れます。 この情報をこの issues テーブルのインポート元になったま issue.xlsx の issue シート と比較すると「フィールド名」は issues シートの 1行目に格納されたA列以降の各セルの内容、「データ型」は同じシートのA列、B列・・・の2行目以降に入っているデータから推定されたデータ型になっていることがわかります。 これで、Access に csv ファイルをインポートする際に使うテーブル定義をできましたので、別途紹介する 【Access VBA】指定テーブルに格納されたファイル名をもとに CSV ファイルをインポートするには を使い実際に csv ファイルをインポートする準備ができました。
コメントを残す