リンクユニット

Windows10 & Office2016 Access2016

フォームに表示されている関連付けられたフィールドを別フォームで開く

投稿日:2018年3月16日 更新日:

単票フォームを開いているときに、その中のフィールドについて詳細を知りたいということがあります。例えば、売上の単票フォームがあって、その売上単票フォームに表示されている商品について、商品の内容を別フォームで表示させたいという場合があると思います。

売上フォームにも商品フォームにも同じフィールドがあれば、コマンドボタンウィザードを使って簡単に作成することができます。
ボタンをクリックして、別フォームの同じIDのフォームを表示

テーブルの確認

商品テーブル

[T_商品]と名前を付けた商品テーブルは下のようになっています。[添付型]フィールドを使用して商品の写真を添付しています。
商品テーブル

データ型の[添付型]については、以下の記事で解説しています。[添付型]は、Access2007からの機能です。

添付ファイル型の表示方法

Access2007から登場した添付ファイル型ですが、フォームでの表示方法の違いを紹介します。 下のようなテーブル(デザインビュー)を作成し ...

続きを見る

売上テーブル

[T_売上]と名前を付けた売上テーブルのデザインビューは、下のようになっています。
売上テーブルのデザインビュー

データシートビューで表示すると以下のようになります。
売上テーブルのデータシートビュー

リレーションシップ

リレーションシップは、下のようになっています。[T_商品]テーブルの[商品ID]フィールドと、[T_売上]の[商品]フィールドを参照整合性で結んでいます。
リレーションシップ

リレーションシップは、[データベースツール]タブの[リレーションシップ]から確認することができます。ポップヒントには、以下のように記されています。

たとえばテーブルどうしでIDフィールドや名前フィールドが一致しなければならないなど、テーブル間のデータの関連付けを定義します。

リレーションシップのボタン

クエリの確認

[Q_売上]クエリは、下のようになっています。[商品ID]だけでは分かりにくいので、[商品名]も表示するようにしています。
クエリのデザインビュー

フォームの確認

商品フォーム

[T_商品]テーブルを元に、商品の単票フォーム[F_商品]を作成しています。
商品フォーム

デザインビューの[フォーム]プロパティで、[レコードセレクタ]や、[移動ボタン]は[いいえ]の設定にしています。
フォームのプロパティ

売上フォーム

クエリ[Q_売上]を元に単票フォーム[F_売上]を作成しています。
売上フォーム

[F_売上]フォームにコマンドボタンを作成

[F_売上]フォームにコマンドボタンを作成します。[F_売上]フォームをデザインビューで開きます。

コントロールウィザードの使用が有効になっているかを確認

ウィザードを使用したいので、念のため[コントロール」ウィザードの使用]がオンになっているかを確認します。

[デザイン]タブの[コントロール]グループにある[その他]ボタンをクリックします。
フォームのデザインビュー

[コントロールウィザードの使用]がオンになっているかを確認します。以下の画像のようにグレイになっていれば、オンの状態です。そうでなければ、クリックしてオンにします。
コントロールウィザードの使用

ボタンの作成

[デザイン]タブの[コントロール]グループにある[ボタン]をクリックします。
デザインタブの[ボタン]

そして、詳細領域の任意の位置でドラッグして、ボタンを作成します。ボタンの位置やサイズは作成後に調整することができますので、あまり気にしなくても大丈夫です。
ドラッグでボタンの作成

コマンドボタンウィザードが表示されます。
[ボタンがクリックされたときに実行する動作を指定します。]とあります。
左側の[種類]から[フォームの操作]を選択して、右側の[ボタンの動作]では[フォームを開く]を選択します。[次へ]のボタンをクリックします。
コマンドボタンウィザード フォームの操作

[コマンドボタンを使って開くフォームを選択してください。]となっていますので、ここでは、[F_商品]を選択します。[次へ]のボタンをクリックします。
フォームを指定

[フォームに表示するレコードを限定するかどうかを選択してください。]とありますので、[特定のレコードを表示する]を選択して、[次へ]のボタンをクリックします。

既定では、[すべてのレコードを表示する]となっていますので、気をつけてください。ここには、以下のように記されています。

たとえば、特定の社員や得意先に関するデータだけを表示するフォームを開くことができます。

[特定のレコードを表示する]を選択

参考ここで、[すべてのレコードを表示する]を選択してコマンドボタンを作成する方法については、以下の記事で解説しています。

ウィザードを使ったコマンドボタンの作成

Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。コマンドボ ...

続きを見る

[関連付けるフィールドを指定します。これらのフィールドのデータが一致するレコードが抽出されます。]とあります。

[F_売上]の[商品ID]を選択します。[F_商品]の[商品ID]を選択します。そして、中央にある[<->]ボタンをクリックします。

そうすると、[関連付けるフィールド]に[商品ID <-> 商品ID]と表示されます。[次へ]のボタンをクリックします。
関連付けるフィールドを指定

[ボタンに表示する文字列またはピクチャを指定します。]とあります。ここでは、[文字列]を選択します。テキストボックス内に任意の名前を入力します。

