20251010

Microsoft Access

実際に何か作ってみるのが手っ取り早い気がするので、顧客管理アプリを作っていく。

テープルの作成(顧客テーブル)

  1. 「作成」タブ→「テーブル」
  2. 「ホーム」タブ → 「表示」→ 「デザインビュー」
  3. テーブル名を「tbl_顧客」にして「OK」
  4. フィールドを作る

フィールド名

データ型

顧客ID(主キー)

オートナンバー型

氏名

短いテキスト

ふりがな

短いテキスト

電話

短いテキスト

メール

短いテキスト

住所

長いテキスト

登録日

日付/時刻型(規定値: Date()

データ型

  • オートナンバー型 → 数値型。自動的に連番が振られる。重複しない。インデックス作成可能。
  • 短いテキスト → あらかじめフィールドサイズを指定する。デフォルトかつ最大値が255文字。バイト数ではなく文字数なので日本語でも255文字まで格納可能。インデックス作成可能。
  • 長いテキスト → インデックスを作成できない。
  • 日付/時刻型 → 日付と時刻を表す。内部的には倍精度浮動小数点数で整数部が年月日、小数点部が時刻を表す。
  • 拡張日付/時刻型 → 「日付/時刻型」で表せる最小単位が「秒」なのに対し、「拡張日付/時刻型」では「ナノ秒」まで表せる。内部的には年月日と時刻でそれぞれ整数を持つ。

データ型ごとに設定できる項目が異なる。

テーブル作成(問い合わせテーブル)

同様にテーブルを作成

フィールド名

データ型

問い合わせID(主キー)

オートナンバー型

顧客ID

整数型

日付

日付/時刻型(規定値: Date()

区分

短いテキスト

内容

短いテキスト

リレーションシップ作成

問い合わせテーブルの顧客IDが顧客テーブルの顧客IDを参照するようにする。

  1. 「データベースツール」タブ → 「リレーションシップ」
  2. 右サイドバーの「テーブルを追加」から「tbl_顧客」と「tbl_問い合わせ」を追加
  3. 中央画面の「tbl_問い合わせ」の顧客IDから「tbl_顧客」の顧客IDにドラッグ。
  4. ダイアログが出るため「参照生合成」にチェックを入れて「作成」 「リレーションシップの種類」にはおそらく自動的に一対多などが表示される(主キー設定から判定?)
  5. 「ロックされてます」みたいな警告が出る場合はオブジェクトを閉じて再設定。

テストデータの流し込み

「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_顧客別問い合わせ一覧」として保存

クエリからもレポートを生成できる。

並び順はクエリから引き継がれないためレポート側で設定が必要。

「レイアウトビュー」を開いた状態で、「ホーム」タブ →「降順」などから設定可能。