20251010
2025/10/10
Microsoft Access
実際に何か作ってみるのが手っ取り早い気がするので、顧客管理アプリを作っていく。
テープルの作成(顧客テーブル)
- 「作成」タブ→「テーブル」
- 「ホーム」タブ → 「表示」→ 「デザインビュー」
- テーブル名を「tbl_顧客」にして「OK」
- フィールドを作る
フィールド名 | データ型 |
|---|---|
顧客ID(主キー) | オートナンバー型 |
氏名 | 短いテキスト |
ふりがな | 短いテキスト |
電話 | 短いテキスト |
メール | 短いテキスト |
住所 | 長いテキスト |
登録日 | 日付/時刻型(規定値: |
データ型
- オートナンバー型 → 数値型。自動的に連番が振られる。重複しない。インデックス作成可能。
- 短いテキスト → あらかじめフィールドサイズを指定する。デフォルトかつ最大値が255文字。バイト数ではなく文字数なので日本語でも255文字まで格納可能。インデックス作成可能。
- 長いテキスト → インデックスを作成できない。
- 日付/時刻型 → 日付と時刻を表す。内部的には倍精度浮動小数点数で整数部が年月日、小数点部が時刻を表す。
- 拡張日付/時刻型 → 「日付/時刻型」で表せる最小単位が「秒」なのに対し、「拡張日付/時刻型」では「ナノ秒」まで表せる。内部的には年月日と時刻でそれぞれ整数を持つ。
データ型ごとに設定できる項目が異なる。
テーブル作成(問い合わせテーブル)
同様にテーブルを作成
フィールド名 | データ型 |
|---|---|
問い合わせID(主キー) | オートナンバー型 |
顧客ID | 整数型 |
日付 | 日付/時刻型(規定値: |
区分 | 短いテキスト |
内容 | 短いテキスト |
リレーションシップ作成
問い合わせテーブルの顧客IDが顧客テーブルの顧客IDを参照するようにする。
- 「データベースツール」タブ → 「リレーションシップ」
- 右サイドバーの「テーブルを追加」から「tbl_顧客」と「tbl_問い合わせ」を追加
- 中央画面の「tbl_問い合わせ」の顧客IDから「tbl_顧客」の顧客IDにドラッグ。
- ダイアログが出るため「参照生合成」にチェックを入れて「作成」 「リレーションシップの種類」にはおそらく自動的に一対多などが表示される(主キー設定から判定?)
- 「ロックされてます」みたいな警告が出る場合はオブジェクトを閉じて再設定。
テストデータの流し込み
「tbl_顧客」と「tbl_問い合わせ」のデータシートビューからAIで作ったテストデータを登録。
- tbl_問い合わせのデータ登録時に、tbl_顧客に存在しない顧客IDを登録しようとするとちゃんとエラーが出る。
クエリ作成(データの抽出)
- 「作成」タブ → 「クエリデザイン」
- 右サイドバーの「テーブルを追加」から「tbl_顧客」を追加
- 下のパネルのフィールドに顧客ID、氏名、電話、メールを設定
- メール列の抽出条件に「Is Null Or [メール]=””」を設定
- 「qry_メール未登録顧客」として保存
- ナビゲーションウィンドウに表示されるため開く
抽出条件はSQLのWHERE句と同じ要領で書く。
選択クエリのクエリウィザードでできるのは対象とするテーブル/クエリオブジェクトの選択とフィールドの選択まで。それ以降はデザインビュー上で設定する必要がある。
クエリ作成(結合クエリ)
- 「作成」タブ → 「クエリデザイン」
- 右サイドバーの「テーブルを追加」から「tbl_顧客」「tb_問い合わせ」を追加
- 下のパネルのフィールドに氏名、日付、区分、内容を設定
- 日付の並び替えに「降順」を設定
- 「qry_顧客別問い合わせ一覧」として保存
- ナビゲーションウィンドウに表示されるため開く
テーブルの結合は自動的に処理される。
クエリ作成(データの集計)
- 「作成」タブ →「クエリデザイン」
- 右サイドバーの「テーブルを追加」から「tbl_顧客」「tb_問い合わせ」を追加
- 「クエリデザイン」タブ →「集計」
- 下のパネルのフィールドに氏名、顧客IDを設定
- 顧客IDの集計に「カウント」を設定
- 「qry_顧客別問い合わせ件数」として保存
- ナビゲーションウィンドウに表示されるため開く
フォームの作成(顧客登録)
- 「tbl_顧客」を開いた状態で、「作成」タブ → 「フォーム」
- 「frm_顧客」として保存
- フォームビューで開くと各レコードのデータが表示される。
- ビュー下の「レコード:」の部分で表示する行を切り替えられる
- フォームビューを開いて「ホーム」タブ →「新規作成」でレコードを追加できる
- フォームビューでデータを編集した場合は「ホーム」タブ →「保存」で保存できる
- レコードを削除した場合はフォームビューで該当のレコードを開いた状態で、「ホーム」タブ → 「削除」
- 「tbl_問い合わせ」が自動的に紐づいて表示されているので、そこからtbl_問い合わせのデータを編集することも可能。
レポートの作成(顧客一覧)
- 「tbl_顧客」を開いた状態で、「作成」タブ → 「レポート」
- 「rpt_顧客一覧」として保存
テーブルからレポートを生成できる。
レポートの作成(顧客別問い合わせ一覧)
- 「qry_顧客別問い合わせ一覧」を開いた状態で、「作成」タブ →「レポート」
- 「rpt_顧客別問い合わせ一覧」として保存
クエリからもレポートを生成できる。
並び順はクエリから引き継がれないためレポート側で設定が必要。
「レイアウトビュー」を開いた状態で、「ホーム」タブ →「降順」などから設定可能。