
いくつかの銘柄の登録しておけるウォッチリストを作成したいと思います。ウォッチリストの機能としては銘柄の追加・削除と最新の情報に更新する必要があります。さらに、保有数と平均取得単価も登録しておけば損益計算にも利用できます。それと、リストから選択してメインフォームで検索するところまでを作りたいと思います。
ウォッチリスト用のテーブルを作成する
テーブルデザインで新規作成

- リボンの[作成]タブをクリックします
- [テーブルデザイン]をクリックします
テーブルのデザインビューの画面になります。まずは、ウォッチリストを登録していく場所となるテーブルを作成します。将来的に使いそうな項目もついでに作っておきます。

各フィールドのデータ型も上画像のように設定します。[損益]フィールドは[集計]型に設定します。
[損益]フィールドの計算式は↓のようにします。

([現在値]-[平均取得単価])*[保有数]
これで、取得価格からの損益が計算されます。
ウォッチリストに銘柄の追加クエリを作成する
今回はメインフォームで検索した銘柄をウォッチリストに追加する方法で解説していきます。
クエリを作成する

リボンの[作成]タブから[クエリデザイン]をクリックします。

クエリデザインビューで右クリックメニューから[テーブルの表示]を選択します。

過去の記事で作成した、メインフォームで入力した銘柄コードで抽出するクエリを選択します。

今回は[銘柄コード]と[名称]のみフィールドを追加します。
データをグループ化する

元のテーブルに複数の日の株価データが入っていると、同じデータが複数件追加されてしまうので、同じデータをグループ化して集約します。
- リボンの[クエリデザイン]タブの[集計]をクリックします。
- 集計の行が、[グループ化]になっていればOK
クエリの種類を変更する

- リボンの[クエリデザイン]タブから[追加]をクリックします。
- 追加先のテーブルを選択します。ここでは先ほど作ったテーブルを指定しています。
メインフォームに追加ボタンを設置する

メインフォームにウォッチリストに追加するボタンを設置します。ウィザードで先ほどの追加クエリを実行するよう設定するか、VBAであれば下記の通り
Private Sub コマンド37_Click()
DoCmd.SetWarnings False ’システムメッセージを出さない
Docmd.OpenQuery “q_watchlist_tsuika” ←任意の追加クエリ名
MsgBox “追加しました。”
End Sub
これで、メインフォームで検索した銘柄コードが、ウォッチリストのテーブルに追加されます。
フォームを作成する
ウォッチリストを表示するためのフォームを作っていきます。ここではウォッチリストのメインフォームと明細行となるサブフォームを作ります。
明細フォームを作る
まずは、明細データを表示するフォームを作成します。

- リボンの[作成]タブをクリックします
- [フォームウィザード]をクリックします
- ウォッチリストとなるテーブルを指定します
- 項目をすべて右側のテキストボックスに移動します
[次へ]をクリックします

- 表形式を選択し、次へをクリックします

フォームに名前をつけて保存します。
ウォッチリストのメインフォームを作る
次に、外側となるメインフォームを作成します。

リボンの[作成]タブから[フォームデザイン]を選択します。

- コントロールのアイコンが並んでいますが、サブフォームはおそらく2行目に隠れているかと思うので、「▼」をクリックし、次の行に移動します。
- [サブフォーム/サブレポート]をクリックします。
- フォームの何もないところでクリックします
■サブフォームのウィザードが始まります

- 「既存のフォームを使用する」を選択します
- 先ほど作成した、ウォッチリストの明細となるフォームを指定します
- [次へ]をクリックします

任意の名前をつけて完了をクリックします

場所・サイズ・デザインはお好みでどうぞ 別記事で、フォームのデザインについても解説していますので、そちらもご覧になっていただければ!
続きは後編にて解説させていただきます。m(__)m
