Accessで、帳票フォームから同じIDの単票フォームをボタンで起動する方法を解説します。
横に長い情報より、1つのウィンドウで表示したいという場合に便利です。
画像は、Acess2010ですが、他のバージョンでも同じです。
帳票フォームのIDで抽出するクエリを作成して、単票フォームのレコードソースに設定します。
参考ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
この記事の目次
テーブルの確認
テーブル[T_売上]は以下のように作成しています。
以下は、テーブル[T_売上]のデータシートビューです。
参考テーブルのデータ型については、以下で解説しています。
-
テーブル(フィールド)のデータ型の種類とフィールドプロパティ
文字とか数値といったデータの種類のことをデータ型と呼びます。 Accessでは、フィールドごとにデータ型が決まっていて、同じデータ型のデータ ...
単票フォームを作成
テーブル[T_売上]を基に単票フォームを作成します。
簡単に作成するには、テーブル[T_売上]を選択して、[作成]タブの[フォーム]グループにある[フォーム]をクリックします。
フォーム
1回に1つのレコードに情報を入力できるフォームを作成します。
参考フォームウィザードを使って作成してもいいと思います。以下の記事で解説しています。
-
フォームウィザードでフォームを作成(クエリが認識されないことも)
Accessのフォームとはテーブルやクエリのデータをもとに、データの表示、入力、編集するためのオブジェクトです。 フォームウィザードでは、[ ...
帳票フォームとコマンドボタンの作成
同じようにテーブル[T_売上]を基に帳票フォームも作成します。
そして、作成した[F_帳票]フォームにコマンドボタンを1つ作成しておきます。
[デザイン]タブの[コントロール]グループにある[ボタン]を選択します。
ボタンには、何も設定せずに設置だけしておきます。
コマンドボタンウィザードが表示されたら、[キャンセル]ボタンをクリックして閉じます。
コマンドボタンのプロパティ[標題]に[開く]とだけ入力しておきます。
参考帳票フォームの作成は以下の記事が参考になると思います。
-
フォームウィザードでフォームを作成(クエリが認識されないことも)
Accessのフォームとはテーブルやクエリのデータをもとに、データの表示、入力、編集するためのオブジェクトです。 フォームウィザードでは、[ ...
クエリの作成
テーブル[T_売上]を基にクエリを作ります。
[作成]タブの[クエリ]グループにある[クエリデザイン]をクリックします。
クエリデザイン
新しい空のクエリをデザインビューで作成します。
[テーブルの表示]ダイアログボックスが表示され、クエリデザインに追加するテーブルまたはクエリを選択できます。
[テーブルの表示]ダイアログボックスが表示されますので、[T_売上]を選択して[追加]ボタンをクリックします。
参考バージョンによって異なると思いますが、[作成]タブの[クエリデザイン]をクリックすると、Microsoft 365のAccessとAccess 2021では[テーブルの追加]作業ウィンドウとして表示されます。
クエリデザインの「テーブルの追加」は作業ウィンドウに表示される
デザイングリッドにフィールドを登録
すべてのフィールドリストをデザイングリッドにドラッグして追加します。
または、各フィールドをダブルクリックして追加します。
クエリの[ID]フィールドの[抽出条件]に以下のように入力します。
[forms]![F_帳票]![ID]
そして、クエリを[Q_売上]という名前で保存します。
クエリの抽出条件などは、入力補助機能を使って入力すると簡単です。Access2010からの機能です。
-
入力候補一覧(補助メニュー)を活用してミスを軽減
Access2010からの機能です。 クエリの抽出条件などで、フォーム名やコントロール名を入力する際に、入力候補の一覧が表示されるようになり ...
参考クエリで同じようにフォームのテキストボックスの値でレコードを抽出する方法は、以下の記事でも解説しています。
-
クエリの抽出条件にテキストボックスの値を設定してレコードを抽出
Accessのクエリでレコードを抽出する方法です。 クエリの抽出条件には、フォームのテキストボックスの値を指定することができます。 また、ク ...
単票フォームのレコードソースを変更
[F_単票]フォームをデザインビューで開いて、プロパティシートの[データ]タブにあるレコードソースを[Q_売上]に変更します。
[F4]キーを押すと、プロパティシートを表示できます。
[選択の種類]が[フォーム]になっていることを確認してください。
[F_単票]フォームを開いたときは、レコードソースは[T_売上]になっているはずですから、これを[Q_売上]に変更します。
プルダウンから選択できます。
帳票フォームのコマンドボタンに設定
今度は、[F_帳票]フォームをデザインビューで開きます。
[開く]コマンドボタンのプロパティを開き、[イベント]タブの[クリック時]の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログぼっくの[マクロビルダー]か、または[コードビルダー]を選択して設定します。
どちらかで設定してください。初心者には、マクロビルダーの方がおすすめです。
[マクロビルダー]と[コードビルダー]の相違点などは以下の記事で解説しています。
-
マクロアクション(マクロビルダー)とVBA(コードビルダー)
Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...
[マクロビルダー]を選択して設定する方法
[ビルダーの選択]ダイアログボックスで[マクロビルダー]を選択して、[OK]ボタンをクリックします。
[マクロウィンドウ]が表示されますので、[新しいアクションの追加]の▼ボタンをクリックします。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
一覧から[フォームを開く]を選択します。
[フォーム名]の▼ボタンをクリックして、リストから[F_単票]を選択します。
上書き保存して、[マクロウィンドウ]を閉じます。
設定後のプロパティには、[埋め込みマクロ]と表示されます。
[コードビルダー]を選択して設定する方法
[ビルダーの選択]ダイアログボックスで[コードビルダー]を選択して、[OK]ボタンをクリックします。
VBEが起動するので、コードウィンドウに以下のように入力して閉じます。
DoCmd.OpenForm "F_単票"
設定後のプロパティには、[イベントプロシージャ]と表示されます。
ボタンをクリックして確認
[F_帳票]をフォームビューで開いて、[開く]ボタンをクリックすると、同じ[ID]の単票フォームが表示されます。
[フォーム]プロパティの設定
単票フォームは、プロパティで[レコードセレクタ]や[移動ボタン]などを[いいえ]にして非表示にしたほうがいいかもしれませんね。
以下の記事で解説しています。
例えば、[フォーム]プロパティの[書式]タブで以下のように設定すると、
- 標題
フォームのタイトルバーに表示される文字列です。 - 境界線スタイル
既定値は、[サイズ調整可]です。[ダイアログ]を選択すると、フォームの最大化、最小化、サイズ変更はできなくなります。 - レコードセレクタ
レコードセレクタを表示するか、しないかの設定です。 - 移動ボタン
他のレコードに移動するためのボタンです。 - スクロールバー
ここでのサンプルのように画面をスクロールする必要がなければ[なし]を設定していいですね。
単票フォームは、スッキリすると思います。
この単票フォームを編集用のフォームとして作成した場合の[保存]と[キャンセル]ボタンの設定については、以下の記事で解説しています。
-
編集フォームを閉じる時のボタンを設置(保存せずに閉じる処理も)
帳票フォームなどのレコード一覧から、同じレコードの詳細フォームを開いて編集することがあります。 この編集フォームを閉じる場合、編集した内容を ...
参考帳票やデータシートビューから単票フォームを開く方法は、他にもあります。
オブジェクトを増やしたくないというような場合は、以下の方法がおすすめです。マクロビルダーで設定する方法を紹介しています。
-
データシートの[ID]をクリックして単票(詳細)フォームを開く
フォームのデータシートビューの[ID]番号をクリックしたら、その[ID]の単票フォームを開く方法です。 データシートのフォーム名は[F_デー ...
また、帳票フォームのボタンのクリック時イベントにコードを記述する方法もあります。
帳票フォームから同じIDの単票フォームを開く(イベントプロシージャ)
帳票フォームから単票フォームを開いたときに、自動的にチェックが付くような仕組みを作ることもできます。
-
帳票フォームから単票を開いたらチェックを付ける(リセット方法も)
Accessで帳票フォームから、ボタンをクリックして同じIDの単票を開くように作成することはよくあります。フィールドが多い場合は、修正は横に ...