【Access⑦】フォーム内にクエリ実行結果を表示する

目次

クエリからフォームを作成する

選択クエリを実行しても別タブに結果が表示されるのは野暮ったいし、使いにくい…。実行するたびにいちいち閉じるの!?ここを改善していきましょう。

銘柄コードから検索する選択クエリを元にして、一覧表示するフォームを作成します。

作成

  1. [作成]をクリックします。
  2. [フォームウィザード]をクリックします。
  3. [テーブル/クエリ]欄で、元となるクエリ(第3回で作成したもの)を選択します。
  4. 全ての項目をフィールドに含めるため[>>]をクリックします。

フォームウィザード-1 フィールドの選択

▲↑画像のように項目が右側に移動すればOK [次へ]をクリックして進めます。

フォームウィザード-2  レイアウトの選択

ここでは、フォームのレイアウトを指定します。

フォームの種類
  • 単票形式
    • 1行毎に1ページ表示されます。1つの行の全項目を確認するのに便利です。
  • 表形式
    • 行と列の表ですが、書式を自由に変更できます。
  • データシート
    • 表形式と同様、行と列になっている表ですが、テーブルそのままのようなフォーム。
  • 帳票形式
    • 1行毎に帳票のような(電子カルテのようなイメージ)で表示されます。

フォームのレイアウトを聞かれるので、今回は[表形式]を選択します。[次へ]をクリックして進めます。

フォームウィザード-3 フォーム名

  1. フォームに任意の名前をつけます。
    ※オブジェクトが増えてくると、見分けにくくなるので、私の場合、フォームは頭に「f」をつけてます。テーブルは「t」クエリは「q」という具合にオブジェクトの種類毎にわけるようにしています。
  2. [完了]をクリックします。

フォームの実行テスト

値の入力を求められるかと思うので、空白でもいいですが、ここでは「6301」を入力します。
※これは、元のクエリがメインフォームの値を参照するのですが、メインフォームを開いておらず値が取得できないため、入力を求められています。

フォームが作成されました!

フォームのデザインを変更する方法はコチラの記事で解説しています。

メインフォーム内にサブフォームをつくる

  1. 第4回で作成した、メインのフォームを右クリックします。
  2. 右クリックメニューから、[デザイン ビュー]を選択します。
  1. リボンの[サブフォーム/サブレポート]をクリックします。
  2. その状態で、フォームの白いところどこでもいいので、クリックするとサブフォームが設置されます。
    環境によっては、そのままウィザードが開始しますので、先ほどクエリから作成したフォームを指定してください。この記事では手作業での場合で解説します。
  1. サブフォームのプロパティシートの[データ]を開きます。
  2. [ソースオブジェクト]のドロップダウンリストから、先ほどクエリから作成したフォームを選択します。
  1. サブフォームのプロパティシートの[すべて]を開きます。
  2. [名前]に任意の名前をつけます。ここでは、「sub_form1」としておきます。

クエリ実行ボタンのプログラムを書き換える

  1. 第4回で作成した、クエリを実行するボタンをクリックします。
  2. プロパティシートの[イベント]を開いて…
  3. [クリック時]の[…]をクリックします。

プログラムを書き換えます。
前回、記述した行は削除します。
今回は、新たにこちら↓を記述します。

VBA

Docmd.requery “sub_form1“    ※赤文字箇所は任意のサブフォーム名

完成

メインフォームをフォームビューにし、銘柄コードを入力して、クエリ実行ボタンをクリックしてみましょう。サブフォーム内に、検索した銘柄の情報が入力されれば成功です!

最後に

第1回~6回まで、駆け足で基本的な仕組みを構築していきました。
フォームのデザイン、チャートの表示など出来ることはまだまだあります。合わせて、さらに使い勝手を良くするテクニックについても、今後記事にしていきたいと思います。

  • URLをコピーしました!
目次