連載
» 2016年02月19日 05時00分 UPDATE

Access VBAで学ぶ初心者のためのデータベース/SQL超入門(9):Accessのフォームに「CSVの読み込み/書き出し」機能を追加する方法 (1/3)

Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、「CSVファイルの読み込み/書き出し」機能を追加するテクニックをお伝えする。

[薬師寺国安,PROJECT KySS]
title_access.gif
Access VBAで学ぶ初心者のためのデータベース/SQL超入門

連載目次

連載の目的と前回のおさらい

 本連載はMicrosoft Access(マイクロソフトアクセス 以下、Access)を使って、リレーショナルデータベース(RDB)やSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得するものだ。

 前回までは、テキストボックス、リストボックス、コンボボックス、タブコントロールへ、値集合タイプ/ソース、SQLでデータを表示する基本を解説した。

 今回は、「CSVファイルの読み込み/書き出しの機能」を実装していく。CSVファイルを読み込んでAccessデータベースへ取り込む方法、顧客管理データベースから必要なデータを取得して、CSVファイルとして書き出すためのVBAコードなどをじっくり解説する。

本題に入る前に……

 今回も同様に、バックナンバーである第1回「どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは」第2回「Access VBAでデータ入力フォームを作り、各コントロールを追加するためのデザインビューの使い方」などで作成した「顧客管理.accdb」を使用する。「顧客管理.accdb」をダブルクリックして開いてほしい。


CSVファイルを「読み込み」、CSV用顧客管理テーブルに「追加」する

 事前準備として、ナビゲーションウィンドウから「顧客管理テーブル」を、今回の作業用テーブルとして複製する。「顧客管理テーブル」を選択して右クリック→コピー→貼り付けを実行。名前を「CSV用顧客管理テーブル」とし、「テーブルの構造とデータ」にチェックを入れてOKをクリックする。これで、ナビゲーションウィンドウに「CSV用顧客管理テーブル」が追加される。

 続いてルートドライブ(C:\)直下に「Access2013Data」というフォルダを作成し、リスト1の内容を「顧客データ.csv」というファイル名で保存しておく。このCSVファイルはメモ帳などのテキストエディタで作成し、文字コードは「ANSI」で保存する。UTF-8やUnicodeで保存すると文字化けするので、注意してほしい。

"ID","氏名","性別","年齢","郵便番号","住所","電話番号"
18,"紫式部","女",25,"657-0845","神戸市灘区岩谷中町","000-246-8101"
19,"光源氏","男",30,"816-0822","福岡県春日市ちくし台","000-7777-0000"
20,"聖徳太子","男",45,"150-0001","東京都渋谷区神宮前","003-5678-8910"
リスト1:「顧客データ.csv」の内容

 顧客データ.csvは、先頭に項目名があり、各データは「カンマ(,)」で区切られている。

CSVファイルの内容を「追加するフォーム」を作成する

 Accessのメニューから「作成」→「フォームデザイン」と選択する。

 フォームのデザイン画面はこのままでは少し小さいので、サイズを少し大きくしておく。そこへ「ボタン」と「リストボックス」コントロールを配置する(図1)。

photo 図1 フォーム上に「ボタン」と「リストボックス」を配置する

 フォームへの「ボタン」コントロール配置時に起動するウィザードはキャンセルする。「ボタン」を選択して、プロパティシートから「書式」タブを選択し、標題は「CSVの読み込み」とする。続いてフォント名を「Meiryo UI」に、フォントサイズは「14」、フォント太さは「太字」を指定する。最後に「その他」タブから名前欄に「CSV読み込みボタン」と入力する。

 「リストボックス」コントロールは、ウィザードに従って設定する。やり方は、第2回「Access VBAでデータ入力フォームを作り、各コントロールを追加するためのデザインビューの使い方」を参照してほしい。リストボックスの取得元となるテーブルまたはクエリには「CSV用顧客管理テーブル」を指定し、項目名は「結果リストボックス」としておく。

表1 結果リストボックスの列幅
リストボックス
ID 0.979cm
氏名 2.542cm
性別 1.27cm
年齢 1.00cm
郵便番号 2.50cm
住所 5.50cm
電話番号 2.542cm

 続いて「結果リストボックス」コントロールのプロパティシートから、「書式」タブを選択し、「書式」タブから、列幅には表1の値を「セミコロン(;)」で区切って1行で指定する。列見出しは「はい」、フォント名は「Meiryo UI」、フォントサイズは「12」と設定。「その他」タブにある名前は「CSV追加結果リストボックス」と指定しておく。


列幅欄の入力文字列

0.979cm;2.542cm;1.27cm;1.00cm;2.50cm;5.50cm;2.542cm


       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。