このシリーズでは書籍管理システムの作成を通して、Access VBAの使い方を学ぶことを目標とします。
データベース操作はDAOを使って実装します。
Accessの基本的な操作は知っているけれど、VBAはあまり書いたことがない方を対象としています。
途中SQLも使いますので、不安な方はこちらの記事等で確認してください。
⇒ AccessでSQLの練習
必要なファイルのダウンロードやテーブル等の確認は初回の記事をご覧ください。
⇒ 【Access VBA】実践演習 #1
今回は「F_貸出登録」「F_返却登録」「F_貸出履歴」の各機能を実装していきたいと思います。
■練習5-1 (貸出登録ボタン)
「F_貸出登録」の「貸出登録」ボタンをクリック時に、以下の処理を行うようにしてください。
1.「蔵書一覧」テーブルの対象の書籍の貸出状況を「貸出中」に変更する。
2.「貸出履歴」テーブルに新規レコードを追加する。(返却日は空で良い。)
(追加要件)
・貸出状況が「貸出中」の場合はエラーメッセージを表示する。
・ユーザーIDや貸出日が空の時にはエラーメッセージを表示する。
・貸出登録の前には確認メッセージを表示する。
・登録が完了したら「F_貸出履歴」を開く。(閉じて開く)
・「F_貸出登録」以下の状態でボタンクリック
・「蔵書一覧」テーブル
・「貸出履歴」テーブル
解答例・解説
今回も2パターン紹介します。
■練習5-2 (返却ボタン)
「F_貸出履歴」の「返却」ボタンをクリックした際に、「F_返却登録」を開くようにしましょう。
ただし、対象の書籍(貸出ID)のフォームが開くようにフィルターをかけてください。
また、返却済み書籍の場合にはエラーメッセージを表示してください。(返却日が空でない書籍)
・返却済みの場合エラーメッセージ
・未返却の書籍の「返却」ボタンクリック
(ヒント)
・フィルターはDoCmd.OpenFormの第4引数で指定可能。
・「F_返却登録」のレコードソースは「Q_貸出中書籍」です。IDカラムは「貸出履歴」テーブルのIDカラム。
■練習5-3 (返却登録ボタン)
「F_返却登録」の「返却登録」ボタンをクリック時に、以下の処理を行うようにしてください。
1.「蔵書一覧」テーブルの対象の書籍の貸出状況を「貸出可」に変更する。
2.「貸出履歴」テーブルの対象のIDのレコードの返却日にフォームの日付を入力する。
(追加要件)
・返却日が空の場合はエラーメッセージを表示する。
・登録が完了したら「F_貸出履歴」を開く。(開く前に「F_返却登録」を閉じる)
解答例・解説
今回も2パターン紹介します。
以上、書籍管理システムの作成を通して、AccessVBAでよく使うデータベース操作を見てきました。
5回の記事で作成したプログラムが理解できて使いこなせていれば、ほとんどの要件には対応できるかと思います。
説明の都合上テーブルやフォームは事前に用意しましたが、
プログラムやSQLに慣れてきた方は0からテーブルの設計、フォームの設計を行い、
ご自身で同じようなシステム、より良いシステムが作成できるのが理想かと思います。
では、お疲れ様でした!
■記事一覧
#1 (準備とトップページの処理)
#2 (検索機能の実装)
#3 (登録機能の実装)
#4 (編集機能の実装)
#5 (貸出・返却機能の実装)