【Access VBA】実践演習 #4 (編集機能の実装)


このシリーズでは書籍管理システムの作成を通して、Access VBAの使い方を学ぶことを目標とします。
データベース操作はDAOを使って実装します。
Accessの基本的な操作は知っているけれど、VBAはあまり書いたことがない方を対象としています。

途中SQLも使いますので、不安な方はこちらの記事等で確認してください。
AccessでSQLの練習

必要なファイルのダウンロードやテーブル等の確認は初回の記事をご覧ください。
【Access VBA】実践演習 #1


今回は「F_書籍編集」の各機能を実装していきたいと思います。

■練習4-1 (BOOK IDコンボボックス)

BOOK IDコンボボックスの値が変わったときに、IDに応じた「タイトル」「カテゴリ」「著者」の
値が各フォームに入力されるようにしてください。

(ヒント)
・コンボボックスの「更新後」イベントを使用(他のイベントでも可)
・FindFirstでレコード検索(Q_書籍検索を使用する場合)

解答例・解説
今回も2パターン紹介します。

①「Q_書籍検索」を使う
②SQLを使う

■練習4-2 (処理の共通化)

練習4-1で作成した「BOOK_ID_AfterUpdate」の処理を以下に置き換えてください。
また、同じ処理が実行されるように、Subプロシージャ「displayBookInfo」を作成してください。

Private Sub BOOK_ID_AfterUpdate()
    
    Call displayBookInfo(Me!BOOK_ID)
    
End Sub
解答例・解説

■練習4-3 (F_書籍検索から開いた時の処理)

検索機能を作成(第2回)の時に編集ボタンの処理を作成しました。
「F_書籍検索」から編集ボタンをクリックしたときに、該当の書籍の情報を表示させてください。

(ヒント)
・フォームの「読み込み時」イベント(Form_Load)を使用。(Form_Open等でもOK)
・OpenArgsがNullでない場合は練習4-2で作成した「displayBookInfo」に渡す。

解答例・解説

■練習4-4 (編集ボタン)

今回のメインとなる編集ボタンの処理です。
編集ボタンをクリックすると、対象の書籍の情報を更新します。
登録の時と同じように、各フォームが空の場合はエラーメッセージを表示し、
編集完了時にもダイアログを表示するようにしてください。

・エラーメッセージ

・編集完了メッセージ

解答例・解説
今回も2パターン紹介します。

①レコードセットを使う
②SQLを使う

■練習4-5 (リセットボタン)

最後にリセットボタンの処理を実装しましょう。
ボタンクリック時にBOOK_IDの現在の値(編集前の値)を反映するようにします。
その際以下のような確認メッセージを表示して、OKのときだけリセットしましょう。

(ヒント)
・練習4-2で作成したdisplayBookInfoを利用する。
・BOOK_IDが空の時は処理をしない。

解答例・解説

今回は編集機能の作成を行いました。
共通処理をまとめるところはVBAの復習になったかと思いますし、
親フォーム(F_書籍検索)から子フォーム(F_書籍編集)への値の受け渡しは応用が効く処理だったと思います。

次回は貸出と返却機能を作成し、一通り完成となる予定です!

■記事一覧

#1 (準備とトップページの処理)
#2 (検索機能の実装)
#3 (登録機能の実装)
#4 (編集機能の実装)
#5 (貸出・返却機能の実装)

  • このエントリーをはてなブックマークに追加

PAGE TOP