後で変更することもできます。[次へ]のボタンをクリックします。
ボタンに表示する文字列を入力

[ボタン名を指定してください。]とありますので、分かりやすいボタン名を付けます。ここでは、[商品フォームを開くボタン]としています。[完了]ボタンをクリックします。
ボタン名を入力

[F_売上]の詳細領域に以下のようなボタンが作成できたと思います。サイズや位置は、ドラッグで調整します。
デザインビューの詳細領域に作成されたボタン

ボタン操作の確認

フォームビューに切り替えて、ボタンをクリックした時の動作を確認します。[商品フォームを開く]ボタンをクリックすると、[F_売上]フォームに表示されている[商品ID]と同じ商品の[F_商品]フォームが表示されると思います。
フォームビューでコマンドボタンの動作の確認

埋め込みマクロの編集

再度、[F_売上]をデザインビューで開いて、作成した[商品フォームを開くボタン]のプロパティを表示します。

参考プロパティを表示/非表示するショートカットキーは[F4]キーです。

クリック時イベントに[埋め込みマクロ]と表示されていると思います。コマンドボタンウィザードで、埋め込みマクロを作成したわけです。
クリック時イベントの[埋め込みマクロ]

[埋め込みマクロ]を表示してみます。[埋め込みマクロ]と表示されている右横の[...]ボタンをクリックします。
埋め込みマクロを開く

以下のような[マクロツール]画面が表示されます。[コマンドボタンウィザード]で作成した内容が、だいたい分かりますね。
マクロのデザイン

ただ、[フォーム名]だけは、何だろう?という感じですね。ここは、[フォーム名]に直しておいた方が後々分かりやすいと思います。
アスキーコードが表示されたフォーム名

以下のように[F_商品]と入力します。[フォーム名]は間違えないようにしてください。

参考[フォーム名]に表示されているコードを削除すると、右端に▼ボタンが現れると思いますので、そのボタンをクリックしてプルダウンメニューの中から、フォーム名を選んだ方がいいと思います。

[閉じる]ボタンをクリックして閉じます。
フォーム名を入力

メッセージウィンドウが表示されます。[はい]をクリックします。
メッセージウィンドウ

参考コマンドボタンウィザードを使用したときの[埋め込みマクロ]については、以下の記事で解説しています。

ウィザードによるボタン作成後の埋め込みマクロ

Accessでは、ウィザードを使用して簡単にボタンを作成することができます。これについては、ウィザードを使ったコマンドボタンの作成で解説して ...

続きを見る

ボタンのカスタマイズ

ボタンの背景色などを変更する方法は、以下の記事で解説しています。

コマンドボタンの背景色の設定

Access2010から、フォームで作成したコマンドボタンの背景色が設定できるようになりました。Access2007までは出来なかったのです ...

続きを見る

コマンドボタンのスタイルも変更することができます。いろいろ楽しんでみてください。

コマンドボタンのスタイル変更

Access2013のフォーム(デザインビュー)でコマンドボタンを挿入すると、既定では下のようなデザインとなります。このコマンドボタンのスタ ...

続きを見る

関連コマンドボタンウィザードを使用したボタン作成については、以下の記事でも解説しています。[フォームを開く]ボタンを作成するときに、ウィザードで[すべてのレコードを表示する]を選択しています。

ウィザードを使ったコマンドボタンの作成

Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。コマンドボ ...

続きを見る

マクロを使ったコマンドボタンの作成方法については、以下の記事で解説しています。

マクロを使ったコマンドボタンの作成

Accessで作成済みのフォームをボタンをクリックして開くようにする方法です。ここでは、マクロを作成してボタンに登録する方法です。起動時に開 ...

続きを見る

埋め込みマクロについては、以下の記事で解説しています。

マクロビルダーで埋め込みマクロを作成

Accessで作成済みのフォームをボタンをクリックして開くようにする方法です。ここでは、埋め込みマクロで設定する方法を紹介します。 ボタンの ...

続きを見る

おすすめ記事と広告

記事を更新しました

クイック分析で簡単データ分析

クイック分析は、Excel2013からの機能です。セル範囲を選択すると、選択範囲の右下に[クイック分析]のボタンが表示されます。このボタンを ...

画面の端へドラッグした時に最大化になるのを無効にする

Windows10で画面の端へウィドウをドラッグすると、自動的にウィンドウが最大化になります。 これを無効にする方法です。 [ウインドウを画 ...

レポートのレコードを抽出して印刷

Accessのレポートでフィルターをかけて、一部の情報のみを印刷したいことがあると思います。レポートのフィルターを実行するには、レポートビュ ...

マクロを使ったコマンドボタンの作成

Accessで作成済みのフォームをボタンをクリックして開くようにする方法です。ここでは、マクロを作成してボタンに登録する方法です。起動時に開 ...

受信メールの一部分を印刷したい時はメッセージの編集が便利

受信したメールの一部分を印刷したい時ってありますね。たとえば、レストランや列車の予約をしたら、お知らせのメールが届きます。その受信メールの中 ...

-Windows10 & Office2016 Access2016

Copyright © 2001-2018 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2018 AllRights Reserved Powered by AFFINGER4.