このシリーズでは書籍管理システムの作成を通して、Access VBAの使い方を学ぶことを目標とします。
データベース操作はDAOを使って実装します。
Accessの基本的な操作は知っているけれど、VBAはあまり書いたことがない方を対象としています。
途中SQLも使いますので、不安な方はこちらの記事等で確認してください。
⇒ AccessでSQLの練習
必要なファイルのダウンロードやテーブル等の確認は初回の記事をご覧ください。
⇒ 【Access VBA】実践演習 #1
今回は「F_書籍検索」の各機能を実装していきたいと思います。
■練習2-1 (検索ボタン)
「検索」ボタンをクリックしたときに、
「タイトル」「カテゴリ」「著者」の値に応じた検索結果が表示されるようにしてください。
※「タイトル」「著者」は部分一致検索、「カテゴリ」は完全一致検索とします。
※全て空の状態で検索が押されたときは、全件表示となるようにしてください。
(実行例)
(補足)
・F_書籍検索のレコードソースは「Q_書籍検索」クエリを使用しています。
解答例・解説
方法はいくつかありますが、2パターン紹介します。
■練習2-2 (クリアボタン)
「クリア」ボタンをクリックしたときに入力フォームの値が消去され、
全レコードが表示されるようにしてください。
(ヒント)
・値の消去は、入力フォームの値をNullに設定。
・フィルターの解除は全件取得した結果をレコードセットに設定。
解答例・解説
練習2-1と同様に、2パターン紹介します。
■練習2-3 (貸出ボタン)
「貸出ボタン」をクリックした際に、「F_貸出登録」を開くようにします。
ただし、対象の書籍(BOOK_ID)のフォームが開くようにフィルターをかけてください。
また、「貸出中」の書籍の場合にはエラーメッセージを表示してください。
・BOOK_ID=2 の貸出ボタンクリック時
・BOOK_ID=3 の貸出ボタンクリック時
(ヒント)
・フィルターはDoCmd.OpenFormの第4引数で指定可能。
■練習2-4 (編集ボタン)
「編集ボタン」クリック時に、「F_書籍編集」を開くようにしてください。
その際、「DoCmd.OpenForm」の引数「OpenArgs」に対象のBOOK_IDを設定してください。
また、開く処理の前に「F_書籍編集」を閉じる処理を実装してください。
(補足)
・OpenArgsは開くフォームに対して値を渡すための引数です。
今回は「F_書籍編集」にBOOK_IDを渡しています。
・閉じる処理は既に開いているフォームに対してOpenArgsの値が渡されない現象(バグ?)を防ぐためです。
以上、「F_書籍検索」関連の機能を実装しました。
やや難し目の内容も含んでいますが、今回の内容が理解できていると
データベース操作で良く使う検索の処理はおおよそ問題無いかと思います。
次回は登録処理を実装する予定です!
■記事一覧
#1 (準備とトップページの処理)
#2 (検索機能の実装)
#3 (登録機能の実装)
#4 (編集機能の実装)
#5 (貸出・返却機能の実装)