これまで作成してきた在庫管理データベースでは、入力したデータの内容を即時確認することが出来ません。そこで、今回は、フォーム上に入力データの閲覧ができるように、クエリ画面を表示するように設定をします。この際に、データ削除、更新ができないような設定も行いたいと思います。
入庫データ閲覧用クエリの作成
クエリの作成方法については、以前に紹介していますので、そちらの記事をご参照ください。
まずは、クエリデザインで「T_入庫テーブル」、「T_品目マスタ」及び「T_担当者マスタ」を追加します。次に、「T_入庫テーブル」の「品名」フィールドと「T_品目マスタ」の「品目ID」フィールドを、また、「T_入庫テーブル」の「担当者」フィールドと「T_担当者マスタ」の「担当者ID」フィールドでリレーションをかけます。そして、データ閲覧に必要なフィールドを設定します(図1参照)。なお、作成したクエリの名称は「Q_入庫データ閲覧用」としました。
さて、作成したクエリでは、実はレコードの削除、データの更新が容易にできてしまいます。悪意あるユーザーがデータを改ざんしようとすると簡単に処理をすることができてしまいます。そこで、今回作成したクエリは閲覧のみの設定にします。
クエリのプロパティシートを開き、「レコードセット」プロパティの値を「ダイナセット」から「スナップショット」に切り替えます。これで、このクエリは読み取り専用となります。
出庫データ閲覧用クエリの作成
入庫データと同様に、出庫データ閲覧用クエリを作成します。先に作成した「Q_入庫データ閲覧用クエリ」をコピーし、「Q_出庫データ閲覧用」とリネームします。次に、クエリデザインのテーブルの追加で「T_出庫テーブル」を加え、「入庫数」フィールドを「出庫数」に、「入庫年月日」フィールドを「出庫年月日」とします。また、これらフィールドの参照テーブルを「T_出庫テーブル」に変更します。以上の操作で、「Q_出庫データ閲覧用」クエリの出来上がりです(図3参照)。 なお、作成したクエリは閲覧専用の設定が継承されていると思います。
閲覧画面の設定
ここからは、データ入力画面である「F_メイン」に先ほど作成したクエリを閲覧できるように設定します。
まず、図4に示すようにフォームデザインツールで「サブフォーム/サブレポート」を選択し、クエリを表示する領域を設定します。そして、設定したオブジェクトのプロパティシートを開き、「ソースオブジェクト」プロパティに「クエリ.Q_入庫データ閲覧用」と設定します。
同様に、もう一つオブジェクトを設定し、こちらの「ソースオブジェクト」プロパティには「クエリ.Q_出庫データ閲覧用」と設定します。
以上により、入庫データ、出庫データを閲覧できる画面系の設定ができました。
データ登録後の画面更新: Requery
ここまでで画面系でデータを確認できるようになりました。しかしながら、このままではデータを登録しても、即時に画面系にデータが反映されませんので、VBAソースコード(cmd_入庫処理_clickプロシージャ及びcmd_出庫処理_clickプロシージャ)の「MsgBox ”処理を完了しましたの。”」と記載されている1行前に、以下のコードを追加します。
Me.Requery
このコードは、クエリの情報を更新させるという意味合いを持っています。
これにより、レコードが追加されると画面系も更新された情報が反映されるようになります。
まとめ
今回は、登録したデータを画面系で確認できるようにクエリを作成し、フォームに挿入しました。図5が実際の閲覧画面例になります。
このように、レコード情報を常に確認できるようにすることは、業務効率を飛躍的に改善する効果がありますので、是非機能系に盛り込んでいただければと思います。
次回は、登録したレコードの削除方法について紹介します。
スポンサーリンク
コメント
すいません。
Me.requer
を追加しましたが、サブクエリーの表示が更新されないんです。
どうしてなんでしょう・
その他の動きは問題ないんですけど。
Me.Requery の間違いです。
コメントをありがとうございます。
ご質問の内容については実際のコード等を見てみないと、どこに原因があるかが分かりませんので
対応方法については改めて当方よりご連絡をさせていただきます。